无法在 cURL PHP 中使用 cookie
我正在使用 cURL 来解析网站。
http://www.hcmiu.edu.vn/bookforsale/showbooks.php< /a>
它需要会话才能查看,如果没有会话,则页面重定向到:
http://www.hcmiu.edu.vn/bookforsale/perInfo.php< /a>
我使用此代码来获取会话 cookie,但我不知道为什么我看不到文件 cookies.txt 的任何更改,
$urltopost = "http://www.hcmiu.edu.vn/bookforsale/perInfo.php";
$datatopost = array (
"name" => "abc",
"tel" => "99999999",
"email" => "[email protected]",
"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 读取。然后我就可以通过网络服务器的会话检查来查看文件 showbooks.php 。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我使用此代码片段从服务器的响应中提取 cookie:
我已在 这篇文章。此方法不使用 cookie 文件。
关于 cookie 文件,请考虑以下来自 http:// 的建议php.net/manual/en/book.curl.php:
I used this code snippet to extract the cookie from the server's response:
I've described my experience in this post. This approach doesn't use cookie file.
What concerns cookie file, consider the following advice from http://php.net/manual/en/book.curl.php:
文件可写吗?它真的存在吗?
is the file writable? does it even exist?
尝试创建该文件并赋予其全局读写权限。
还可以尝试使用相对路径(例如 ./cookies.txt)而不是 cookie jar 文件的绝对路径。
Try creating the file and give it global read write privilege.
Also try with a relative path (say, ./cookies.txt) instead of an absolute path for the cookie jar file.