実際、それは非常に乱雑になっているので、カールが原因であるかどうかさえわかりません。だから、ここにphpがあります:
$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;
ヘッダー(通常の成功したリクエストのヘッダーと一致します)が表示され、続いてログインページ(リダイレクトのためにcurlがこれをキャプチャしたと思います)が表示され、「不正な連絡先タイプ」の効果にエラーがあります。
問題は、リクエストのホストがリモートサーバーではなくリクエスト元のサーバーに設定されていることだと思いましたが、(Firebugで)リクエストがPOSTではなくGETとして送信されていることに気付きました。
ログインサイトのフォームをコピーし、値を含むフォーム要素だけに分解して、アクションの完全なURLを入力すると、うまく機能します。したがって、これは、ログイン要求が同じサーバーなどで発信される必要があるセキュリティの問題ではないと思います(空の非表示の値と、他のCookieの一部を設定するすべてのJSを削除することもできます)。
それからまた、私はすぐに混乱します。
GETとして表示される理由、または機能しない理由について、何か考えはありますか?