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

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

  1. ~!DoK_tOR!~

    ~!DoK_tOR!~ Banned

    Joined:
    10 Nov 2006
    Messages:
    673
    Likes Received:
    357
    Reputations:
    44
    Вот эта фраза зашифрована:

    -------это сообщение будет удалено
     
    1 person likes this.
  2. inv

    inv Banned

    Joined:
    3 Aug 2007
    Messages:
    261
    Likes Received:
    143
    Reputations:
    -58
    я понял=)

    я хотел узнать есть ли смысл шифровать таким методом
    просто шифровать хтмл код вообще смысла не вижу
    насчет ява кода здесь не всетак просто
    поэтому прошу привести достойный пример
     
  3. ~!DoK_tOR!~

    ~!DoK_tOR!~ Banned

    Joined:
    10 Nov 2006
    Messages:
    673
    Likes Received:
    357
    Reputations:
    44
    нет, всю конечно страницу ненадо шифровать только отдельную часть =\\
     
    1 person likes this.
  4. inv

    inv Banned

    Joined:
    3 Aug 2007
    Messages:
    261
    Likes Received:
    143
    Reputations:
    -58
    ты понял что я хочу или нет?)я хочу узнать смысл такого шифрования=\
    я как раз ищу криптор ява кода=)
    -----
    просьба к модеру потом все потереть
     
  5. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    У меня есть хороший криптор яваскрипта. ВОт пример его работы
    http://slil.ru/25112559
     
  6. inv

    inv Banned

    Joined:
    3 Aug 2007
    Messages:
    261
    Likes Received:
    143
    Reputations:
    -58
    к твоему мнению это х***ый криптор
     
  7. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Почему?
     
  8. ~!DoK_tOR!~

    ~!DoK_tOR!~ Banned

    Joined:
    10 Nov 2006
    Messages:
    673
    Likes Received:
    357
    Reputations:
    44
    1 person likes this.
  9. Макс 8===3

    Макс 8===3 New Member

    Joined:
    3 Nov 2006
    Messages:
    24
    Likes Received:
    4
    Reputations:
    0
    Людиии!!! Подскажите, ка выделить картинку, чтобы она разместилась посередине страници и отделить её и от верха и низа на несколько строк??????

    <div id="head">
    <noindex><a href=http://.......> <img src="1.jpg" alt="ХОЙ">
    </a></noindex></div>

    Спасибо!
     
  10. GrAmOzEkA

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

    Joined:
    25 Jun 2006
    Messages:
    234
    Likes Received:
    76
    Reputations:
    29
    Простенький скрипт голосовалки:

    index.php
    Code:
    <?php
    $arr_variants=file("vopros.txt");
    $arr_opros=file("result.txt");
    echo "<form action=result.php method=post>";
    $variants=0;
    echo $arr_variants[$variants]."<BR>";
    $variants=1;
    $opros=1;
    while ($variants<count($arr_variants)){
    	echo "<input type='radio' name='oprosi' value='$opros'>"."$arr_variants[$variants]<BR>";
        $variants++;
        $opros++;
    }
    echo "<input type='submit' name='enter' value='голосовать'>";
    echo "</form>";
    ?>
    result.php
    Code:
    <?php
    $arr_data=file("result.txt");
    $d=$_POST['oprosi'];
    echo $d."<br>";
    $arr_data[$d] = intval($arr_data[$d]) + 1;
    print_r($arr_data);
    foreach ($arr_data as $d){
    echo $d;
    }
    ?>
    result.txt
    Code:
    Варианты ответа
    0
    0
    0
    
    vopros.txt
    Code:
    Тут типа вопрос. =)
    1) Ответ 1
    2) Ответ 2
    3) Ответ 3
    
     
  11. VADIK-XXX

    VADIK-XXX Elder - Старейшина

    Joined:
    18 Oct 2006
    Messages:
    39
    Likes Received:
    5
    Reputations:
    -2
  12. VADIK-XXX

    VADIK-XXX Elder - Старейшина

    Joined:
    18 Oct 2006
    Messages:
    39
    Likes Received:
    5
    Reputations:
    -2
  13. real_kas

    real_kas Member

    Joined:
    22 Mar 2007
    Messages:
    40
    Likes Received:
    7
    Reputations:
    5
    Код, попап изображения.
    Главное его свойство, это то что нет зазоров в открываемом окне. Фотка выводиться как есть.
    Очень удобно. Можно внедрить в PHP, и забыть о том, что фотки открываются в новом окне, или в некрасивом виде.

    Code:
    /**
    Кроссбраузерный JavaScript-код
    Проверено в: NN9,FF2&3,Opera,IE7
    */
    timeout = 0;
    function Start(URL, WIDTH, HEIGHT) {
    windowprops = "width=" + (WIDTH+2) + ",height=" + (HEIGHT+2);
    text = "<html><head><title>Image</title></head><body bgcolor='#dddddd' style='padding: 1px; margin: 0'";
    if (timeout != 0) text +=" onLoad=\"setTimeout('window.close()', " + timeout*1000 + ");\"";
    text += "><center><img src='" + URL + "'>";
    if (timeout != 0) text +="<br><font face='Tahoma, helvetica' size='-1'>Preview closes after " + timeout + " seconds.</font>";
    text += "</center></body></html>";
    preview = window.open("", "preview", windowprops);
    preview.document.open();
    preview.document.write(text);
    preview.document.close();
    }
    
    вызов функции:

    Code:
    <a href="javascript:Start('большая_фотка.jpg', 600, 450)";><img src="маленькая_фотка.jpg" alt="Альт"/></a>
    
     
  14. Dr.Z3r0

    Dr.Z3r0 Leaders of the World

    Joined:
    6 Jul 2007
    Messages:
    284
    Likes Received:
    595
    Reputations:
    567
    Вот скрипт для защиты от измененных/удаленных файлов и залитых веб шеллов, не панацея но все же.

    Скрипт сканирует все файлы/папки начиная от папки в которой лежит скрипт и пишет результат в файл data.txt. В котором будут хранится имена каталогов+все файлы в этом каталоге с их контрольной суммой.

    Ну а затем скрипт сверяется со снимком и на основании отсутствия файла/измененной контрольной суммы/отсутствия записи о файле делает выводы о том что файл был удален/изменен/создан. Также заодно и происходит сканирование на созданные/удаленные папки...


    Собственно например создали сайт, довели до ума - он работает, делаем снимок, сливаем с хоста data.txt и сохраняем этот файл у себя на компе(с хоста удаляем!)...

    Затем через месяцок узнаем что этот сайт взломали, ну а хацкеров есть привычка еще и лить веб шелл, и иногда троянить скрипты. Ну чтобы не парится и не просматривать каждый файл, мы сканируем скриптом хост, и он выдаст все веб шеллы с головой ;)
    PHP:
    <?php 
    set_time_limit
    (0);
    ignore_user_abort(true);
    function 
    new_scan_dir($catalog){
        
    $cat_file='';
        
    $cat_file[$catalog]='';
        
    $dir opendir ($catalog);
        
    $i=0;
        
    $filesh='';
        while (
    $file readdir ($dir)){
            if((
    $file!='..')&&($file!='.')){
                if(
    filetype($catalog.'/'.$file)==='file')$cat_file[$catalog].=urlencode($file).':'.md5(implode('',file($catalog.'/'.$file))).'>';
                if((
    filetype($catalog.'/'.$file)==='dir')){
                    foreach(
    new_scan_dir($catalog.'/'.$file) as $key => $value){
                        
    $cat_file[$key]=$value;
                    }
                }
                
    $filesh.=$catalog.'/'.$file.'
    '
    ;
                if(
    $i===5){
                    echo(
    $filesh);
                    
    flush();
                    
    $filesh='';
                    
    $i=0;
                }
                
    $i++;
            }
        }
        
    closedir ($dir);
        return 
    $cat_file;
    }

    function 
    scan_dir($all_files,$catalog){
        
    $ret='';
        
    $ent='
    '
    ;
        if(
    file_exists($catalog)){
            if(
    array_key_exists($catalog$all_files)){
                if(!empty(
    $all_files[$catalog])){
                    
    $now_dir1=explode('>',$all_files[$catalog]);
                    foreach(
    $now_dir1 as $value){
                        
    $now_dir2=explode(':',$value);
                        
    $now_dir[urldecode($now_dir2[0])]=$now_dir2[1];
                    }
                    foreach(
    $now_dir as $key => $value){
                        if(
    file_exists($catalog.'/'.$key)){
                            if(
    md5(implode('',file($catalog.'/'.$key)))!=$value)$ret.='Файл "'.$catalog.'/'.$key.'" был изменен.'.$ent;
                        }else 
    $ret.='Файл "'.$catalog.'/'.$key.'" был удаленн.'.$ent;
                    }
                    
    $dir opendir ($catalog);
                    while (
    $file readdir ($dir)){
                        if((
    $file!='..')&&($file!='.')){
                            if((
    filetype($catalog.'/'.$file)==='dir'))$ret.=scan_dir($all_files,$catalog.'/'.$file);
                            if((
    filetype($catalog.'/'.$file)==='file')){
                                if(!
    array_key_exists($file$now_dir))$ret.='Файл "'.$catalog.'/'.$file.'" был создан'.$ent;
                            }
                        }
                    }
                    
    closedir ($dir);
                }else{
                    
    $dir opendir ($catalog);
                    while (
    $file readdir ($dir)){
                        if((
    $file!='..')&&($file!='.')){
                            if((
    filetype($catalog.'/'.$file)==='dir')){
                                if(!
    array_key_exists($catalog.'/'.$file$all_files))$ret.='Папка "'.$catalog.'/'.$file.'" была создана'.$ent;
                                else 
    $ret.=scan_dir($all_files,$catalog.'/'.$file);
                            }
                            if((
    filetype($catalog.'/'.$file)==='file'))$ret.='Файл "'.$catalog.'/'.$file.'" был создан'.$ent;
                        }
                    }
                    
    closedir ($dir);
                }
            }else 
    $ret.='Папка "'.$catalog.'" была созданна.'.$ent;
        }else 
    $ret.='Папка "'.$catalog.'" была удаленна.'.$ent;
        return 
    $ret;
    }

    function 
    scan_d_dir($all_files){
        
    $ret='';
        
    $ent='
    '
    ;
        foreach(
    $all_files as $key => $value){
            if(!
    file_exists($key))$ret.='Папка "'.$key.'" была удалена'.$ent;
        }
        return 
    $ret;
    }

    $ent='
    '
    ;
    if(!empty(
    $_GET['do'])){
        if(
    $_GET['do']==='new'){
            echo(
    '<pre>');
            echo(
    'Создание снимка...'.$ent);
            
    $save_text='';
            foreach(
    new_scan_dir('.') as $key => $value){
                
    $save_text.=urlencode($key).'=>'.substr($value,0,strlen($value)-1).$ent;
            }
            
    $save_text=substr($save_text,0,strlen($save_text)-2);
            
    $file fopen ('data.txt','w');
            
    fputs $file$save_text);
            
    fclose ($file);
            echo(
    'Снимок сделан...');
            echo(
    '</pre>');
        }elseif(
    $_GET['do']==='scan'){
            if(
    file_exists('data.txt')){
                
    $files=explode($ent,implode('',file('data.txt')));
                foreach(
    $files as $value){
                    
    $now_dir=explode('=>',$value);
                    
    $all_files[urldecode($now_dir[0])]=$now_dir[1];
                }
                echo(
    '<pre>'.scan_dir($all_files,'.').scan_d_dir($all_files).'</pre>');
            }
        }
    }
    echo(
    '<hr>
    <input type="submit" value="Сделать снимок" onclick="document.location.replace(\'?do=new\')"><br>
    <input type="submit" value="Сканировать" onclick="document.location.replace(\'?do=scan\')">'
    );
    ?>
    Вот полученный снимок:
    Code:
    .=>index.php:44ecd2d513e0faec7acfff7f849f7e70>data.txt:c1fe1feab40f6853be5d0555f33d596c
    .%2F1=>1%F2.txt:d41d8cd98f00b204e9800998ecf8427e
    .%2F1%2F2=>
    .%2F1%2F2%2F3=>
    .%2F1%2F2%2F3%2F4=>
    .%2F1%2F2%2F3%2F4%2F5=>
    .%2F1%2F2%2F3%2F4%2F5%2F6=>1.txt:e11170b8cbd2d74102651cb967fa28e5
    ЗЫ Люди кто поюзал/юзает напишите нравится оно вам или нет какие минусы/плюсы, только без наркоманской критики
     
    #234 Dr.Z3r0, 10 Dec 2007
    Last edited: 31 May 2011
  15. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    1) Болезненно реагирует на пустые директории.
    2) Постоянно считает один из файлов в поддиректории изменённым.
     
  16. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    1) Скрипт находится на одном уровне с директориями:
    test
    cache
    файлами, которые в данный момент значения не имееют. Обе директории пусты.
    Делаем снимок и сканируем:
    Code:
    Notice: Undefined offset: 1 in y:\home\z.z\www\test.php on line 43
    
    Warning: implode() [function.implode]: Bad arguments. in y:\home\z.z\www\test.php on line 47
    Файл "./data.txt" был изменен. 
    Файл "./test/ " был изменен.
    
    data.txt - всё верно.
    Директория test не изменялась.

    2) Да понятно, что data.txt меняется)
    Оставляем только одну поддиректорию - "cache". В ней создаем файл 1.txt
    Делаем снимок и сканируем, получаем:
    Файл "./data.txt" был изменен. - верно
    Файл "./cache/1.txt" был изменен. ?
     
    #236 astrologer, 10 Dec 2007
    Last edited: 10 Dec 2007
  17. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Если больше ни у кого не проявляется, то неважно.
    С правами точно проблем нет
     
  18. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    Скрипт разбивки угнанных асег по файлам:
    PHP:
    <?php
     $r
    =";"//разделитель
     
    $f=file("source.txt"); //файл с аськами
     
    $si=fopen("6.txt","a+"); //шохи
     
    $s=fopen("7.txt","a+"); //семёрки
     
    $e=fopen("8.txt","a+"); //восьмёры
     
    $n=fopen("9.txt","a+"); //девятки
     
    $o=fopen("o.txt","a+"); //остальное
     
    for($i=0;$i<count($f);$i++)
     {
         
    $l=explode($r,trim($f[$i]));
         switch(
    strlen($l[0]))
         {
             case 
    6fwrite($si,$f[$i]);break;
             case 
    7fwrite($s,$f[$i]);break;
             case 
    8fwrite($e,$f[$i]);break;
             case 
    9fwrite($n,$f[$i]);break;
             default: 
    fwrite($o,$f[$i]);break;
         }
     }
     
    fclose($si);
     
    fclose($s);
     
    fclose($e);
     
    fclose($n);
     
    fclose($o);
    ?>
     
    #238 scrat, 12 Dec 2007
    Last edited: 29 Dec 2007
    7 people like this.
  19. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    Валидность мыла. Простейшый способ
    PHP:
    <form method=post>
      <input size=60 type=text name=name value=<?= $_POST['name']; ?>>
      <input type=submit value='Проверить'>
    </form><br>
    <?
    $name=htmlspecialchars("$name");
    // Обработчик HTML-формы
    if(isset($_POST['name']))
    {
      if(preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,4}$|i", $_POST['name']))
      {
        echo "e-mail верен";
      }
      else
      {
        echo "e-mail не верен";
      }
    }
    ?>
    валидность URL
    PHP:
    <form method=post>
      <input size=60 type=text name=name value=<?= $_POST['name']; ?>>
      <input type=submit value='Проверить'>
    </form><br>
    <?php
    // Обработчик HTML-формы
    $name=htmlspecialchars("$name");
    if(isset(
    $_POST['name']))
    {
      
    $pattern "#^(http://)?[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|pl|cgi))?([-a-z0-9_:@&\?=+\.!/~*'%$]+)?$#i";
      if(
    preg_match($pattern$_POST['name']))
      {
        echo 
    "URL вверен";
      }
      else
      {
        echo 
    "URL не вверен";
      }
    }
    ?>
     
  20. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    Мигалка на клаве(Visual Basic Script)
    PHP:
    set WshShell WScript.CreateObject("WScript.Shell")
    KL true

    do while KL
      
    if WshShell.AppActivate("Блокнот"then
        WriteWord
    ()
        
    KL false
      end 
    if
      
    WScript.Sleep 10
    loop

    function WriteWord() 
    WshShell.SendKeys "{CAPSLOCK}"
    WshShell.SendKeys "{Scrolllock}"
    WshShell.SendKeys "{CAPSLOCK}"
    WshShell.SendKeys "{CAPSLOCK}"
    WshShell.SendKeys "{Scrolllock}"
    WshShell.SendKeys "{Scrolllock}"
    WshShell.SendKeys "{Scrolllock}"
    WshShell.SendKeys "{CAPSLOCK}"
    WshShell.SendKeys "{Scrolllock}"
    WshShell.SendKeys "{CAPSLOCK}"
    WshShell.SendKeys "{CAPSLOCK}"
    WshShell.SendKeys "{Scrolllock}"
    WshShell.SendKeys "{Scrolllock}"
    WshShell.SendKeys "{CAPSLOCK}"
    WshShell.SendKeys "{Scrolllock}"
    end function