実際には、私はカールが犯人であるかどうかわからないので、面倒です。POSTの代わりにGETを送信すると、
$creds = array(
'pw' => "xxxx",
'login' => "user"
);
$login_url = "https://www.example.net/login-form"; //action value in real form.
$loginpage = curl_init();
curl_setopt($loginpage, CURLOPT_HEADER, 1);
curl_setopt($loginpage, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($loginpage, CURLOPT_URL, $login_url);
curl_setopt($loginpage, CURLOPT_POST, 1);
curl_setopt($loginpage, CURLOPT_POSTFIELDS, $creds);
$response = curl_exec($loginpage);
echo $response;
は私が(通常、成功したリクエストのヘッダと一致する)のヘッダを取得し、ログインページに続いて(私はカールリダイレクトには、この原因を捕獲推測している)がありますので、ここではPHPの「接触不良タイプ」の影響を受けます。
私は問題は、要求がリモートサーバーではなく要求側サーバーに設定されているが、その後は(Firebugで)要求がPOSTではなくGETとして送信されることに気づいたと思いました。
私はログインサイトのフォームをコピーして、フォーム要素だけを値でストリップし、アクションの完全なURLを入れればうまくいきます。だから、私はこれがセキュリティの問題ではないと思うだろうログイン要求が同じサーバーなど(私は空の隠された値とJSのすべての他のクッキーの一部を取り除く)を取り除く。
もう一度、私はかなり素早く混乱します。
なぜそれがGETとして表示されているのか、それともそれが問題ではないのかについてのアイデアはありますか?
本当に良いアドバイス。 – RageZ