ホームページ >バックエンド開発 >PHPチュートリアル >Curl はポストデータの問題をシミュレートします
ページへのログインをシミュレートし、HTML を使用してフォーム投稿を作成します。以前はログインできましたが、curl を使用してログインできませんでした。状況はどうですか
もちろんです。 。 。
コードがうまく書かれていません
curl 投稿の過去データが正しいか確認してください
私もプロンプトが送信エラーです
//ログイン認証
$url = "http :// 211.67.32.144/edu/login!checkLogin.action";
$post_data = array( "user_account" => "031140107","user_password" => "02185758","user_roleId"=>"2 " );
$cookie_jar = tempnam('./temp','cookie');//COOKIE を保存するファイル
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ ch、CURLOPT_POST、1);
curl_setopt($ch、CURLOPT_RETURNTRANSFER、0);
curl_setopt($ch、CURLOPT_POSTFIELDS、$post_data); URLPT_COOKIEJAR、 $cookie_jar); // Cookie 情報を保存します
$output1 =curl_exec($ch);
上記は私のコードです、誰かが私の間違いを知っていますか?間違いcurl_exec($ch)は一度しか実行されていません
ログイン ページの現在の設計によれば、ユーザー ログイン プロセスは次のとおりです:
1. sessionid が渡されているか、トークンがあるフォーム ページに入力します
3. ユーザーが正当であるかどうかを検証し、検証に合格したら Cookie をリセットします
2 番目のステップからのみ開始する場合、CURLOPT_COOKIEJAR は 3 番目のステップで生成された Cookie のみを取得します
最初のステップで Cookie がないと検証はパスしません
したがって、次のことが必要です
1. フォーム ページに入り、CURLOPT_COOKIEJAR を通じて Cookie を記録します
2. フォーム処理ページに入り、最初のステップで保存した Cookie を渡しますCURLOPT_COOKIEFILE を介して
ただし、名前が同じであれば、まだ正常にログインできますが、コードは次のとおりです