使用cURL登录,并使用cookie回显响应


Log in with cURL and echo response with cookie

我正在尝试编写一个"自动登录"脚本,该脚本使用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;  
?>

我想您需要替换http://sub.domain-to-login.com/index.php/stuff类似于http://mysite.com?url=http://sub.domain-到login.com/index.php/stuff,然后使用curl再次下载此网站。您无法为不同的网站设置cookie。