curl发布数据时如何避免服务器端的set-cookie?

时间:2013-10-11 09:08:39

标签: php curl

我们有一个内联网网站,我们按用户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。铬可以正常工作。 但是当我使用这样的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",如何避免将回复标题提交到set-cookie

感谢。

0 个答案:

没有答案