PDA

Просмотр полной версии : Трабл с cURL. В чём он?


vorona
12.11.2009, 10:52
На site.ru/in.php такой html-код:


Имя:<br/>
<input type='text' name='n' maxlength='20'/><br/>
Пароль:<br/>
<input type='password' name='p' maxlength='20'/><br/>
<input type='checkbox' name='mem' value='1' checked='checked' />Запомнить меня<br/>
<input type='submit' value='Вход'/>


Я пишу так:


<?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://site.ru/in.php"); /* Переходим на страницу, на которой нужно пройти процедуру авторизации */
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "n=mylogin&p=mypass&mem=1"); /* Внимание! Здесь необходимо передать параметры, полученные Вами от сниффера – параметры разделяются знаком & */
curl_setopt($ch, CURLOPT_COOKIEJAR,$_SERVER['DOCUMENT_ROOT'].'/file.txt');
$result = curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, "http://site.ru"); /* Теперь заходите на сайт как авторизованный пользователь – в данном случае нужно вместо example.com указать URL страницы, на которую может попасть только авторизованный пользователь */
curl_setopt($ch, CURLOPT_POST, 0); /* Также необязательное действие, но я указал этот параметр – устанавливаю CURLOPT_POST в нуль, ведь теперь мне не нужно передавать данные методом POST */
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/file.txt'); /* Внимание! Здесь третий параметр (адрес текстового файла с куками) должен быть точно таким же, как и при использовании CURLOPT_COOKIEJAR, иначе процедура авторизации работать не будет, так как требуемые серверу Куки не передадутся */
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>


Кидает неавторизованным на site.ru Почему? Что я делаю неправильно?

vorona
12.11.2009, 10:54
В file.txt вот такая вот строка:

site.ru FALSE / FALSE 0 SESID 1e36101ac25d8b164cb47d541e5be16f

b3
12.11.2009, 12:18
попробуй так :

<?php

$ch = curl_init('http://site.ru/in.php');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');
curl_setopt($ch, CURLOPT_REFERER, 'http://site.ru/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "n=mylogin&p=mypass&mem=1");
curl_setopt($ch, CURLOPT_COOKIEJAR, './cook');
curl_setopt($ch, CURLOPT_COOKIEFILE, './cook');
$result = curl_exec($ch);
curl_close($ch);



$ch = curl_init('http://site.ru/');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');
curl_setopt($ch, CURLOPT_REFERER, 'http://site.ru/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, './cook');
curl_setopt($ch, CURLOPT_COOKIEFILE, './cook');
$result = curl_exec($ch);
curl_close($ch);

?>

vorona
12.11.2009, 12:30
не работает (((((((((

сйт.ru FALSE / FALSE 0 SESID 3064c9a01635e116f3ed031374e429c3

мож из-за редиректа?

b3
12.11.2009, 12:41
засвети адрес, или в пм.

vorona
12.11.2009, 12:46
засвети адрес, или в пм.
написал в личку

vorona
12.11.2009, 13:53
что-то ответа от b3 нету(((

Дикс
13.11.2009, 10:37
curl_setopt($ch, CURLOPT_POST, 0);
и на будущее, вот это не используй
лучше вообще не пиши строку