使用PHP通过不同页面访问同一主机的cookie传递问题


在本地 Apache 上有两个文件: a.php & b.php
a.php 文件首先通过 curl 和Host联系并且创建 cookie
然后将一些参数传递给 b.php ,再让 b.php 使用 a.php 创建的 cookie 联络Host。

请问该怎么实现?

网络通信 php 网络编程

中国杯具帝 10 years, 10 months ago

你为什么不直接在a.php的末尾require b.php?

cugbig answered 10 years, 10 months ago

自己看下吧。看你表述的好累。


 $post='__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=';
        // 初始化
        $curl = curl_init('http:///login.aspx');
        $header = array();
        $header[] = 'Host: 113.';
        $header[] = 'Connection: keep-alive';
        $header[] = 'Cache-Control: max-age=0';
        $header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
        $header[] = 'Origin: http://113.';
        $header[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36';
        $header[] = 'Content-Type: application/x-www-form-urlencoded';
        $header[] = 'Referer: http:///login.aspx';
        $header[] = 'Accept-Encoding: gzip, deflate';
        $header[] = 'Accept-Language: zh-CN,zh;q=0.8';
        $header[] = 'Cookie: ASP.NET_SessionId='.$cookies;
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
        // 不输出header头信息
        curl_setopt($curl, CURLOPT_HEADER, 1);    
        // 保存到字符串而不是输出
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        // post数据
        curl_setopt($curl, CURLOPT_POST, 1);
        // 请求数据
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
        // 是否抓取跳转后的页面
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        $response = curl_exec($curl);
        curl_close($curl);
        $rs=strlen($response);

蓝色的眷念 answered 10 years, 10 months ago

把cookie保存下来,如果你用的原生cURL的话,那就落地成文件保存。
再次访问的时候,读取保存的cookie文件就OK了。

狐狸Fse answered 10 years, 10 months ago

Your Answer