ホームページ  >  記事  >  バックエンド開発  >  PHP はポストモードをシミュレートしてページを開きます

PHP はポストモードをシミュレートしてページを開きます

WBOY
WBOYオリジナル
2016-06-13 13:19:04938ブラウズ

PHP はページを開くために投稿モードをシミュレートします
バックグラウンドでログインし、投稿モードを使用して別のページにジャンプしてデータを処理することをシミュレートしようとしましたが、再ログインを求めるプロンプトが常にポップアップ表示されます。転送時に、$_SESSION 値が失われているため、ポスト モードをシミュレートしていると思われます。この状況にはどう対処すればよいでしょうか?
コードは次のとおりです:
$post_string='detail=addaction&subva=0&name=testadmin&password=123456&sex=1'
$context = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencodedrnUser-Agent : Jimmy の POST 例 betarnContent-length:'.strlen($post_string) +8,
'content' => 'mypost='.$post_string
)
);
$stream_context = stream_context_create($context)
$data = file_get_contents(" :// xxxxxxxx/xxxx/main.php", false, $stream_context);
echo $data;

------解決策--------- -- ----------
1) まずログイン画面にデータを POST します
2) 返された結果には Cookie が含まれます: SessionID=xxxxxxxxxxxx
3) SessionID を取り出し、上記と同様に POST します

'header' => 'Content-type: application/x-www-form-urlencodedrnUser-Agent : Jimmy の POST 例 betarnContent-length:'.strlen($post_string)+8,

'header' => ' Cookie: SessionID=xxxxxxxxx;Content-type: application/x-www-form-urlencodedrnUser-Agent: Jimmy の POST 例 betarnContent-length:'.strlen($post_string)+8,

Cookie形式を思い出せません。上記は単なるサンプルです。

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