Задать вопрос
@Mussi

Curl, вместо кукисов передается путь к файлу с ними, что я делаю неверно ?

<?php
$request = '
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache';
$split = explode("\n",$request);	
  if( $ch = curl_init() ) {
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch,CURLOPT_URL,'http://localhost/viewcookie.php'); 
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_COOKIE, $_SERVER['DOCUMENT_ROOT'].'/cookie1.txt');
    curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie1.txt');
	curl_setopt ($ch, CURLOPT_HTTPHEADER,$split ); 
	curl_setopt($ch, CURLOPT_ENCODING , 'gzip, deflate');
    curl_setopt($ch, CURLOPT_POSTFIELDS,"log=adm&pwd=123");
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_NOBODY,false);
    curl_setopt($ch,CURLOPT_HEADER,true);
	curl_setopt($ch, CURLINFO_HEADER_OUT, true);
	$out = curl_exec($ch);
echo "<b>".$out."</b>";
  echo curl_getinfo($ch, CURLINFO_HEADER_OUT);
?>

Вот пхп код, через курл хочу послать куки на сторонний сайт, перед этим их получив, получил их в файл
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie1.txt');

в них все ровно записалось
хочу отослать теперь эти же куки(конечно все это будет другим запросом, но сути проблемы это не меняет)
curl_setopt($ch, CURLOPT_COOKIE, $_SERVER['DOCUMENT_ROOT'].'/cookie1.txt');

но какого-то хрена, вывод echo curl_getinfo($ch, CURLINFO_HEADER_OUT);
говорит мне, что вместо распарсенного содержимого файла cookie1.txt посылается тупо путь до этого файла
Cookie: Z:/home/localhost/www/cookie1.txt
сначала не поверил своим глазам и проверил на локале на примере файла viewcookie.php, в кукисах реально передается путь до файла
как мне быть и что делать ?
п.с. все вертится на денвере
  • Вопрос задан
  • 2546 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Scorpi
@Scorpi
Я не эксперт в PHP, но может всё таки параметром указывать содержание файла, а не путь к нему?
curl_setopt($ch, CURLOPT_COOKIE, file_get_contents($_SERVER['DOCUMENT_ROOT'].'/cookie1.txt'));
Ответ написан
KorsaR-ZN
@KorsaR-ZN
Замените опцию CURLOPT_COOKIE на CURLOPT_COOKIEFILE
Ответ написан
@Mussi Автор вопроса
Все, пошел другим путем, по совету человека выше пойти путем парсинга, отделил заголовки
$header=substr($out,0,curl_getinfo($ch,CURLINFO_HEADER_SIZE));

распарсил их и получил куку в переменную
preg_match("/Set-Cookie:(.*?)\r\n/",  $header, $cook);
   echo $cook[1];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы