私は 2 つのサイト A と B を持っています。サイト A からサイト B にログオンする確認済みのユーザーを取得できるようにしたいと考えています。
サイト A - PHP を使用。
サイト B - Zend Framework を使用します。
サイト A の iframe をサイト B のプライベート パーツにするか、サイト A のフォームから HTML 投稿を行うときに、リダイレクトされてログインした資格情報を使用してサイト B にリダイレクトしたいのですが、すべてが機能します。 PHPでサーバー側からより安全に行うため。php curl を使用して投稿すると、ユーザーは iframe 内にログインしません。リダイレクトに疲れましたが、ユーザーはサイト B にログインしていません。
HTML フォームが機能し、php curl が機能しない理由がわかりません。curl を使用して別のものを送信する必要があるのでしょうか、それとも Zend に問題がありますか?
----- さらにグーグルで調べた後、問題を Cookie に絞り込みました。Cookie を設定する必要があると思いますが、方法がわかりません。これは正しいです?それらをphpで設定するにはどうすればよいですか?または、Cookie が設定されているヘッダーをブラウザーに渡し、サイト B に転送しますか? もしそうなら、どうすればいいですか?
これまでの私のコードは次のとおりです。
<?php
$data = array(
'useremail' => 'someemail',
'password' => 'somepassword'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://siteb.com/account/login");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); // Cookie management.
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
?>
<html>
<body>
<iframe src="http://SiteB.com/account/login" width="950" height="700"></iframe>
<form action="http://SiteB.com/account/login" method="post">
email: <input type="text" name="useremail" value="useremail" /><br />
password: <input type="text" name="password" value="somepassword" /><br />
<input type="submit" value="Submit" />
</form>
</body>
</html>
お時間とご協力ありがとうございます。