卷曲登录问题

时间:2012-03-08 10:10:32

标签: php curl login

我无法使用此脚本登录:

$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>

你看错了什么吗?

1 个答案:

答案 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;

?>