我有两个站点 A 和 B 我希望能够让站点 A 的经过验证的用户登录到站点 B,
站点 A - 使用 php;
站点 B - 使用 Zend 框架。
我希望在站点 A 上有一个 iframe 到站点 B 的私有部分或重定向到站点 B,当我使用站点 A 上的表单进行 html 帖子时,我使用重定向并登录的凭据一切正常,我想要在 php.ini 中从服务器端更安全地执行此操作。当我使用 php curl 发布时,用户没有在 iframe 内登录,我厌倦了重定向,但用户再次没有在站点 B 上登录。
我不知道为什么 html 表单有效而 php curl 无效?我是否想使用 curl 发送其他内容,还是 Zend 有问题?
----- 好的,经过更多的谷歌搜索后,我将问题缩小到了 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>
感谢您的时间和帮助。