Heim >Backend-Entwicklung >PHP-Tutorial >php模拟post模式打开页面

php模拟post模式打开页面

WBOY
WBOYOriginal
2016-06-13 10:36:261168Durchsuche

php模拟post方式打开页面
我登录了后台,想在后台模拟用post方式跳转到另一个页面并处理这些数据,可是总是弹出叫我重新登录的提示,我估计是模拟post方式跳转时,已经失去了$_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-urlencoded\r\nUser-Agent : Jimmy\'s POST Example beta\r\nContent-length:'.strlen($post_string)+8,
'content' => 'mypost='.$post_string
)
);  
$stream_context = stream_context_create($context);  
$data = file_get_contents("http://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-urlencoded\r\nUser-Agent : Jimmy\'s POST Example beta\r\nContent-length:'.strlen($post_string)+8,

'header' => 'Cookie: SessionID=xxxxxxxxx;Content-type: application/x-www-form-urlencoded\r\nUser-Agent : Jimmy\'s POST Example beta\r\nContent-length:'.strlen($post_string)+8,

Cookie的格式记不大清楚,以上只是Sample.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn