我正在尝试使用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> </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)
?>
我做错了什么?
我在这里解决了这个代码的问题,谁可以帮助
<?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/");?>