ホームページ >バックエンド開発 >PHPチュートリアル >Curl はポストデータの問題をシミュレートします

Curl はポストデータの問題をシミュレートします

WBOY
WBOYオリジナル
2016-06-23 14:03:091076ブラウズ

ページへのログインをシミュレートし、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 が渡されているか、トークンがあるフォーム ページに入力します

2.フォームに記入して送信します

3. ユーザーが正当であるかどうかを検証し、検証に合格したら Cookie をリセットします

2 番目のステップからのみ開始する場合、CURLOPT_COOKIEJAR は 3 番目のステップで生成された Cookie のみを取得します
最初のステップで Cookie がないと検証はパスしません

したがって、次のことが必要です
1. フォーム ページに入り、CURLOPT_COOKIEJAR を通じて Cookie を記録します
2. フォーム処理ページに入り、最初のステップで保存した Cookie を渡しますCURLOPT_COOKIEFILE を介して

ただし、名前が同じであれば、まだ正常にログインできますが、コードは次のとおりです

模倣人民法院ログイン " content="">





学生 ID:

;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
パスワード:<入力タイプ= "パスワード" name="user.password"/>
/td>