Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在提交数据时如何避免服务器端设置cookie?_Php_Curl - Fatal编程技术网

Php 在提交数据时如何避免服务器端设置cookie?

Php 在提交数据时如何避免服务器端设置cookie?,php,curl,Php,Curl,我们有一个内部网网站,我们使用它通过用户ID查询信息,这里是网站cookie的一个示例 # Netscape HTTP Cookie File # http://curl.haxx.se/rfc/cookie_spec.html

我们有一个内部网网站,我们使用它通过用户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_头更改为1,然后得到如下头:
HTTP/1.1 200 OK缓存控制:no Cache=“set cookie”日期:2013年10月11日星期五15:10:21 GMT传输编码:分块内容类型:text/html;charset=GB2312 Set Cookie:JSESSIONID=SYJd5J2b2C7FN2LPXVQfHk3vp4mmpTlKBtBbLbCT1HGfmX2kXGtR-860145551; path=/X-Powered-By:Servlet/2.4 JSP/2.0
显然问题就在这里<代码>缓存控制:no Cache=“set cookie”,如何避免响应头到
set cookie


谢谢。

确保
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR
的不同用法不是问题。我通过上面的php代码获得了示例cookie。因此,我认为使用
CURLOPT_-COOKIEFILE
CURLOPT_-COOKIEJAR
不是问题。