0

我们有一个内网网站,我们使用它通过用户 ID 查询信息,这里是网站 cookie 的示例。

  # Netscape HTTP Cookie File                                                                            
  # http://curl.haxx.se/rfc/cookie_spec.html                                                             
  # This file was generated by libcurl! Edit at your own risk.                                           

  192.168.202.200   FALSE   /   FALSE   0   JSESSIONID  SX2NVyVkj4YlY2Zv7857Mdyy5RpdfQWmLjYjqtnWTF4x9nRghxcr!1083570229

我使用 web 开发人员将 cookie(和一些 web 元素)从 firefox 复制到 chrome。chrome 可以正常工作。但是当我使用这样的php代码时:

<?php
$cookie = tempnam('.','cookie'); 

$url='http://192.168.202.200/bbs/query.jsp';

$ch = curl_init();  
curl_setopt($ch,CURLOPT_URL, $url);  
curl_setopt($ch,CURLOPT_HEADER,0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
$output = curl_exec($ch) ;
$fh = fopen("cookie.html", 'w') ;
fwrite($fh, $output) ;
fclose($fh) ;
curl_close($ch); 
preg_match("/<input type=\"hidden\" name=\"myname\" value=\"(.*)\"\/>/isU",$output,$myname);    

$url='http://192.168.202.200/bbs/SomeAction.do';
$curlPost='billNum=1049090347503&myname='.$myname[1];
$ch = curl_init($url);  
curl_setopt($ch, CURLOPT_HEADER,0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);   
$output = curl_exec($ch) ;
$fh = fopen("out.html", 'w') ;
fwrite($fh, $output) ;
fclose($fh) ; 
curl_close($ch); 

@unlink($cookie);
?>

我的 php 代码无法进行成功​​查询,但只有一个网页指示“查询检查机制错误”,这似乎是由 web 自动阻止查询生成的。

'http://192.168.202.200/bbs/query.jsp'是主页的 iframe,并且'http://192.168.202.200/bbs/SomeAction.do'有一个执行查询的 iframe。

我将 CURLOPT_HEADER 更改为 1,然后得到这样的标题: HTTP/1.1 200 OK Cache-Control: no-cache="set-cookie" Date: Fri, 11 Oct 2013 15:10:21 GMT Transfer-Encoding: chunked Content-Type: text/html; charset=GB2312 Set-Cookie: JSESSIONID=SYJd5J2b2C7FN2LPXVQfHk3vp4mmpTlKBtBbLbCT1HGfmX2kXGtR!-860145551; path=/ X-Powered-By: Servlet/2.4 JSP/2.0 显然问题就在这里。Cache-Control:no-cache="set-cookie", 如何避免 Reponse header to set-cookie.

谢谢。

4

0 回答 0