GET /test4.php建议多看看HTTP协议的内容。

解决方案 »

  1.   

    呵呵,看看HTTP协议吧
    http://www.cnpaf.net/class/http/
      

  2.   

    这个问题很好解决,
    先下载一个http sniffer ,启动监视
    打开要进行登陆操作的网站,然后实际操作一下,操作结束后,打开sniffer看一下
    浏览器和server之间发送的原始数据,再用php模拟浏览器照原样发送即可。这种情况还是使用一个httpClient类来处理比较方便一些。
      

  3.   

    header("Referer: http://.......");
      

  4.   

    一样的啊,HTTP协议就是这样的
      

  5.   

    糊涂了。这么说吧,我想用php来实现登陆www.cmfu.com这个网站。怎么实现?
      

  6.   


    <?php
    // simple post method
    // version 1.0 by Andrus ([email protected])// Disclaimer:
    // everyone can change or use this code however and wherever they want ;)// NB! For posting to Microsoft platform webservers you may need to change newlines "\r\n" to "\r\r\n"
    // Microsoft always breaks standards ...    // send out "browser" headers
    function send_headers ($fp) {
        fputs ($fp, "Accept: */*\r\n");
        //fputs ($fp, "Accept-Language: en\r\n");
        fputs ($fp, "Connection: Keep-Alive\r\n");
        fputs ($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)\r\n");
    }// post data and return reply
    function post_data ($host, $url, $data) {
        $fp = @fsockopen ($host, 80, $errno, $errstr, 120);
        $ret = "";
        if (strncasecmp ($url, "http://", 7) == 0) $url = substr ($url, 7);
        $p = strpos ($url, '/');
        if ($p==="") {
            $req = "/";
        } else {
            $req = substr ($url, $p);
        }
        if ($fp) {
            fputs ($fp, "POST $req HTTP/1.0\r\n");
            send_headers ($fp);
            fputs ($fp, "Content-type: application/x-www-form-urlencoded\r\n");
            $out = "";
            while (list ($k, $v) = each ($data)) {
                if(strlen($out) != 0) $out .= "&";
                $out .= rawurlencode($k). "=" .rawurlencode($v);
            }
            $out = trim ($out);
            fputs ($fp, "Content-length: ".strlen($out)."\r\n\r\n"); 
            fputs ($fp, "$out");
            fputs ($fp, "\r\n");
            while(!feof($fp)){ 
                $ret .= fgets($fp); 
            } 
        fclose ($fp);
       }
        return $ret;
    }
    // example how to use:// following code will post variables "login" and "pass" to server "www.something.om" script "/submit.php"
    $reply = post_data ("www.ecool2004.com", "/vote.asp", array ("Options" => "6"));
    echo $reply;
    ?>
      

  7.   

    楼上这种方法是普通的post方法,通不过对refer有限制的程序。