Авторизация на pdj через curl, с отправкой POST

1. Михаил (10.03.2012 / 15:30)
Имеется грабер pdj.ru, до недавнего времени он как и все обычные грабы тупо через file_get_contents открывал страницу и дальше работал с ним. Но теперь на pdj.ru ввели обязательную авторизацию, для просмотра сайта с 10 страницы и далее. Т.е сграбить по старому теперь можно только до 10 страницы включительно. Нужно авторизоваться через curl и продолжить работу в прежнем режиме. Я погуглил, узнал какие данные нужно отправить в формы, чтобы авторизоваться, но pdj.ru выдает следующее: 301 Moved Permanently. Так же на просторах интернета узнал, что на pdj стоит проверка на headers'ы. Тут и столкнулся с проблемой, вроде отправляю все headers'ы, а ошибка остается. Вопрос: что не правильно делаю? =)

2. Михаил (10.03.2012 / 15:30)
Вот headers'ы, которые удалось выудить с помошью HttpFox:
(Request-Line)	POST /stat.php HTTP/1.1
Host	stat.livetool.ru
User-Agent	Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language	ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding	gzip, deflate
Connection	keep-alive
Cache-Control	no-cache, no-cache
Content-Type	application/x-www-form-urlencoded; charset=UTF-8
Content-Length	157
X-Livetool	Yes
Pragma	no-cache
Вот код, с помошью которого пытаюсь авторизоваться:
$url = 'http://www.promodj.com';                                // URL сайта на котором будем авторизоваться
$urlTo = 'http://www.promodj.com/login';                               // URL на которой будем слать POST данные
$login = 'login';                          // Ваш логин
$pass = 'pass';                                     // Ваш пароль
$post = 'backto=promodj.com&unsafeip=1&remember=1&login='.$login.'&password='.$pass;  // POST данные

$ch = curl_init();                              // Инициализируем сеанс CURL
curl_setopt($ch, CURLOPT_URL, $url);  // Заходим на сайт
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
$html = curl_exec($ch);                         // Имитируем заход на сайт

curl_setopt($ch, CURLOPT_URL, $urlTo);              // Устанавливаем адрес куда будем слать POST данные
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');  // Записываем cookies в файл, чтобы потом можно было их считать
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
curl_setopt($ch, CURLOPT_POST, true);               // Говорим, что информация будет отправляться методом POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);        // Передаем POST данные
     // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...'). 
                                                    // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных

$html = curl_exec($ch); // Записываем пришедшие данные в переменную    
curl_close($ch);        // Закрываем сеанс работы CURL
echo $html;             // И вуаля :)  Выводим авторизованную страницу


3. Михаил (10.03.2012 / 15:35)
В скрипт не вставил строку отправки hedaers'ов, так как делал это через "curl_setopt($curl, CURLOPT_HEADER, $headers);". Сказали что не правильно.....как же мне быть?

URL: https://visavi.net/topics/30360