質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2388閲覧

二つのサイトに重複するデータを同時に登録したい

ao_love

総合スコア441

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/09/08 07:11

お世話になっております。

題名の通り、サイトAで会員の登録をした際、サイトBにも共通項を登録したいです。

CURLのセッションを引き継ぐ方法を参考にして
・サイトAで必要事項を入力→submit
・サイトBに自動でログインし、サイトBの登録フォームを表示

までは以下のコードで実現できました。

php

1<?php 2 if($_POST){ 3 4 $member = array('name'=>$_POST['name'], 5 'mail'=>$_POST['mail']); 6 7 8 //ログイン処理 9 //サイトAのログイン時にサイトB用のログイン情報は取得しておくものとする 10 $params = array('login_mail' => "test@example.com" , 11 'login_passwd' => "password" , 12 'LOGIN' => "ログイン"); 13 14 $fp = fopen("tmp", "w"); 15 $ch = curl_init("http://www.example.com/login.php"); 16 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 17 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 18 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie"); 19 curl_setopt($ch, CURLOPT_POST, TRUE); 20 curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 21 curl_setopt($ch, CURLOPT_WRITEHEADER, $fp); $ 22 $output = curl_exec($ch); 23 fclose($fp); curl_close($ch); 24 print "CURL OUTPUT:\n{$output}\n"; 25 26 //登録ページの表示 27 $ch = curl_init("http://example.com/register.php"); 28 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 29 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 30 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie"); 31 curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp"); 32 curl_setopt($ch, CURLOPT_POST, TRUE); 33 $output = curl_exec($ch); 34 print_r(curl_getinfo($ch)); 35 curl_close($ch); 36 print "CURL OUTPUT:\n{$output}\n"; 37 38}else{ 39echo <<< EOH 40<!DOCTYPE html> 41<html lang="ja"> 42<head> 43 <meta charset="UTF-8"> 44 <title>Document</title> 45</head> 46<body> 47 <form action="" method="post"> 48 <div>名前<input type="text" name="name"></div> 49 <div>メールアドレス<input type="text" name="mail"></div> 50 <input type="submit" name="send" value="送信"> 51 </form> 52</body> 53</html> 54EOH; 55} 56

ですが、実際に行いたいのはサイトBの登録ページの表示ではなく、そのまま登録まで終了させ、サイトAの登録完了ページを表示させることです。いくつかサイトを見ていろいろ試行錯誤してみましたが実現できませんでした。根本的な理解が不足しているためだとは思いますが、ご教授よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

とりあえず登録は以下で実現できました。
まだサイトBでの登録までしか確認していませんが、あとはどうにかなりそうなので自己解決にさせて頂きます。
ありがとうございました。

php

1<?php 2 if($_POST){ 3 4 $member = array('name'=>$_POST['name'], 5 'mail'=>$_POST['mail'], 6 'submit'=>1); 7 8 9 //ログイン処理 10 //サイトAのログイン時にサイトB用のログイン情報は取得しておくものとする 11 $params = array('login_mail' => "test@example.com" , 12 'login_passwd' => "password" , 13 'LOGIN' => "ログイン"); 14 15 $fp = fopen("tmp", "w"); 16 $ch = curl_init("http://www.example.com/login.php"); 17 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 18 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 19 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie"); 20 curl_setopt($ch, CURLOPT_POST, TRUE); 21 curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 22 curl_setopt($ch, CURLOPT_WRITEHEADER, $fp); $ 23 $output = curl_exec($ch); 24 fclose($fp); curl_close($ch); 25 print "CURL OUTPUT:\n{$output}\n"; 26 27 //登録ページの表示 28 $ch = curl_init("http://example.com/register.php"); 29 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 30 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 31 curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie"); 32 curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp"); 33 curl_setopt($ch, CURLOPT_POST, TRUE); 34 curl_setopt($ch, CURLOPT_POSTFIELDS, $member); 35 curl_setopt($ch, CURLOPT_POST, TRUE); 36 $output = curl_exec($ch); 37 print_r(curl_getinfo($ch)); 38 curl_close($ch); 39 print "CURL OUTPUT:\n{$output}\n"; 40 41}else{ 42echo <<< EOH 43<!DOCTYPE html> 44<html lang="ja"> 45<head> 46 <meta charset="UTF-8"> 47 <title>Document</title> 48</head> 49<body> 50 <form action="" method="post"> 51 <div>名前<input type="text" name="name"></div> 52 <div>メールアドレス<input type="text" name="mail"></div> 53 <input type="submit" name="send" value="送信"> 54 </form> 55</body> 56</html> 57EOH; 58}

投稿2015/09/08 07:36

ao_love

総合スコア441

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問