<?php $url = "http://passport.yandex.ru/passport?mode=auth"; //УРЛ, куда отправлять данные /* Переменные, которые мы будет отправлять Яндексу в виде POST запроса: */ $login = 'qtej346'; //Логин $passwd = '1062656'; //Пароль $user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'; //Полный путь до файла, где будем хранить куки $idkey = '3121235564020nVDfxvth2'; //Хрен знает что $retpath = 'http://webmaster.yandex.ru/'; //Откуда мы пришли на страницу авторизации $timestamp = ''; //Хрен знает что $twoweeks = 'yes'; //Две недели какие-то $In = 'Войти'; //Кнопка входа /* Функция: */ function auth($url) { global $user_cookie_file, $idkey, $retpath, $timestamp, $login, $passwd, $twoweeks, $In; // Получаем все POST данные /* Небольшая прелюдия с инифиализацией cURL и прочей шулухой */ $ch = curl_init($url); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"); curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file); //Куки раз curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file); //Куки два curl_setopt($ch, CURLOPT_POST,1); //Будем отправлять POST запрос /* Формируем и отправляем тот самый POST запрос. Как видите, это простая строка, мало чем отличающаяся от GET. */ curl_setopt($ch, CURLOPT_POSTFIELDS,"idkey=$idkey&retpath=$retpath×tamp=$timestamp&login=$login&passwd=$passwd&twoweeks=$twoweeks&In=$In"); $html = curl_exec($ch); curl_close($ch); return $html; //Возвращаем ответ Яндекса } auth($url); // Авторизируемся. ?> функция <?php function browser($url) { $user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'; //Получаем сохраненный после авторизации файл с куками. $ch = curl_init($url); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"); curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file); //Подставляем куки раз curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file); //Подставляем куки два $html = curl_exec($ch); curl_close($ch); return $html; //Возвращаем ответ } echo browser('http://narod.yandex.ru/'); //Безпрепятственно выводим заветную инфу ?> авторизация удалась. Вижу страницу narod.yandex.ru Как тыкнуть кнопку "создать сайт?" <a href='http://originaldiplom.info/купить-диплом-в-санкт-петербурге/'>купить диплом в спб недорого</a>
Snoopy-класс на php который имитирует браузер с куками post методом возможностью присоединять файл и гораздо удобнее CURL
include('Snoopy.class.php'); // подключаем «Snoopy» $snoopy = new Snoopy(); // создаём объект $post_array = array(); $post_array['login'] = 'nufal548'; $post_array['passwd'] = '1257765'; #$snoopy->cookies['last_visit'] = 1298295000; $snoopy->cookies['login'] = 'nufal548'; $snoopy->agent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; uk; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 Some plugins"; $snoopy->referer = "http://yandex.ru"; $snoopy->rawheaders["Host"] = "yandex.ru"; // Если сервер проверяет Host $snoopy->maxredirs = 100; // Максимальное количество редиректов $snoopy->submit('http://yandex.ru', $post_array); // отправляем форму echo $snoopy->results; // выводим результат[/code] Не логинится Копаю гуглом, но по снупи еще хуже дела с мануалами Добавлено спустя 19 минут 48 секунд: Есть еще реггер. Регает почту. Может быть сюда получится вкрутить "создавалку narod.ru'ов" <?php set_time_limit(0); function post($url,$post,$refer) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_REFERER, $refer); curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook"); curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); return $result;} function nik(){ $chars="eyuioa"; $buk='qwrtpasdfg0hjklzxcvbnm'; $max=2; $gl=StrLen($chars); $sogl=StrLen($buk); while($max--) $nik.=$buk[rand(0,$sogl)].$chars[mt_rand(0,$gl)]; $nik.=$buk[rand(0,$sogl)].rand(111,777); return $nik;} $login.=nik(); $name=rand(0,7777777); $password = rand(0,7777777); if($_POST['captcha']) {$result = post('http://passport.yandex.ru/passport?mode=register&ncrnd='.$_POST['ncrnd'],'idkey='.$_POST['idkey'].'&step=two&filled=yes&login='.$_POST['login'].'&fname='.$_POST['name'].'&iname='.$_POST['name'].'&time='.time().'&passwd='.$_POST['password'].'&passwd2='.$_POST['password'].'&hintq=1&udhintq=&hinta=OTVET&hintasave=OTVET&questnum=1&hintqsave=&email=&phonenumber=&code='.trim($_POST['captcha']).'&agreed=yes', 'http://passport.yandex.ru/passport?mode=register&ncrnd='.$_POST['ncrnd']); if (preg_match('#or">(.*?) н#i',$result,$bad_capt)) {echo '<script>alert(\'Не правильный код!\')</script>';} else{ $fh = fopen('yandex.txt', "a+"); $success - fwrite($fh, $_POST['login'].'@yandex.ru:'.$_POST['password']."\r\n"); fclose($fh); unset($_POST['captcha']);} Header('Location: index.php'); exit; } else {post ('http://passport.yandex.ru/passport?mode=logout',null,'http://passport.yandex.ru/'); $result = post('http://passport.yandex.ru/passport?mode=register','step=two&filled=yes&fresh=&iname='.$name.'&fname='.$name.'&login='.$login.'&done=%C4%E0%EB%FC%F8%E5%A0%26%238594%3B','http://passport.yandex.ru/passport?mode=register&msg=mail&retpath=http://mail.yandex.ru'); preg_match('#ncrnd=(.*?)"#i',$result,$ncrnd); preg_match('#idkey" value="(.*?)"#i',$result,$idkey); preg_match('#\?idkey=(.*?)"#i',$result,$captcha); /* Выводим форму для ввода капчи (в hidden передаём необходимые значения) */ echo '<img class="captcha-img" name="captcha" src="http://passport.yandex.ru/digits?idkey='.$captcha[1].'" alt=""><br> <form name="captcha_form" action="index.php" method="POST"> <input type="text" name="captcha" value="" /><br> <input type="hidden" name="ncrnd" value="'.$ncrnd[1].'" /> <input type="hidden" name="idkey" value="'.$idkey[1].'" /> <input type="hidden" name="name" value="'.$name.'" /> <input type="hidden" name="login" value="'.$login.'" /> <input type="hidden" name="password" value="'.$password.'" /> <input type="submit" value="ok"></form>'; } ?>
minux Должно работать. Посмотри в мозилле какие http переменные в заголовках передаются.Дело в том что кроме логина с пассом 99% передаются еще скрытые поля,которые нужны как раз для того чтобы не регались простым file_get_contents. Добавлено спустя 2 минуты 2 секунды: Мануал у него нормальный 1)Сначала зайди на Яндекс и сохрани в Снупи кукисы!!! 2)Сохрани скрытые переменные и попробуй имитировать действия юзера Добавлено спустя 1 минуту 18 секунд: Я так в Теле2 смски отсылал-сканчала заходил на форму с Теле2 смс,получал каптчу и отправлял её на антигейт,передавал все скрытые поля и у меня получилась штука для отправки СМС на Теле2
Вот они: $idkey = '3121235564020nVDfxvth2'; //ай-ди кей блин )) $timestamp = ''; //Хрен знает что $twoweeks = 'yes'; //Две недели какие-то (раньше была у яндекса галка "не спрашивать пароль 2 недели") $In = 'Войти'; //Кнопка входа = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Всё нужное присутствует, cUrl логинится. Вот функция: <?php function browser($url) { $user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'; //Получаем сохраненный после авторизации файл с куками. $ch = curl_init($url); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"); curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file); //Подставляем куки раз curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file); //Подставляем куки два тут надо как-то научить курл нажимать по кнопке $html = curl_exec($ch); curl_close($ch); return $html; //Возвращаем ответ } echo browser('http://narod.yandex.ru/'); //выводим страницу с результатами ?> Кнопка, которую хочу нажать, выглядит так: <a class="b-button b-radius b-button-green b-gradient-green" href="http://narod2.yandex.ru/register/?retpath=http://narod2.yandex.ru/wizard/">Создать сайт</a>
Ну так и переходите по ссылке потом: http://narod2.yandex.ru/register/?retpath=http://narod2.yandex.ru/wizard/ или просто http://narod2.yandex.ru/wizard/. Это и будет эффект от "нажатия" кнопки.