使用cURL登录网站

时间:2012-06-17 11:00:02

标签: php curl login

我目前正在尝试编写一个使用cURL连接到网站的脚本。

我想办法做到这一点,尝试过饼干,但我不知道什么cookie是登录cookie ...如果有人可以帮助谢谢...

但我尝试了另一种方式......使用CURLOPT_POSTFIELDS,但我发现该网站在登录表单上使用GET(什么?!)所以我尝试了这个:

$username="User"; 
$password="Pass"; 
$url="http://www.site.com/register/?action=login&user=".$username."&password=".$password;
$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, 0); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($ch);
echo $result;  
curl_close($ch);

但它没有用......有没有办法以不同的方式登录网站?该网站有“method = GET”,但它并没有真正使用get ...

<form method="get" action="/register/" name="connectform">
            <input type="hidden" name="action" value="login"/><input type="hidden" name="returnpage" value=""/>
            <ul class="login_form">
                <li><label>login :</label> <input type="text" name="login_login" maxlength="24" value="" class="input2"/><span class="error"></span></li>
                <li><label>Password :</label> <input type="password"  name="login_password" maxlength="24" value="" class="input2"/><span class="error"></span></li>
            </ul>
            <div class="login_button" style="display:inline-block">
                <a class="small_button" onclick="javascript:document.connectform.submit()"><span>Connect to my account</span></a>
                <input type="submit" style="display:none" />
            </div>  
            </div>
            </form>

我该怎么办? 我不在乎你会帮助我这些方式,但我更喜欢饼干... 非常感谢你!

1 个答案:

答案 0 :(得分:3)

尝试使用以下网址:

$url = 'http://www.site.com/register/?action=login&login_login='.$username.'&login_password='.$password;

还添加以下选项:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    // return the content (often default)
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);    // follow redirects

如果您想访问需要上述登录的其他页面,请使用以下选项:

curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');    // send saved cookies
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');     // save cookies

解决方案:请看下面的评论。