欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP模拟POST aspx页面不成功

程序员文章站 2024-02-09 14:43:10
...
下面实例返回 是 0|访问限制!请重新加载页面
应该放回 -2|车牌号码错误



/************************************************************************
Name: POST 测试程序 Vesion: 1.0 Date: 2004-08-05
*************************************************************************/
$keyimg=$_POST['keyimg'];
if($keyimg){
$flag = 0;
//要post的数据
$argv = array(
'action'=>'Illagel',
'back4'=>'3248',
'headno'=>'粤',
'no'=>'LA9532',
'type'=>'02',
'validate'=>$keyimg
);
//构造要post的字符串
foreach ($argv as $key=>$value) {
if ($flag!=0) {
$params .= "&";
$flag = 1;
}
$params.= $key."=";
$params.= urlencode($value);
//$params.= $value;
$flag = 1;
}
echo $params;
$length = strlen($params);
//创建socket连接
$fp = fsockopen("www.gdhzcgs.com",80,$errno,$errstr,10) or exit($errstr."--->".$errno);
//构造post请求的头
//$header = "POST /Illegal.aspx HTTP/1.1\r\n";
$header = "POST /Ajax.aspx HTTP/1.1\r\n";
$header .= "Host:www.gdhzcgs.com\r\n";
$header .= "Referer:www.gdhzcgs.com/Illegal.aspx\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: ".$length."\r\n";
$header .= "Connection: Close\r\n\r\n";
//添加post的字符串
$header .= $params."\r\n";
//发送post的数据
fputs($fp,$header);
$inheader = 1;
while (!feof($fp)) {
$line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据
if ($inheader && ($line == "\n" || $line == "\r\n")) {
$inheader = 0;
}
if ($inheader == 0) {
echo $line;
}
}
fclose($fp);
}
else{
echo 'keyimg=空';
}
?>





网上车管所




PHP模拟POST aspx页面不成功




回复讨论(解决方案)

有curl不用非得自己造*,看着就蛋疼。

有curl不用非得自己造*,看着就蛋疼。

curl
http://www.gdhzcgs.com/Ajax.aspx
也是 返回
0|访问限制!请重新加载页面

Request Headers Value
(Request-Line) POST /Ajax.aspx HTTP/1.1
x-requested-with XMLHttpRequest
Accept-Language zh-CN
Referer http://www.gdhzcgs.com/Illegal.aspx
Accept */*
Content-Type application/x-www-form-urlencoded
Accept-Encoding gzip, deflate
User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host www.gdhzcgs.com
Content-Length 69
Connection Keep-Alive
Cache-Control no-cache
Cookie ASP.NET_SessionId=rimtcb55pc2gcgurkaimgi45; CNZZDATA3614737=cnzz_eid=42940778-1343020353-&ntime=1343020353&cnzz_a=0&retime=1343020354714&sin=&ltime=1343020354714&rtime=0

有Cookie呀..

找个HTTPWATCH完全模拟访问过程..新手容易忽略 AJAX 访问..
这个也需要模拟 很多SESSION隐藏着 都是通过AJAX"秘密"生成的,要把它挖出来..
更复杂点,有时还要看点它的JS代码,木有办法的,跟着httpwatch完全模拟访问吧

我跨域访问也遇到同样的问题呀,晕,请问楼主最后是用什么方法解决的,同求?