Здравствуйте. Соб-сно не могу авторизоваться на ресурсе, с помощью CURL. Вот код PHP: $url="http://mirtus.ru/functions/log.php"; $post="login=test_for_pro&password=test_for_pro&remember=on&submitButton=Войти"; $cookie = str_replace('\\', '/', dirname(__FILE__)) . 'cookies.txt'; $ch = curl_init(); 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, 30); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 0); $result = curl_exec($ch); curl_close($ch); После пытаюсь зайти в новости. PHP: $url="http://mirtus.ru/news"; $cookie = str_replace('\\', '/', dirname(__FILE__)) . 'cookies.txt'; $ch = curl_init(); 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, 30); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 0); $result = curl_exec($ch); curl_close($ch); print $result; Но почему-то не могу авторизоваться, может кто подсказать, есть ли где-то ошибка?Или может кто-то сможет сам попробовать авторизоваться? Заранее спасибо.
Всмысле где? Их нужно посылать? (Status-Line) HTTP/1.1 200 OK Server nginx/0.6.39 Date Tue, 12 Jan 2010 23:11:26 GMT Content-Type text/html; charset=windows-1251 Transfer-Encoding chunked Connection keep-alive X-Powered-By PHP/5.1.6 Expires Thu, 19 Nov 1981 08:52:00 GMT Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma no-cache Вот что сниф ловит, куда их привезать? Каким образом?
Смысл еще в том, что как бы не создаются куки. Допустим если вручную ставить галку "Запомнить меня", то есессно пишутся в куки хэш пароля и пасс. Но вот что-то если слать курлом жто, то ничего не запоминается, как будето авторизация не проходит. Вообще, по сути верно же вроде всё делаю? Если не брать в расчет какой-нибудь хитрый метод авторизации.
Да вот дело в том, что вот так, сделал в с помощью форума спамер для соцсети, потом появляется реклама "сделаю спам-рассылку по миллиону юзеров за 100$".
Да, появляются. Но я гарантирую, что этот ресурс никогда не догонит контакт. соц сетей, кроме одноклассников, контакта и моймир уже не будет. Никто с уже работающих никуда не уйдет. Я просто хочу потренироваться в кодинге. Таким способом авторизации, как я писал выше можно спокойно авторизироваться на мейл.ру. В общем, спасибо за пару советов, не хочется ничего доказывать.
Заголовки запроса Host mirtus.ru User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) Accept */* Accept-Language ru,en-us;q=0.7,en;q=0.3 Accept-Encoding gzip,deflate Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive 300 Connection keep-alive Content-Type application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With XMLHttpRequest Referer http://mirtus.ru/login.php Content-Length 18 Cookie PHPSESSID=8mh933d6adko4hqm6ij369hl86; header=1; color=1
440Hz Дешевый клон вконтакта клонирующего фейсбук =) А загрузил картинку вместо mp3, а мне написали, что спам запрещен =)
Вот какая конструкция получилась, но всё также. Ругается curl_setopt(): supplied argument is not a valid cURL handle resourc на curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, "X-Requested-With: XMLHttpRequest"); Пробовал сначала просто получать куки при заходе, а далее с ними авторизироваться. curl_setopt($ch, CURLOPT_HEADER, 1); ставил 0 и 1 для теста. $post_array = array('login'=>'test_for_pro', 'password'=>'test_for_pro', 'remember'=>'on'); while(list($name,$value) = each($post_array)) { $res[] = urlencode($name)."=".urlencode($value); } $post = implode("&", $res); $url="http://mirtus.ru/functions/log.php"; $cookie = str_replace('\\', '/', dirname(__FILE__)) . 'cookies.txt'; $ch = curl_init(); curl_setopt($ch,CURLOPT_REFERER,"http://mirtus.ru/login.php"); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 MRA 5.5 (build 02842) Firefox/3.5.7 (.NET CLR 3.5.30729) sputnik unknown"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, "X-Requested-With: XMLHttpRequest"); curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 1); $result = curl_exec($ch); curl_close($ch); print_r ($result);
Всё, получилось. curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-REQUESTED-WITH: XMLHttpRequest')); Верным способом вписал строчку. Спасибо 440Hz и Kreker