我无法使用此脚本登录:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://mysite.com/admin/index.php");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'action=login_user.php&AU_USRNAME=myname&AU_PWD=secret');
$result = curl_exec($ch);
curl_close($ch);
但我无法登录。有什么想法吗?
这是表格代码:
<form name="loginForm" action="login_user.php" method="POST" enctype="multipart/form-data">
<table>
<tr>
<td class="label">username</td>
<td class="input"><input type="text" name="AU_USRNAME" value="" size="20" /></td>
</tr>
<tr>
<td class="label">password</td>
<td class="input"><input type="password" name="AU_PWD" value="" size="20" /></td>
</tr>
</table>
<div id="buttonGroup">
<input type="submit" class="buttonWide" value="login" name="auth_do_login" />
</div>
</form>
你看错了什么吗?
答案 0 :(得分:0)
我认为你使用cookie进行身份验证,因此cookie应该在身份验证后存储,使用下面的代码,它将存储cookie并在将来的请求中转发它,以便你保持登录状态。
<?php
$curl_handle=curl_init();
curl_setopt( $curl_handle, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );
curl_setopt($curl_handle,CURLOPT_URL,'http://mysite.com/admin/index.php');
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl_handle,CURLOPT_COOKIEFILE,dirname( __FILE__ ).DIRECTORY_SEPARATOR."cookie.log");
curl_setopt($curl_handle,CURLOPT_COOKIEJAR,dirname( __FILE__ ).DIRECTORY_SEPARATOR."cookie.log");
curl_setopt($curl_handle,CURLOPT_REFERER,'http://www.google.co.in');
curl_setopt($curl_handle,CURLOPT_POST,true);
curl_setopt($curl_handle,CURLOPT_POSTFIELDS,"action=login_user.php&AU_USRNAME=myname&AU_PWD=secret");
curl_setopt($curl_handle,CURLOPT_FRESH_CONNECT,true);//No caching
curl_setopt($curl_handle,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($curl_handle,CURLOPT_MAXREDIRS,1);
$buffer=curl_exec($curl_handle);
echo $buffer;
?>