> 백엔드 개발 > PHP 튜토리얼 > PHP模拟POST aspx页面不成功

PHP模拟POST aspx页面不成功

WBOY
풀어 주다: 2016-06-23 14:39:39
원래의
995명이 탐색했습니다.

下面实例返回 是   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=空';
}
?>
nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">




网上车管所




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=<ime=1343020354714&rtime=0

有Cookie呀..

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

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿