0

cURL を使用したスクリプトに問題があります。ページ A で cURL POST を設定し、それをページ B に送信してログイン用のスクリプトを実行します。データは正しく渡されますが、ページ B でセッションと Cookie が設定されていません。

スクリプト login.php で SESSION (および最終的には COOKIE) を開き、必要な情報を保存します。ページ B から直接ログインすると、正常に動作します。

    $ch = curl_init("http://www.example.com/login.php");


    curl_setopt ($ch, CURLOPT_POST, 1);
    curl_setopt ($ch, CURLOPT_POSTFIELDS, "login_name=xxx&login_pass=xxx");


    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);


    $output = curl_exec ($ch);

    curl_close ($ch);
4

2 に答える 2

0

これをコードに追加してみてください

$cookie="cookie.txt";
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl_connection, CURL_COOKIEJAR, $cookie);
curl_setopt($curl_connection, CURL_COOKIEFILE, $cookie);
curl_setopt($curl_connection, CURL_VERBOSE, true);

これが役立つことを願っています..

于 2012-12-05T20:19:33.197 に答える
0

COOKIEJAR と COOKIEFILEを使用します。

<?php
    $ch = curl_init("http://www.example.com/login.php");

    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "login_name=xxx&login_pass=xxx");
    curl_setopt($ch, CURLOPT_COOKIEJAR, '/cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/cookie.txt');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


    $output = curl_exec($ch);

    curl_close ($ch);
?>

Cookie を保存するtmpディレクトリを作成することもできます。

于 2012-11-11T11:03:35.373 に答える