Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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_Session Cookies - Fatal编程技术网

无法在PHP中使用Cookie

无法在PHP中使用Cookie,php,curl,session-cookies,Php,Curl,Session Cookies,我正在使用cURL解析一个网站 它需要会话才能查看,如果没有会话,则页面重定向到: 我使用此代码获取会话cookie,但我不知道为什么我看不到文件cookies.txt的任何更改 $urltopost = "http://www.hcmiu.edu.vn/bookforsale/perInfo.php"; $datatopost = array ( "name" => "abc", "tel" => "99999999", "email" => "abc@gmail.com

我正在使用cURL解析一个网站

它需要会话才能查看,如果没有会话,则页面重定向到:

我使用此代码获取会话cookie,但我不知道为什么我看不到文件cookies.txt的任何更改

$urltopost = "http://www.hcmiu.edu.vn/bookforsale/perInfo.php";
$datatopost = array (
"name" => "abc",
"tel" => "99999999",
"email" => "abc@gmail.com",
"profession" => "abc",
"employer" => "abc",
"tel_work" => "99999999",
); 
$ch = curl_init($urltopost);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datatopost);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookies.txt"); 

$returnData = curl_exec($ch);
$file = fopen("example.txt", "w");
fwrite($file, $returnData);
fclose($file);
curl_close($ch);
然而,我看到:

Set-Cookie: PHPSESSID=1egb993objkrdp3gi5mpvs02g0; path=/ 
在标题中。谢谢你的帮助

-编辑:
我使用了一种巧妙的方法:我使用http查看器在浏览器cookie中查看PHPSESSID。然后我用它来创建一个cookies文件供cURL读取。然后我可以通过web服务器的会话检查来查看文件showbooks.php

文件可写吗?它是否存在?

尝试创建该文件并授予其全局读写权限


还可以尝试使用相对路径(例如,./cookies.txt)而不是cookie jar文件的绝对路径。

我使用此代码片段从服务器响应中提取cookie:

$returnData = curl_exec($ch);
$cookie = '';
$pattern = '/Set-Cookie:(.*?)\n/';
if (preg_match($pattern, $returnData, $result))
$cookie = $result[1];
我已经描述了我在这方面的经历。这种方法不使用cookie文件


<> >关注<强> cookie文件< /强>,请考虑以下建议:

使用绝对路径设置 变量CURLOPT_COOKIEFILE& 库基耶尔。让生活更轻松 使用realpath(“file.txt”)函数 获取绝对路径


该文件不存在。但是如果它存在,它也不会写入任何cookies数据。谢谢,你的解决方案对我帮助很大。我不知道为什么互联网上的一些教程不评论这个问题。