2

現在、cURL を使用してサイトに接続するスクリプトを作成しようとしています。

私はそれを行う方法を探し、Cookie を試しましたが、どの 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>

私は何をすべきか?私はあなたが私を助けるこれらの方法のどれを気にしませんが、私はクッキーの方法を好みます.どうもありがとうございました!

4

1 に答える 1

3

次の URL で試してください。

$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

解決策: 以下のコメントを見てください。

于 2012-06-17T11:04:05.050 に答える