2010-04-06 1 views
1
.

. Я пробую следующий код для отправки данных сообщения в форму для входа в систему, а затем перезагрузите эту страницу в браузере как зарегистрированный пользователь. так или иначе, это не сохранение cookie и повторное использование его для функции header(), можно ли сделать то же самое, что и заголовок, вызвав curl снова после отправки данных для входа?Войдите в систему через curl, затем откройте эту страницу, зарегистрированную в



.. 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , false); 
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']); 
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 1); 

// Apply the XML to our curl call 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

$data = curl_exec($ch); 

setcookie($cookie); 
header('location: ' . $url); 

die(); 

+1

Является ли это для того же домена? Если нет, то это невозможно. Если это так, я просто не понимаю. Кроме того, нет причин для кого-то умереть в конце. – zaf

ответ

3

Вы можете войти в систему, используя cURL. И делайте все, что вам нужно, используя cURL. Я не уверен, что вы можете восстановить этот файл cookie и повторно использовать его для дальнейшего использования. Вы можете передать строку как идентификатор вашего файла cookie в cURL. Я не уверен, если вы можете использовать его для загрузки cookie в другом месте ... Возможно, может и нет. Однако следующий код работает очень хорошо. По крайней мере, для вещей, которые мне нужны.

Удачи.

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL , "http://www.example.com/login.php"); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=" . $login . "&password=" . $password . "&submit=submit"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies"); 
$response= curl_exec ($ch); 
curl_close($ch); 

Не забывайте, что вы должны использовать один и тот же ключ куки для всех других действий, которые вы намерены выполнить в этой области ..

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL , "http://www.example.com/datapageyouneed.php"); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies"); 
$reponse= curl_exec ($ch); 
curl_close($ch); 
1

, что невозможно
и выглядит как фишинг.
Позвольте войти в систему самостоятельно.

+3

Вы почти получили Haiku, но это 5-7-5, а не 5-5-7. –

+0

Я должен быть в состоянии сделать это с помощью javascript сейчас. –

Смежные вопросы