Я пытаюсь сохранить файл cookie в curl cookiejar. Я упростил свой код, но не работал.
<?php $cookie_file = './cookies.txt'; if (! file_exists($cookie_file) || ! is_writable($cookie_file)){ echo 'Cookie file missing or not writable.'; exit; }//cookie_file is writable, so this is not the issue $ch = curl_init (html_entity_decode("http://localhost/kiala_test/setcookie.php")); curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie_file); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 1); //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $output = curl_exec ($ch); echo $output; ?>
setcookie.php
<?php $value = 'something from somewhere'; setcookie("TestCookie", $value); ?>
полученный заголовок
HTTP / 1.1 200 OK Дата: Чт, 10 Окт 2013 12:10:37 GMT Сервер: Apache / 2.4.4 (Win64) PHP / 5.4.12 X-Powered-By: PHP / 5.4.12 Set-Cookie: TestCookie = что-то + из + где-то Content-Length: 0 Content-Type: text / html
поэтому testcookie находится в заголовке, но мой файл cookie остается пустым. Что я делаю неправильно? что я могу сделать, чтобы этот пример работал? Спасибо!
При настройке CURLOPT_COOKIEJAR
вам необходимо использовать абсолютный путь. Вы можете сделать это легко, используя:
curl_setopt ($ch, CURLOPT_COOKIEJAR, realpath($cookie_file) );
Ссылка: нельзя использовать файлы cookie в cURL PHP