|
|
|
| Здравствуйте, подскажите как через cURL записать куки, которые дает ресурс при авторизации login и pass, а при редиректе этого ресурса отдавать давшие мне куки | |
|
|
|
|
|
|
|
для: BMW
(21.05.2009 в 13:03)
| |
<?php
// Соединение - 1
$ch = curl_init("https://site.ru/");
//получаем заголовки CURLOPT_HEADER, 1
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//httpS
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
// отправляем методом post - login и pass
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=admin&pass=12345");
$output = curl_exec ($ch);
curl_close($ch);
// конец Соединение - 1
// парсим из заголовков Set-Cookie(куки две штуки: wss=345 и nos=tr667) и Location (редирект=https://site1.ru/)
preg_match_all ('|Set-Cookie: wss=(.*);|isU',$output,$content_com_today_4);
preg_match_all ('|Set-Cookie: nos=(.*);|isU',$output,$content_com_today_5);
preg_match_all ('|Location: (.*)Connection|isU',$output,$content_com_today_6);
// Соединение - 2 (редирект и куки)
$ch2 = curl_init($content_com_today_6[1][0]);
curl_setopt ($ch2, CURLOPT_HEADER, 1);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, false);
//Отправляем куки
curl_setopt ($ch2, CURLOPT_COOKIE, "wss=".$content_com_today_4[1][0]);
curl_setopt ($ch2, CURLOPT_COOKIE, "nos=".$content_com_today_5[1][0]);
$output2 = curl_exec ($ch2);
curl_close($ch2);
print_r ($output2);
?>
|
| |
|
|
|
|
|
|
|
для: VITtek
(21.05.2009 в 21:33)
| | Я по тому же вопросу - у меня wss и nos меняются на key, sid и uid. При передаче только этих чисел - выбрасывает ошибку - bad request
как поступить... | |
|
|
|
|
|
|
|
для: Андрюха.
(31.05.2009 в 23:57)
| | есть замечательная опция: CURLOPT_COOKIEJAR
от этого имени и ищите, не спрашивайте готовых решений | |
|
|
|
|
|
|
|
для: Волки
(01.06.2009 в 00:02)
| | и CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR использую - с яндексом катит и файл куков создается, а с другими - не хочет, даже файла нет с непройденной авторизацией, в чем может анекдот быть..... | |
|
|
|
|
|
|
|
для: Андрюха.
(01.06.2009 в 10:32)
| | что угодно может быть .... сайт напиши | |
|
|
|
|
|
|
|
для: VITtek
(01.06.2009 в 17:11)
| | http://vshtate.ru/ пробую пройти | |
|
|
|
|
|
|
|
для: VITtek
(01.06.2009 в 17:11)
| | через такую форму проходит, если руцями
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html id="vshtate" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head>
<title>В Штате | Добро пожаловать</title>
</head><body>
<form action="http://vshtate.ru/login" method="post">
<input name="tp" value="comp" type="hidden">
<input name="email" type="text"><br>
<input name="pass[comp]" type="password"><br>
<input name="loginComp" type="submit" value="Вход">
</form>
</body></html>
|
| |
|
|
|
|
|
|
|
для: Андрюха.
(03.06.2009 в 08:07)
| |
<?php
$email='xxxxx@yandex.ru';
$pass='*******';
$ch = curl_init("http://vshtate.ru/login");
curl_setopt ($ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10");
curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLINFO_HEADER_OUT, 1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt ($ch, CURLOPT_REFERER, 'http://vshtate.ru/');
curl_setopt($ch, CURLOPT_POSTFIELDS, "tp=comp&email=".$email."&pass%5Bcomp%5D=".$pass);
$result = curl_exec ($ch);
curl_close($ch);
preg_match_all ('|Set-Cookie: (.*);|isU',$result,$set);
preg_match_all ('|Location: /id(\d+)|is',$result,$location);
$ch = curl_init("http://vshtate.ru/id".$location[1][0]);
curl_setopt ($ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10");
curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLINFO_HEADER_OUT, 1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt ($ch, CURLOPT_REFERER, 'http://vshtate.ru/login');
curl_setopt ($ch, CURLOPT_COOKIE, $set[0][0]);
curl_setopt ($ch, CURLOPT_COOKIE, $set[0][1]);
curl_setopt ($ch, CURLOPT_COOKIE, $set[0][2]);
$result = curl_exec ($ch);
curl_close($ch);
print_r ($result);
?>
|
P.S. В денвере работать не будет, т.к. там палиться localhost … заливай на хостинг ))) | |
|
|
|
|
|
|
|
для: VITtek
(03.06.2009 в 13:38)
| | даа, на локали не хочет. Попробую, может как зеркалом пойдет - mysite.com типа | |
|
|
|
|