在本地 Apache 上有兩個檔案:
a.php
&
b.php
。
a.php
檔案首先通過
curl
和Host聯絡並且建立
cookie
。
然後將一些參數傳遞給
b.php
,再讓
b.php
使用
a.php
建立的
cookie
聯絡Host。
請問該怎麼實現?
回複內容:
在本地 Apache 上有兩個檔案:a.php
& b.php
。
a.php
檔案首先通過curl
和Host聯絡並且建立cookie
。
然後將一些參數傳遞給 b.php
,再讓b.php
使用a.php
建立的cookie
聯絡Host。
請問該怎麼實現?
把cookie儲存下來,如果你用的原生cURL的話,那就落地成檔案儲存。
再次訪問的時候,讀取儲存的cookie檔案就OK了。
自己看下吧。看你表述的好累。
$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);
你為什麼不直接在a.php的末尾require b.php?