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

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

  1. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Полуавтоматический регистратор Torrents.ru

    [​IMG]

    PHP:
    <?php
    @set_time_limit(0);
    @
    ignore_user_abort(1);
    //-----------------//
    $torrents 'torrents.txt';   // Файл с аккаунтами
    $divider ':';              //  Разделитель
    $sleep '30';              //   Задержка для проверки E-mail
    $proxy '';               //    Можно через покси (127.0.0.1:8008)
    $log '0';               //     1 - Если нужно писать логи
    $log_txt 'log.txt';    //      Log-файл
    //-----------------//
     
       
    function post($url,$post,$refer,$proxy)
            {
           
    $ch curl_init($url);
           
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4");
           
    curl_setopt($chCURLOPT_POST1);
           
    curl_setopt($chCURLOPT_POSTFIELDS$post);
           
    curl_setopt($chCURLOPT_REFERER$refer);
           
    curl_setopt($chCURLOPT_COOKIEJAR"./cook");
           
    curl_setopt($chCURLOPT_COOKIEFILE"./cook");
           
    curl_setopt($chCURLOPT_TIMEOUT10);  
           
    curl_setopt($chCURLOPT_PROXY$proxy);
           
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
           
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
           
    $result  curl_exec($ch);
           return 
    $result;
         }
     
        if (
    $proxy == '')
          {
            
    $proxy null;
          }    
     
        
    /* Если нам передали капчу... */
        
    if ($_POST['captcha'])
         { 
            
    /* Регистрируем E-mail */
           
    $result post('http://odnorazovoe.ru/inbox.php?mailbox='.$_POST['login'],null,'http://odnorazovoe.ru/',$proxy);
     
        
    /* Массив с данными */
        
    $postdata = array(
            
    'method'    => 'post'
            
    'mode'       => 'register'
            
    'reg_agreed'      => '1',
            
    'sid'    => '',
            
    'username'    => $_POST['login'],
            
    'email'    => $_POST['login'].'@odnorazovoe.ru',
            
    'new_password'    => $_POST['password'],
            
    'password_confirm'    => $_POST['password'],
        
    'cap_sid'      => $_POST['cap_sid'],
            
    'cap_code_'.$_POST['cap_code_']    => $_POST['captcha'],
            
    'user_flag_id'    => '0',
        
    'user_timezone_x2' => '6',
        
    'submit' => 'Отправить',       
        );
     
           
    /* Отправка данных */     
           
    $result post('http://torrents.ru/forum/profile.php',$postdata,'http://torrents.ru/forum/profile.php?mode=register',$proxy);
     
          if(
    $log == '1')
             {
                
    $fh fopen($log_txt"a+");
                
    $success fwrite($fh$login."Ждём URL-активации [".date("H:i")."]\r\n");
                
    fclose($fh);
               }
     
             
    /* Цикл проверки почты */
          
    while($email[1] == null)
           {
             
    $result_email post('http://odnorazovoe.ru/inbox.php?mailbox='.$_POST['login'],null,'http://odnorazovoe.ru/',$proxy);
             
    preg_match('#eml.php(.*?)"#i',$result_email,$email);
             
    sleep($sleep);
           }
     
           
    /* Получаем URL-активации */
           
    $result post('http://odnorazovoe.ru/eml.php'.$email[1],null,'http://odnorazovoe.ru/',$proxy);
           
    preg_match('#activate(.*?)<#i',$result,$url);
           
    $url str_replace("&amp;","&",$url[1]);
     
           
    /* Отправляем данные */
           
    $result post('http://torrents.ru/forum/profile.php?mode=activate'.$url,null,'http://odnorazovoe.ru/',$proxy);
     
           if(
    preg_match('#активиз(.*?)\.#i',$result,$end))
            {
              
    /* Сохраняем результат */
              
    $fh fopen($torrents"a+");
              
    $success fwrite($fh$_POST['login'].$divider.$_POST['password']."\r\n");
              
    fclose($fh);
     
            if(
    $log == '1')
                 {
               
    $fh fopen($log_txt"a+");
                   
    $success fwrite($fh"Зарегистрировались [".date("H:i")."]\r\n");
                   
    fclose($fh);
             }    
            
    Header('Location: index.php');
            }
        }
        else
        {
        
    /* ...если не передали капчу */
        
    $letters 'abcdefghijklmopkqrstuvwxyz';
        for (
    $i 0$i 20$i++)
          {
            
    $login .= $letters{rand(0strlen($letters) - 1)};
          }
             
    $password rand(123456,7777777);
             
    $name rand(0,7777777);
     
          
    /* Получаем страницу регистрации */
          
    $result post('http://torrents.ru/forum/profile.php?mode=register','reg_agreed=1','http://torrents.ru/forum/profile.php?mode=register',$proxy);
     
                 
    /* Вытаскиваем нужные значения */
             
    preg_match('#http://static.torrents.ru/captcha/(.*?)"#i',$result,$match);
                 
    preg_match('#cap_sid" value="(.*?)"#i',$result,$match_sid);
             
    preg_match('#cap_code_(.*?)"#i',$result,$match_cap);
     
             
    /* Регистрация на трекере ограничена */
             
    if($match[1] == '')
              {
                echo 
    '<script>alert(\'В данный момент регистрация закрыта!\')</script>';        
              }
        }
     
    /* geforse.name */
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     
    <meta http-equiv="Content-Style-Type" content="text/css">
    <title>torrents.ru | geforse.name</title>
     
     
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
     
    <link rel="search" type="application/opensearchdescription+xml" title="Поиск на torrents.ru" href="http://static.torrents.ru/opensearch.xml">
     
    <link rel="stylesheet" type="text/css" href="http://static.torrents.ru/templates/default/css/main.css?v=18" media="all">
    </head><body>
     
    <div id="preload" style="overflow: hidden; position: absolute; top: 0pt; left: 0pt; height: 1px; width: 1px;"></div>
     
    <div id="body_container">
    <div id="page_container">
    <a name="top"></a>
     
    <div id="page_header">
    <div id="logo">
        <table cellpadding="0" cellspacing="0" width="100%">
        <tbody><tr>
            <td style="padding: 4px 0pt 5px;">
                <a href="http://torrents.ru/forum/index.php"><img src="http://static.torrents.ru/images/logo/logo.gif" alt="logo" height="85" width="320"></a>
            </td>
        </tr>
        </tbody></table>
    </div>
     
    <div class="topmenu">
    <table cellpadding="0" cellspacing="0" width="100%">
    <tbody><tr>
    </tr>
    </tbody></table>
    </div>
    <div id="page_content">
    <table style="width: 100%;" border="0" cellpadding="0" cellspacing="0"><tbody><tr>
     
    <td id="main_content">
    <div id="main_content_wrap">
    <h1 class="pagetitle">Регистрация</h1>
    <form action="index.php" method="post">
     
    <table class="forumline usercp_register">
    <col class="row1" width="35%">
    <col class="row2" width="65%">
    <tbody class="pad_4">
    <tr>
        <th colspan="2">Регистрационная информация</th>
    </tr>
    <tr>
    </tr>
    <tr>
    </tr>
    <tr>
    </tr>
    <tr>    
    </tr>
    <tr>    
    </tr>
    <tr>
        <td>Код подтверждения:</td>
        <td>
                <div><img src="http://static.torrents.ru/captcha/<?php echo $match[1]; ?>" alt="pic" height="72" width="120"></div>
                <div>
                    <input name="captcha" value="" class="bold" type="text">
                    <input type="hidden" name="cap_sid" value="<?php echo $match_sid[1]; ?>" />
                    <input type="hidden" name="cap_code_" value="<?php echo $match_cap[1]; ?>" />
                    <input type="hidden" name="name" value="<?php echo $name?>" />
                    <input type="hidden" name="login" value="<?php echo $login?>" />
                    <input type="hidden" name="password" value="<?php echo $password?>" />
                </div>
                <br>
              <a href="http://geforse.name/" target="_blank">geforse.name</a>
            </td>
    </tr>
        <tr>
            <td class="row2" colspan="2">
            <div id="infobox-wrap" class="bCenter row1">            
            </div>
            </td>
        </tr>    
    <tr>
        <td class="catBottom" colspan="2">
        <div id="submit-buttons">
            <input name="submit" value="Отправить" class="bold" type="submit">&nbsp;&nbsp;
                </div>
        </td>
    </tr>
    </tbody>
    </table>
    </form>
        </div>
        </td>
    </tr></tbody></table>
        </div>
        </div>
        </div>
        </body></html>
    [​IMG]

    P.S. регистрация доступна 16:00-18:00, поэтому не нужно пытаться запускать скрипт в другое время

    /* geforse.name */
     
  2. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    PHP:
    <input type="hidden" name="cap_sid" value="<?php echo $match_sid[1]; ?>" /> 
    <input type="hidden" name="cap_code_" value="<?php echo $match_cap[1]; ?>" /> 
    <input type="hidden" name="name" value="<?php echo $name?>" /> 
    <input type="hidden" name="login" value="<?php echo $login?>" /> 
    <input type="hidden" name="password" value="<?php echo $password?>" />
    Можно везде заменить на:
    PHP:
    <input type="hidden" name="name" value="<?=$name;?>" /> 
     
    1 person likes this.
  3. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Думаем => Проверяем => Пишем

    b3, у вас со вторым шагом проблемы

    Вот вы написали $name; и по вашему что, интерпретатор php догадается что нужно вывести эту переменную на экран ?
     
  4. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    PHP:
     <input type="hidden" name="name" value="<?=$name;?>" /> 
    выведет значение переменной $name
     
  5. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    geforse, а по моему это у вас проблемы со знанием языка PHP.
     
  6. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    не знал что равно перед переменной в данном случае выведет её значение )

    беру слова назад)
     
  7. Gaus

    Gaus Member

    Joined:
    8 Feb 2009
    Messages:
    136
    Likes Received:
    36
    Reputations:
    3
    Писал когда то чекер/брутер акков рапиды
    Code:
    #!/usr/bin/perl
    #RapidShare.com checker by Gaus
    use strict;
    use warnings;
    use LWP::UserAgent;
    use HTTP::Cookies;
    use threads;
    use threads::shared;
    use Fcntl ':flock';
    
    #################################################
    my $threads_count = 1;                          # Кол-во потоков
    my $file_accounts = 'accs.txt';                 # Файл с акками
    my $file_valid_accounts = 'valid.txt';          # Файл с валидными акками
    my $delm_accounts = ';';                        # Разделитель списка акков
    my $proxy_file = 'proxy.txt';                   # Файл с прокси
    my $proxy_mode = 'OFF';                         # Юзать прокси(ON/OFF)
    #################################################
    
    my @accs : shared = lf($file_accounts);
    my @proxys : shared = lf($proxy_file);
    threads->new(\&main) for 1 .. $threads_count;
    $_->join for threads->list;
    sub main
    {
        while(@accs)
        {
            my $ua = LWP::UserAgent->new(timeout => 35,
                                         cookie_jar => new HTTP::Cookies,
                                         agent => agent());
            if($proxy_mode eq 'ON')
            {
                until(proxy($ua)){}
            }
            my ($login, $pass) = split $delm_accounts => shift @accs;
            my $answ = $ua->post("https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi",
                               ["uselandingpage" => 1,
                                "login" => $login,
                                "password" => $pass])->code;
            if($answ == 302)
            {
                wf($file_valid_accounts, "$login:$pass\n");
                print "[ + ] $login:$pass\n";
            }
            else
            {
                print "[ - ] $login:$pass\n";
            }
        }
    }
    sub proxy
    {
        my $ua = shift;
        my ($ip,$port) = split ':' => $proxys[rand scalar @proxys];
        $ua->proxy('http' => "http://$ip:$port");
        my $test = $ua->get('http://zerg.helllabs.com.ua/cgi-bin/textenv.pl')->content;
        if($test =~ m,REMOTE_ADDR=$ip,i)
        {
            print "[ + ] Current proxy: $ip:$port\n";
            return 1;
        }
        else
        {
            print "[ - ] Error proxy: $ip:$port\n";
            return 0;
        }
    }
    sub agent
    {
        my @agents = qw(Opera/9.15 Opera/9.12 Opera/8.60b IE/4.0 IE/5.0 IE/6.0 IE/7.0 Mozilla/4.0 Mozilla/5.0 Mozilla/2.0 Mozilla/3.0);
        return $agents[rand scalar @agents];
    }
    sub lf
    {
        open my $dat, '<', $_[0] or die "\nCould not open $_[0] file!\n";
        chomp(my @data = <$dat>);
        close $dat;
        return @data;
    }
    sub wf
    {
        open my $dat, '>>', $_[0] or die "\nCould not open $_[0] file!\n";
        flock $dat, LOCK_EX;
        print $dat $_[1];
        flock $dat, LOCK_UN;
        close $dat;
    }
     
  8. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Я тут щас вспомнил одну штуку которую я юзал года 2 назад... это stdClass (уверен что многие даже не знают о его существовании). Это встроенный в php обьект (незнаю был ли он в php3 но в 4 версии был точно) он не поддерживает методов, но в нем очень удобно хранить любые данные и переменные. Если вы приверженец функцонального программирования stdClass избавит вас от проблемы области видимости переменных (аля global $a,$b,$c.....$z; блин не работает ааа!!! забыл $z1 прописать...)

    PHP:
    $obj = new StdClass;
    $obj->a="Hay";
    $obj->b=array("a","b","c");
    $obj->x=1;
     
    _________________________
  9. gisTy

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

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    хех.. дописать три строки..
    PHP:
    <?php
    $a 
    file("acc.txt");
    $good fopen("good.txt""a+");
    $bad  fopen("bad.txt""a+");
    foreach (
    $a as $acc) {
        echo 
    $acc;
        
    $acc explode("@"$acc);
        
    $url file_get_contents("http://win.mail.ru/cgi-bin/passremind?action=login&Username=" .
            
    $acc[0] . "&Domain=" $acc[1]);
        if (
    strpos($url"Пользователь отсутствует.")) {
            echo 
    "..........мыло свободно<br>";
            
    fwrite($good$login "@" $domain "\n");
        } else {
            echo 
    "..........забудь- его уже юзают<br>";
            
    fwrite($bad$login "@" $domain "\n");
        }
        
    flush();
        
    ob_flush();
    }
    fclose($good);
    fclose($bad);
    ?>
     
  10. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    так все в бед попадают (и кроме того в файл бед пишеться только знак @ т е ни логина ни домена)))
    я конечно не доктор но прежде чем сохранить в этой строчке
    fwrite($good, $login . "@" . $domain . "\n")
    переменные обьявить нужно))), короче я так понял что еще три строчки и код будет такой-же корявый как и мой))))) (единственное мой рабочий)
    а курл я использовал потому что по задумке после проверки те номера которые собирал в гууд должны были региться (авторегер) (сами понимаете что прочекав спам базу в ней обязательно найдуться мыла которые майл удалил а на этих мылах очень часто висят акки вконтакта)))
     
    #870 Kusto, 17 Sep 2009
    Last edited: 17 Sep 2009
  11. Fkb

    Fkb New Member

    Joined:
    5 Aug 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    есть скрипт на сбор id групп вконтакте?
     
  12. svesve

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

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    простой класс шифрования строки, думаю будет полезен новичкам
    PHP:
    class Crypter{

       var 
    $key;


       function 
    Crypter($clave){
          
    $this->key $clave;
       }

       function 
    setKey($clave){
          
    $this->key $clave;
       }
       
       function 
    keyED($txt) { 
          
    $encrypt_key md5($this->key); 
          
    $ctr=0
          
    $tmp ""
          for (
    $i=0;$i<strlen($txt);$i++) { 
             if (
    $ctr==strlen($encrypt_key)) $ctr=0
             
    $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1); 
             
    $ctr++; 
          } 
          return 
    $tmp
       } 
       
       function 
    encrypt($txt){ 
          
    //srand((double)microtime()*1000000); 
          
    $encrypt_key md5($this->key); 
          
    $ctr=0
          
    $tmp ""
          for (
    $i=0;$i<strlen($txt);$i++){ 
             if (
    $ctr==strlen($encrypt_key)) $ctr=0
             
    $tmp.= substr($encrypt_key,$ctr,1) . 
                 (
    substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1)); 
             
    $ctr++; 
          } 
          return 
    base64_encode($this->keyED($tmp)); 
       } 

       function 
    decrypt($txt) { 
          
    $txt $this->keyED(base64_decode($txt)); 
          
    $tmp ""
          for (
    $i=0;$i<strlen($txt);$i++){ 
             
    $md5 substr($txt,$i,1); 
             
    $i++; 
             
    $tmp.= (substr($txt,$i,1) ^ $md5); 
          } 
          return 
    $tmp
       } 

    }
    Далее вызываем класс и определяем ключ для нашего шифрования

    PHP:
    $crypt= new Crypter('ТУТ ПИШЕМ КЛЮЧ');

    Например

    $crypt
    = new Crypter('anti4at');
    чтобы зашифровать строку
    PHP:
    $str='password'// строка которую надо зашифровать
    $crp=$crypt->encrypt($str);
    в переменной crp лежит зашифрованая строка password

    чтобы расшифровать

    PHP:
    $decrp=$crypt->decrypt($crp);
     
    2 people like this.
  13. Evgen...

    Evgen... Banned

    Joined:
    8 Aug 2009
    Messages:
    0
    Likes Received:
    4
    Reputations:
    0
    Взял пару спс
     
  14. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    PHP:
    <?php
    $page 
    = isset($_GET['dom'])    ?    $_GET['dom']    :    '';
    $s file_get_contents('http://wtools.biz/whois/?domain='.$page.'');
    $matches explode('<p><b>'$s);
    $matches explode('Что'$matches[1]);
    echo 
    $matches[0];
    // waketwo.ru
    // xyuha.ru
    ?>
    Незнаю даже как назвать, но скрипт типа граббер whois сервиса...

    Для просмотра инфы о домене нужна зайти на скрипт.php ?dom=ДОМЕН КОТОРЫЙ ХАТИМ ПРОСМОТРЕТЬ

    P.S. Скрипт писал под ICQ бота, поэтому нету полей ввода и т.д.
     
  15. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    PHP:
    <?php

    // Автор: wake2(cren)
    // ICQ: 170-6-177
    // БЛОГ: http://waketwo.ru/
    // ВАРЕЗ ПОРТАЛ: http://xyuha.ru/
    $www rand(1404621);
    $fp file_get_contents('http://bash.org.ru/quote/'.$www.'');
    $matches explode('<div>'$fp);
    $matches explode('</div>'$matches[1]);
    echo 
    $matches[0];
    ?>

    Выводит рандомную цитату с баш.орг.ру
     
    1 person likes this.
  16. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    PHP:
    <?php

    // Автор: wake2(cren)
    // ICQ: 170-6-177

    $r rand(14626);
    $fp file_get_contents('http://nya.sh/post/'.$r.'');
    $matches explode('</i></div>'$fp);
    $matches explode('</div>'$matches[1]);
    echo 
    $matches[0];


    ?>

    Скрипт выводит рандомную цитату с НЯШ'a (nya.sh)
     
    #876 cren, 25 Sep 2009
    Last edited: 25 Sep 2009
    1 person likes this.
  17. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    По-моему, больше пропиарить ресурсы хотел, чем скрипт написать
     
    4 people like this.
  18. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    Определяет пол по имени, на основе того, что большинство женских имён заканчиваются на гласную. Определяет не 100% но для моих целей хватает. Поддерживает имена в транслите.

    Code:
    sub gender # 1 - woman; 0 - man
    {
    	my ($name) = @_;
    
    	return 1 if $name=~"я\$";
    	return 1 if $name=~"а\$";
    	return 1 if $name=~"о\$";
    	return 1 if $name=~"ы\$";
    	return 1 if $name=~"э\$";
    	return 1 if $name=~"е\$";
    	
    	return 1 if $name=~"a\$";
    	return 1 if $name=~"o\$";
    	return 1 if $name=~"i\$";
    	return 1 if $name=~"e\$";
    	
    	return 1 if $name=~"Я\$";  # shit
    	return 1 if $name=~"А\$";
    	return 1 if $name=~"О\$";
    	return 1 if $name=~"Ы\$";
    	return 1 if $name=~"Э\$";
    	return 1 if $name=~"Е\$";
    	
    	return 1 if $name=~"A\$";
    	return 1 if $name=~"E\$";
    	return 1 if $name=~"O\$";
    	return 1 if $name=~"I\$";
    
    	return 0;
    }
    ЗЫ. на самом деле я perl не знаю, так что говнокод тут явный.
     
    4 people like this.
  19. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    скрипт для добавления юзера в группы и встречи по диапазону. Диапазону групп и встреч. диапазон для групп и встреч один и тотже

    вот скрипт

    PHP:
     <form method="POST"> 
    <center> 
    Email:<input type="text" name="email"><br> 
    Pass:<input type="text" name="pass"><br> 
    Стартовать с ID:<input type="text" name="start"><br> 
    Закончить на ID:<input type="text" name="end"><br> 
    Таймаут:<input type="text" name="sleep"><br> 
    <input type=submit value="НАчать РАботать!!!"></center> 

    <?php 
    set_time_limit
    (0); 

    function 
    curl($url,$post

    $cfile 'cookies.txt'
    $ch curl_init(); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_setopt($chCURLOPT_URL$url); 
    curl_setopt($chCURLOPT_HEADER0); 
    curl_setopt($chCURLOPT_POSTFIELDS$post); 
    curl_setopt($chCURLOPT_COOKIEJAR$cfile); 
    curl_setopt($chCURLOPT_COOKIEFILE$cfile); 
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue); 
    curl_setopt($chCURLOPT_POST1); 
    $result curl_exec($ch); 
    curl_close($ch); 
    return 
    $result
    }; 

    $start $_POST['start']; 
    $end $_POST['end']; 
    $email $_POST['email']; 
    $pass $_POST['pass']; 
    $sleep $_POST['sleep']; 

    if(!
    $email||!$pass||!$start||!$end||!$sleep){exit;  } 

        for(
    $i=$start$i<=$end$i++) 

    $result curl("http://vkontakte.ru/login.php","email=$email&pass=$pass"); 
    $result curl("http://vkontakte.ru/club".$i,""); 
        
    preg_match_all ('#</li><li><a href=\'(.*)\'>#iU'$result$regs); 
        
    $ssil $regs[1][0]; 
    $result curl("http://vkontakte.ru".$ssil,""); 

    $result curl("http://vkontakte.ru/events.php?act=s&gid=".$i,""); 
        
    preg_match_all ('#<a href=\"events\.php\?act=enter\&gid=(.*)\">#iU'$result$regs); 
        
    $ssil $regs[1][0]; 
    $result curl("http://vkontakte.ru/events.php?act=enter&gid=".$ssil,""); 
    sleep($sleep); 

    ?> 
     
    6 people like this.
  20. [aCR]RASSVET

    [aCR]RASSVET New Member

    Joined:
    27 Apr 2008
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    2 PHP-функции для работы с изображениями.
    Представляю вашему вниманию 2 полезных PHP-функции для работы с картинками.
    Одна из них позволяет пропорционально уменьшать размеры картинки, вторая - проверять картинку на валидность (защита от XSS-атак).

    Пропорциональное уменьшение размеров изображения:
    PHP:
    <?php

    /** Универсальный ресайз картинок
      *
      * Функция позволяет копировать изображение,
      * оставляя его исходные характеристики или
      * изменяя его размер и/или качество.
      * При изменении размера сохраняются пропорции.
      *
      * Функция умеет работать с изображениями
      * следующих форматов: JPG, PNG, GIF.
      *
      * Параметры:
      * @ $from        - путь к изображению, над которым будут выполняться операции
      * @ $to        - путь к результирующему изображению
      * @ $maxwidth    - максимальная ширина изображения
      * @ $maxheight    - максимальная высота изображения
      * @ $quality    - качество картинки (0..100) (для JPG и PNG)
      *
      * Возвращаемые значения:
      * false    - во время выполнения произошла ошибка
      * true    - функция выполнилась успешно и без ошибок
      *
      * Автор:
      * @name    Валерий 'Figaroo' Киркиж
      * @url    http://figaroo.ru/
      * @email    [email protected]
    */
    function figaroo_resize_image ($from$to$maxwidth$maxheight$quality 80) {
            
    // защита от Null-байт уязвимости PHP
            
    $from preg_replace('/\0/uis'''$from);
            
    $to preg_replace('/\0/uis'''$to);

            
    // информация об изображении
            
    $imageinfo = @getimagesize($from);
            
    // если получить информацию не удалось - ошибка
            
    if (!$imageinfo) return false;
            
    // получаем параметры изображения
            
    $width $imageinfo[0];        // ширина
            
    $height $imageinfo[1];    // высота
            
    $format $imageinfo[2];    // ID формата (число)
            
    $mime $imageinfo['mime'];    // mime-тип

            // определяем формат и создаём изображения
            
    switch ($format) {
                case 
    2$img imagecreatefromjpeg($from); break;    // jpg
                
    case 3$img imagecreatefrompng($from); break;    // png
                
    case 1$img imagecreatefromgif($from); break;    // gif
                
    default: return false; break;
            }
            
    // если создать изображение не удалось - ошибка
            
    if (!$img) return false;

            
    // меняем размеры изображения
            
    $newwidth $newheight 0;
            
    // требуется квадратная картинка
            
    if ($maxwidth == $maxheight) {
                
    // размеры картинки больше по X и по Y
                
    if ($width $maxwidth && $height $maxheight) {
                    
    // пропорции картинки одинаковы
                    
    if ($width == $height) {
                        
    $newwidth $maxwidth;
                        
    $newheight $maxheight;
                    }
                    
    // ширина больше
                    
    elseif ($width $height) {
                        
    $newwidth $maxwidth;
                        
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                    }
                    
    // высота больше
                    
    else {
                        
    $newheight $maxheight;
                        
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                    }
                }
                
    // размеры картинки больше только по X
                
    elseif ($width $maxwidth) {
                    
    $newwidth $maxwidth;
                    
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                }
                
    // размеры картинки больше только по Y
                
    elseif ($height $maxheight) {
                    
    $newheight $maxheight;
                    
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                }
                
    // в остальных случаях ничего менять не надо
                
    else {
                    
    $newwidth $width;
                    
    $newheight $height;
                }
            }
            
    // требуется горизонтальная картинка
            
    elseif ($maxwidth $maxheight) {
                
    // размеры картинки больше по X и по Y
                
    if ($width $maxwidth && $height $maxheight) {
                    
    // ширина больше
                    
    if ($width $height) {
                        
    $newwidth $maxwidth;
                        
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                    }
                    
    // высота больше или равна ширине
                    
    else {
                        
    $newheight $maxheight;
                        
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                    }
                }
                
    // размеры картинки больше только по X
                
    elseif ($width $maxwidth) {
                    
    $newwidth $maxwidth;
                    
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                }
                
    // размеры картинки больше только по Y
                
    elseif ($height $maxheight) {
                    
    $newheight $maxheight;
                    
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                }
                
    // в остальных случаях ничего менять не надо
                
    else {
                    
    $newwidth $width;
                    
    $newheight $height;
                }
            }
            
    // требуется вертикальная картинка
            
    elseif ($maxwidth $maxheight) {
                
    // размеры картинки больше по X и по Y
                
    if ($width $maxwidth && $height $maxheight) {
                    
    // ширина больше или равна высоте
                    
    if ($width >= $height) {
                        
    $newwidth $maxwidth;
                        
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                    }
                    
    // высота больше
                    
    else {
                        
    $newheight $maxheight;
                        
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                    }
                }
                
    // размеры картинки больше только по X
                
    elseif ($width $maxwidth) {
                    
    $newwidth $maxwidth;
                    
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                }
                
    // размеры картинки больше только по Y
                
    elseif ($height $maxheight) {
                    
    $newheight $maxheight;
                    
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                }
                
    // в остальных случаях ничего менять не надо
                
    else {
                    
    $newwidth $width;
                    
    $newheight $height;
                }
            }

            
    // если изменений над картинкой производить не надо - просто копируем её
            
    if ($newwidth == $width && $newheight == $height && $quality == 80) {
                if (
    copy($from$to)) return true;
                else return 
    false;
            }

            
    // создаём новое изображение
            
    $new imagecreatetruecolor($newwidth$newheight);
            
    $black imagecolorallocate($new000);
            
    $white imagecolorallocate($new255255255);
            
    // копируем старое в новое с учётом новых размеров
            
    imagefilledrectangle($new00$newwidth 1$newheight 1$white);
            
    //imagecolortransparent($new, $white);
            
    imagecopyresampled($new$img0000$newwidth$newheight$width$height);
            
    // создаём файл с новым изображением
            
    switch ($format) {
                case 
    2// jpg
                    
    if ($quality 0$quality 0;
                    if (
    $quality 100$quality 100;
                    
    imagejpeg($new$to$quality);
                break;
                case 
    3// png
                    
    $quality intval($quality 100);
                    if (
    $quality 0$quality 0;
                    if (
    $quality 9$quality 9;
                    
    imagepng($new$to$quality);
                break;
                case 
    1// gif
                    
    imagegif($new$to);
                break;
            }
            return 
    true;
    }

    ?>
    Проверка на валидность:
    PHP:
    <?php

    // функция проверки изображения на валидность (защита от XSS-атак)
    function verify_image ($file) {
        
    // защита от Null-байт уязвимости PHP
        
    $file preg_replace('/\0/uis'''$file);
        
    // проверка изображения
        
    $txt file_get_contents($file);
        if (
    preg_match('#&(quot|lt|gt|nbsp|amp);#i'$txt)) return false;
        elseif (
    preg_match("#&\#x([0-9a-f]+);#i"$txt)) return false;
        elseif (
    preg_match('#&\#([0-9]+);#i'$txt)) return false;
        elseif (
    preg_match("#([a-z]*)=([\`\'\"]*)script:#iU"$txt)) return false;
        elseif (
    preg_match("#([a-z]*)=([\`\'\"]*)javascript:#iU"$txt)) return false;
        elseif (
    preg_match("#([a-z]*)=([\'\"]*)vbscript:#iU"$txt)) return false;
        elseif (
    preg_match("#(<[^>]+)style=([\`\'\"]*).*expression\([^>]*>#iU"$txt)) return false;
        elseif (
    preg_match("#(<[^>]+)style=([\`\'\"]*).*behaviour\([^>]*>#iU"$txt)) return false;
        elseif (
    preg_match("#</*(applet|link|style|script|iframe|frame|frameset)[^>]*>#i"$txt)) return false;
        return 
    true;
    }

    ?>
     
    2 people like this.