使用PHP从其他网页登录网站

时间:2012-09-07 08:48:34

标签: php post curl login get

所以我有一个网站http://example.com 还有一个我想登录的网站; http://target.com 我想要一个可以填写登录表单(用户名和密码)的脚本http://target.com来自我的网站。

所以当用户点击http://example.com/login.php&username=John&password=12345

他应该直接登录http://target.com并发送到欢迎页面。

我收到了这段代码;

$url = "http://target.com";
$post = "username=John&password=12345&login=++Ba%F0lan++";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo curl_exec($ch);
curl_close($ch);

但它没有转发我到欢迎页面。相反,它在http://example.com(找不到页面)

上显示错误

此外,它没有从网址获取用户名和密码数据。但我想我以后会自己解决它。

任何帮助?

1 个答案:

答案 0 :(得分:2)

好的......如果target.com没有明确支持某种类型的代理登录,如果不是不可能的话,这基本上比你想象的要困难得多。你在这里有三个派对:

client   ---->   example.com   ---->   target.com

通常,客户端在target.com登录, 会收到会话cookie ,这是他的登录令牌。只有target.com可以为target.com设置Cookie。

当您代理此流程并让example.comtarget.com登录时,example.com会收到Cookie。没关系,现在example.com已经过身份验证。但它无法将此身份验证传递给客户端,因为example.com无法代表target.com设置Cookie。 example.com可以将收到的Cookie传递给客户,但该Cookie仅对example.com有效。

除非target.com支持某种不依赖于cookie的基于URL的登录方案,否则从根本上说是搞砸了。