[help]сохранение cookies и редирект.

Статус
В этой теме нельзя размещать новые ответы.

sw04

seoplayer
Регистрация
1 Дек 2007
Сообщения
591
Реакции
215
собственно пытаюсь авторизоваться на liveinternet, но ругается на несохраненные cookies.
вопрос как их сохранить, т.к. я уже все мозги себе (цензура) :)
PHP:
$ua = 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)';
$ch=curl_init ("http://www.liveinternet.ru/journals.php?s=&action1=login");
curl_setopt ($ch, CURLOPT_HEADER, 1); 
curl_setopt ($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua); 
ob_start(); 
curl_exec ($ch);
curl_close ($ch);

$headers = explode("\n", ob_get_contents());
ob_end_clean();
print_r($headers);
for ($i=0; $i<sizeof($headers); $i++)
{
if (strpos($headers[$i], 'Set-Cookie:') !== FALSE || strpos($headers[$i], 'set-cookie:') !== FALSE)
{
list($field, $cookie[]) = explode(' ', $headers[$i]); // так можно получить куку (куки)
}
}
print_r($cookie);

$ref = 'http://www.liveinternet.ru/journals.php?s=&action1=login'; 
$ch=curl_init ("http://www.liveinternet.ru/member.php?rndm=1211994452");
curl_setopt ($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, 'action=login&url=/journal_post.php?journalid=2602216&username=iamsex&password=!!тут пароль!!'); //вот тут надо поредачить =)
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // это может понадобиться если будет редирект

for ($i=0; $i<sizeof($cookie); $i++)
{
curl_setopt($ch, CURLOPT_COOKIE, $cookie[$i]); // шлём куку (куки)
}

curl_exec ($ch);
curl_close ($ch);
сначало открывается страница авторизации, принимаем и устанавливаем cookie(возможно не правильно), затем пытаемся авторизоваться.
 
Куки я храню так...
PHP:
curl_setopt($сh, CURLOPT_COOKIEJAR, 'полный путь до куки');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'полный путь до куки');
Пример... Незабудь создать файл cookies.txt и назначить права для записи
PHP:
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookies.txt');
 
Разобрался.
проблему с куками не решил, хоть в файл и пишется.
как решил? не могу сформулировать :D
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху