我正在尝试编写一个“自动登录”脚本,该脚本使用curl登录到特定站点,然后回显响应,以便用户可以“绕过”登录。 (例如,授予一次性登录等)
显然,使用以下方法,cookie存储在服务器上,而不是存储在客户端的cookie.txt中。
我已尝试设置$ _COOKIE,但这不起作用,因为自动登录脚本的URL(实际上是子域名)和要登录的服务是不同的。
登录正常。您看到屏幕就像您已登录一样,但点击任何链接都需要您再次登录。
有什么想法吗?感谢
我用来自动登录的代码:
<?php
$username="email@domain.com";
$password="password";
$url="http://sub.domain-to-login.com/index.php/sessions/login";
$cookie="cookie.txt";
$postdata = "email=".$username."&password=".$password.'&btn_login=Login';
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);
echo $result;
?>
答案 0 :(得分:0)
我猜您需要将http://sub.domain-to-login.com/index.php/stuff中的所有链接(在$ result中)替换为http://mysite.com?url=http://sub.domain-to-login.com/index.php/stuff之类的内容,然后再次使用curl下载此网站。 你不能为不同的网站设置cookie。