2016-03-31 111 views
0

我想用cURL登录网站,但无法正常工作。 我正在使用这个脚本。无法用cURL登录网站

但它不工作,只重定向到网站首页,而无需登录

这个网站的形式为:

<form action="login.php" method="post"> 
<input type='hidden' name='origem' value=''> 
<input type='hidden' name='ultimo_endereco' value=''> 
<input type='hidden' name='forma_pagamento' value=''> 
<input type='hidden' name='video' value=''> 
<input type='hidden' name='url' value=''> 
<input type='hidden' name='evento' value=''> 
<input type='hidden' name='fotos' value=''> 
<input type='hidden' name='sessao' value=''> 
<input type='hidden' name='lista' value=''> 
<input type='hidden' name='perfil_longando' value=''> 
<table align="center" width="25%" border="0" cellpadding="0" cellspacing="0"> 
<tr><td><font face="" size="">Login:</font></td><td><input name="login_" type="text"></td></tr> 
<tr><td><font face="" size="">Senha:</font></td><td><input name="senha_" type="password"></td></tr> 
<tr><td>&nbsp;</td><td><input name="logar" type="submit" value="Logar"></td></tr> 
</table> 
</form> 

脚本:

<?php 
$username="user"; 
$password="123456"; 
$url="http://www.example.com/login.php"; 
$cookie="cookie.txt"; 

$postdata ="login_=$username&senha_=$password&logar=Logar"; 

$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, 0); 
curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
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) 
?> 

我是什么做错了?

+0

也许服务器检查隐藏的投入。如果将所有这些数据添加到发布数据中,它是否可以工作? – Barmar

回答

0

我解决了这里这段代码的问题,谁可以帮助

<?php 
    function login($url,$data){ 
     $fp = fopen("cookie.txt", "w"); 
     fclose($fp); 
     $login = curl_init(); 
     curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt"); 
     curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt"); 
     curl_setopt($login, CURLOPT_TIMEOUT, 40000); 
     curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE); 
     curl_setopt($login, CURLOPT_URL, $url); 
     curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
     curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE); 
     curl_setopt($login, CURLOPT_POST, TRUE); 
     curl_setopt($login, CURLOPT_POSTFIELDS, $data); 
     ob_start(); 
     return curl_exec ($login); 
     ob_end_clean(); 
     curl_close ($login); 
     unset($login);  
    }     

    function grab_page($site){ 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
     curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
     curl_setopt($ch, CURLOPT_TIMEOUT, 40); 
     curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); 
     curl_setopt($ch, CURLOPT_URL, $site); 
     ob_start(); 
     return curl_exec ($ch); 
     ob_end_clean(); 
     curl_close ($ch); 
    } login("http://www.example.com/login.php", "origem=&ultimo_endereco=&forma_pagamento=&video=&url=&evento=&fotos=&sessao=&lista=&perfil_longando=&login_=USER&senha_=123456&logar=Logar"); 
echo grab_page("http://www.example.com/");?>