2

「リモートログイン」サイトを作成しようとしていますが、以下のコードを試すと、Cookie が無効になっているというエラーが表示されます。解決策をグーグル検索しましたが、解決された唯一のケースには cURL の方法があります。 cookie jar)、どうすれば cookie の問題を解決できますか? また、サイトが必要とする Cookie (約 10 個あります) を見つけるにはどうすればよいでしょうか?

<?php
$vars = array(
    'email' => "*****",
    'pass'=>"*****"
    );
$content = http_build_query($vars);

$host = 'www.site.com';
$service_uri = '/login.php';
$vars ='login_mode=1';

$header = "Host: $host\r\n";
$header .= "User-Agent: PHP Script\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Referer: http://www.site.com \r\n";
$header .= "Content-Length: ".strlen($content)."\r\n";
$header .= "Connection: close\r\n\r\n";

$fp = fsockopen("".$host,80, $errno, $errstr);

if (!$fp)
{
    echo "$errstr ($errno)<br/>\n";
    echo $fp;
}
else
{
    fputs($fp, "POST $service_uri  HTTP/1.1\r\n");
    fputs($fp, $header.$content);

    while(!feof($fp))
    {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>
4

1 に答える 1

2

最初にホームページの URL を要求する必要があります。これにより、Cookie ヘッダーが得られます。それらを解析し、$header変数に追加してサーバーに送信します。

サイトがどの Cookie を必要としているかを気にする必要はありません。すべての Cookie を送信するだけで、将来性が保証されます。

自分ですべてをやりたくない場合は、PEAR のHTTP_Request2パッケージを見てください。これには、Cookie 処理が組み込まれています。

于 2012-06-08T16:15:53.270 に答える