Писал регер яндекс почты... Сделал на курле - в общем PHP: <html> <?php $idkey=""; $step="one"; $filled="yes"; $fresh="3"; $iname="jkljl"; $fname="jkljkl"; $login="jkpkj7oi97"; $done=""; $user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'; function auth() { $url = "http://passport.yandex.ru/passport?mode=register&ncrnd=641490"; global $user_cookie_file, $idkey, $step, $filled, $fresh,$iname,$fname,$login,$done; $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_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_POST,1); //Будем отправлять POST запрос curl_setopt($ch, CURLOPT_POSTFIELDS,"idkey=$idkey&step=$step&filled=$filled&fresh=$fresh&iname=$iname&fname=$fname&login=$login&done=$done"); $html = curl_exec($ch); curl_close($ch); $html2 = preg_match('#\?idkey=(.*?)"#i',$html,$m); echo "<img src=\"http://passport.yandex.ru/digits?idkey=$m[1]\" />"; return $html; } auth(); echo '<form action="1.php" method=POST> Капча <br><input type=text name="name" value=""><br>'; echo 'логин <br><input type=text name="name2" value="'.$login .' "><br>'; echo '<input type=submit value="Отправить"> </form>'; ?> </html> и файл 1.php PHP: <? $u_name = $_POST['name']; $u_name2= $_POST['name2']; echo "<b>Ваше имя:".($u_name)."<br>"; $login = $u_name2; echo "login:".($login)."<br>"; $url="http://passport.yandex.ru/passport?mode=register"; function browser($url, $login, $u_name) { $user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'; //Получаем сохраненный после авторизации файл с куками. $ch = curl_init($url); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 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_POSTFIELDS,"idkey=&step=two&filled=yes&login=$login&fname=jkljkl&iname=jkljl&time=1290841802745&gmt_offset=&passwd=G5871G5871&passwd2=G5871G5871&hintq=2&udhintq=&hinta=&email=&phonenumber=&code=$u_name&agreed=yes&_weakpass_warn=1"); $html = curl_exec($ch); curl_close($ch); return $html; //Возвращаем ответ } echo browser($url, $login, $u_name); ?> первый запрос отправляет значение логина и еще что-то, после чего мы передаем 1.php значение выдернутой капчи и логин. А он в свою очередь отправляет данные опять пост запросом и должен переадресовать на страничку где написано о успешной реге... он пост запрос отправляет - но толку неттт.... Короче расскажите болбесу что не так??? (регер у меня и так есть - просто учусь...) - могу ++наставить за помощь((
не очень понял что нужно. Это не то? Code: echo "<b>$text[0]</b><br>"; echo "<b>$text[1]</b><br>"; echo "<b>$text[2]</b><br>"; (вставить сразу после строчки $text=explode(" ",$search);
Просто скрипт устарел - нало писать новый, времени 3 часа, но так просто кто то врят ли будет это делать. А антикапча наверно уже не работает, и её распознование - вобще платная вещь, очень дорогая.
Это осуществить с помощью php-сокетов/cURL и эмуляции действий пользователя, т.е. отсылать те же запросы на тот самый определенный URL, которые отсылаются при нажатии на кнопку submit руками. Подробнее не пояснить, данных мало.
если у "определенного адреса" форма с методом GET, то можно передать все параметры в адресе страницы. Тогда получить текст нужной страницы можно этим - fread(). Если "определонному адресу" передаются POST параметры, то наверное, нужно сокеты юзать или curl
Антикапчи здесь нет и близко. скрипт писал я. мне нужно понять ошибку... Читайте пожалуста сначала сообщения - потом отвечайте.
Code: $text=explode(" ",$search); $a=mysql_query("SELECT * FROM books WHERE bname LIKE '%$text[0]%' AND bname LIKE '%$text[1]%' AND bname LIKE '%$text[2]%'",$session) or die (mysql_error()); $b=mysql_query("SELECT * FROM books WHERE (bname LIKE '%$text[1]%' AND bname LIKE '%$text[2]%') OR (bname LIKE '%$text[0]%' AND bname LIKE '%$text[2]%') OR (bname LIKE '%$text[0]%' AND bname LIKE '%$text[1]%')",$session) or die (mysql_error()); $c=mysql_query("SELECT * FROM books WHERE (bname LIKE '%$text[0]%') OR (bname LIKE '%$text[1]%') OR (bname LIKE '%$text[2]%')",$session) or die (mysql_error()); while($b1=mysql_fetch_row($a)){ print "$i. <b style='color:red'>$b1[1]</b><br>"; $i++; } while($b2=mysql_fetch_row($b)){ print "$i. <b style='color:red'>$b2[1]</b><br>"; $i++; } while($b3=mysql_fetch_row($c)){ print "$i. <b style='color:red'>$b3[1]</b><br>"; $i++; } так чтоле? не очень пойму понятия "подсветка слов"
Метод POST, Спасибо, буду пытаться разобраться. А если через Human Emulator попробовать. Сначала 1 раз проделать свои действия, оно их запишет, потом взять PHP код, который получился и просто сделать цикл дополнительно?
je0n, щас я наведу пример: есть БД и форма поиска. Припустим я ищу в БД bname LIKE '%слово%'. Надо чтобы при принтовании результатов поиска вместо обычних слов писало например <b>слово с поиска</b>. Ну как у гугле. Я что то ищу, и все совпадения слов виводит жирными, а остальные нормальние. Есть так: "Дискретная математика". Ввел для поиска слово "дискретн", значит результатом принтования должно бить: Дискретная математика.
вроде понял. Копай функцию str_replace() Например в переменной $text у тебя хранится весь текст, а в переменной $replace - текст, который нужно подсвечивать. Тогда вывести $text с подсветкой слов $replace будет так: Code: echo str_replace($replace,"<b>$replace</b>",$text); Кстати, обрати внимание на то,что эта функция работает и с текстовыми массивами. Думаю в твоем случае - это будет удобно.
я вот уже ознакомился с курлом ну вот скрипт PHP: <?PHP $ch = curl_init('http://mai1-ru.h2m.ru/wap/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://php.su/forum/loginout.php"); curl_setopt($ch, CURLOPT_POSTFIELDS, 'action=username=1krisa&ipassword=250792&submit=%C2%F5%EE%E4'); 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); ?> скрипт брал из примера, и по етому пару вопросов плыз ответте на все вопросы , понятным для ламера языком 1) curl_setopt($ch, CURLOPT_REFERER, "http://php.su/forum/loginout.php"); и curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); зачем нужны ети функции?? скажите руским языком, ато в книге непонять 2) curl_setopt($ch, CURLOPT_POSTFIELDS, 'action=username=1krisa&ipassword=250792&submit=%C2%F5%EE%E4'); што значат ети символы после сумбит? %C2%F5%EE%E4 3) как вы уже поняли, я хотел написать флудер, как мне заставить скрипт написать сообщение в теме??? например тут http://mai1-ru.h2m.ru/wap/viewtopic.php?t=1 используя ету фунцыю curl_setopt($ch, CURLOPT_POSTFIELDS, да???
CURLOPT_REFERER - реферер, тут мы говорим серверу адрес УРЛа откуда пришли. CURLOPT_RETURNTRANSFER - вывод результат в буфер или переменную. Это имя кнопки, которую мы как бы нажали, в расшифрованном выглядит как Вход
Тебе нужно узнать, какие именно поля ты должен добавить к своему POST запросу, какие поля отвечают за названние темы, сообщение и т. д. Самый простой способ: скачай какой нибудь сниффер HTTP пакетов или плагин-сниффер для своего браузера, который тебе наглядно покажет, какие именно поля должны использоваться в твоем запросе. Потом просто добавляй эти поля со своими значениями с помощью PHP: curl_setopt($ch, CURLOPT_POSTFIELDS, 'твои_данные'); и отправляй на сервер.
Не могу понять что с сессией. Вот код: Code: <?php require_once("/admin/config.php"); session_start(); $login=$_SESSION['login']; $pass=$_SESSION['pass']; $query="select*from applicant where mail='$login' and pass='$pass'"; $res=mysql_query($query); if(mysql_num_rows($res)>=1) { echo "<a href='exit.php'>Exit</a>"; } else { $query="select*from applicant where mail='$login' and pass='$pass'"; $res=mysql_query($query); if(mysql_num_rows($res)>=1) { echo "<a href='exit.php'>Exit</a>"; } else input(); } Выдаёт ошибку Code: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\test.ru\www\index.php:10) in Z:\home\test.ru\www\loginform.php on line 3
return сессию надо начинать до вывода в браузер (либо буферизуй вывод) отсюда: либо require_once("/admin/config.php"); чего-то выводит (для этого можешь session_start поставить второй строкой), либо ты пишешь скрипт в UTF-8 с BOM (нужно без BOM)
roxblnfk спс ... Сначала думал что дело в кодировке и прогонял через прогу utf8-bom-remover, но потом поставил session_start() в самый-самый верх (ещё до загрузки всех скриптов и html) и всё ок!