1
私はウェブサイトにログインするためのPHPスクリプトを作成しました。このスクリプトはうまくいきますが、問題は同じWebサイトに異なるアカウントでログインしなければならないことがあることです。 2番目のログインを投稿すると、最初のセッションがまだ存在し、サイトからログインページにリダイレクトされます。 2回目のログインをもう一度投稿すると正常に動作します。異なる口座を持つウェブサイトのPHPカールログイン
私の質問は、2回目のログインで以前のセッションを強制終了する方法です。
EDIT 1:ブラウザでスクリプトを実行します。ログイン後、ウェブサイトにリダイレクトされます。 2つのログインポストの間でブラウザを閉じると正常に動作します。したがって、スクリプトはブラウザ自体で前のセッションを終了させる必要があります。
ありがとうございます。
私のコード:
function post_data($url, $data, $header){
$fp = fopen("cookie.txt", "w");
fclose($fp);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIEJAR, realpath("cookie.txt"));
curl_setopt($ch, CURLOPT_COOKIEFILE, realpath("cookie.txt"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, 40000);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_ENCODING, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
return curl_exec($ch);
curl_close($ch);
unset($ch);
}
:デフォルトのオプションを上書きするカスタムカールオプションを追加するために4番目の引数を追加することができます。 – miken32
私の編集で言ったように:私はブラウザでスクリプトを実行します。ログイン後、ウェブサイトにリダイレクトされます。ウェブサイトは私のブラウザにセッションクッキーを設定します。私のブラウザを閉じると、このクッキーは削除されますが、私はスクリプトを実行するたびにブラウザを再起動するのではなく、プログラムでこれを行うのが好きです。 – tuin2121