Всем привет.
Проблема в следующем:
делаю авторизацию на сайте kriminala.net и использую след. код.
<?PHP
$ch = curl_init('http://forum.kriminala.net/login.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (бла бла бла..) ");
$headers = array
(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8',
'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
'Accept-Encoding: deflate',
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_REFERER, "http://forum.kriminala.net/login.php");
curl_setopt($ch, CURLOPT_POSTFIELDS, 'action=username=логин&password=пароль&submit=login');
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
?>
В файле с куками my_
cookies.txt появляется след. информация:
.kriminala.net TRUE / FALSE 1356780745 phpbb2mysql_data a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bi%3A-1%3B%7D
.kriminala.net TRUE / FALSE 1356780745 phpbb2mysql_sid 06b5418a3ad62fdc7a9c907acd63787d
Не знаю проходит авторизация или нет.
А во втором файле я сделал чтобы показывало форму для ввода лично сообщения:
<?php
$url = "http://forum.kriminala.net/privmsg.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEFILE, '/my_cookies.txt');
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "folder=inbox&mode=post&u=45048");
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
Но место форм для ввода сообщений, у меня вылазит окно авторизации.
В чем проблема, подскажите плиз.
Заранее благодарен за Ваши ответы.
Спустя 1 час, 48 минут, 31 секунда (30.12.2011 - 16:43) Winston написал(а):
Цитата (Frost-56 @ 30.12.2011 - 13:54) |
Но место форм для ввода сообщений, у меня вылазит окно авторизации.
|
Значит авторизация не проходит.
Эту тему смотрел ?
Спустя 2 дня, 6 часов, 2 минуты, 44 секунды (2.01.2012 - 22:45) Frost-56 написал(а):
Спасибо, перечитал вашу тему. Вот мой код авторизации:
<?php
$url = 'http://forum.kriminala.net/login.php';
$urlTo = 'http://forum.kriminala.net/login.php';
$post = username=логин&password=пасс&redirect=&login=%C2%F5%EE%E4;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, $urlTo);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$html = curl_exec($ch);
curl_close($ch);
echo $html;
?>
Но сервер выкидывает следующее:
Ошибка HTTP 500 (Internal Server Error): При попытке сервера выполнить запрос возникла неожиданная ситуация. Спустя 4 минуты, 19 секунд (2.01.2012 - 22:50) Winston написал(а):
Цитата (Frost-56 @ 2.01.2012 - 21:45) |
$post = username=логин&password=пасс&redirect=&login=%C2%F5%EE%E4; |
А чего строку не взял в кавычки?
Или это сюда без кавычек выложил ?
Спустя
26 минут, 49 секунд Winston написал(а):
Также, если у тебя логин написан по-русски то его нужно кодировать
$post = 'username='.urlencode('логин').'&password=пасс&redirect=&login='.urlencode('логин');
Спустя 1 час, 24 минуты, 53 секунды (3.01.2012 - 00:15) Frost-56 написал(а):
Цитата (Winston @ 2.01.2012 - 19:50) |
Цитата (Frost-56 @ 2.01.2012 - 21:45) | $post = username=логин&password=пасс&redirect=&login=%C2%F5%EE%E4; |
А чего строку не взял в кавычки? Или это сюда без кавычек выложил ?
Спустя 26 минут, 49 секунд Winston написал(а):
Также, если у тебя логин написан по-русски то его нужно кодировать $post = 'username='.urlencode('логин').'&password=пасс&redirect=&login='.urlencode('логин'); Там на англ. ник, это я сюда выложил чтобы никто не взломал. А строка реально без кавычек, реально что то затупил, след. раз буду не копировать а писать сам, спасибо вам большое ) |
Цитата (Frost-56 @ 2.01.2012 - 21:45) |
$post = username=логин&password=пасс&redirect=&login=%C2%F5%EE%E4; |
А чего строку не взял в кавычки?
Или это сюда без кавычек выложил ?
Спустя
26 минут, 49 секунд Winston написал(а):
Также, если у тебя логин написан по-русски то его нужно кодировать
$post = 'username='.urlencode('логин').'&password=пасс&redirect=&login='.urlencode('логин');
Там на англ. ник, это я сюда выложил чтобы никто не взломал.
А строка реально без кавычек, реально что то затупил, след. раз буду не копировать а писать сам, спасибо вам большое )
Спустя 2 минуты, 2 секунды (3.01.2012 - 00:17) Winston написал(а):
Цитата (Frost-56 @ 2.01.2012 - 23:15) |
спасибо вам большое |
Проблема решена ?
Спустя 10 часов, 22 минуты, 4 секунды (3.01.2012 - 10:39) Frost-56 написал(а):
Да, полностью, ещё раз спасибо. Будет 10 постов поставлю + )