[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Мой вариант:
    PHP:
    <?
    $log=file_get_contents('access_log');
    $patterns=array('union','select','substr','script','java','\'','"','\.\.','/\*'); //символы, которые используются в регулярных выражениях, надо экранировать обратным слешем.
    for($k=0;$k<count($patterns);$k++)
    {
    $patterns[$k]='|.*'.$patterns[$k].'.*|i';
    preg_match_all($patterns[$k],$log,$suspicious[$k]);
    }
    $out=array();
    for(
    $i=0;$i<count($suspicious);$i++)
    {

    foreach(
    $suspicious[$i][0] as $v)
    {
    $v=trim($v);
    if(!empty(
    $v)&&!in_array($v,$out)){$out[]=$v;}}
    }
    $f=fopen('suspicious.txt','w');
    fwrite($f,implode("\r\n",$out));
    fclose($f);
    ?>
     
    #1941 Macro, 15 Feb 2008
    Last edited by a moderator: 15 Feb 2008
    4 people like this.
  2. symbioin

    symbioin Member

    Joined:
    6 Aug 2007
    Messages:
    62
    Likes Received:
    23
    Reputations:
    -16
    как мне правильно написать скрипт.?
    у меня есть файл который нада переобразировать в НЕХ
    использую bin2hex

    php код виглядит так
    PHP:
    $str "?????";
    echo 
    bin2hex($str)
    вместо знаков вопроса идет содержымое файла но,
    в нем присутствует ? , $ , < , >, кароче все брейкеры. что мне зделать чтобы отобразилось НЕХ нормально?
     
  3. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    PHP:
    echo htmlspecialchars($strENT_QUOTES);
     
    #1943 Piflit, 16 Feb 2008
    Last edited: 16 Feb 2008
    1 person likes this.
  4. symbioin

    symbioin Member

    Joined:
    6 Aug 2007
    Messages:
    62
    Likes Received:
    23
    Reputations:
    -16
    не работает так как должно
     
  5. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PHP:
    <?php
        
    function binary2hex($str)
        {
            
    $newstring '';
            
    $str str_replace(" """$str);
            
    $text_array explode("\r\n"chunk_split($str8));
            for (
    $n 0$n count($text_array) - 1$n++)
            {
                
    $newstring .= str_pad(base_convert($text_array[$n], 216), 2"0"STR_PAD_LEFT);
            }
            
    $newstring chunk_split($newstring2" ");
            return 
    $newstring;
        }

        
    $str 'xek?>$';
        
    $str binary2hex($str);
        
    $str trim(htmlentities($str));
        echo 
    $str;
    ?>
     
    1 person likes this.
  6. PEPSICOLA

    PEPSICOLA . . . . . 2L . . . . .

    Joined:
    14 Oct 2004
    Messages:
    1,025
    Likes Received:
    823
    Reputations:
    368
    После фигурных скобок - }, если я ставлю ";" это нормально? =) Ставлю, ибо параноик =)))
     
    1 person likes this.
  7. PEPSICOLA

    PEPSICOLA . . . . . 2L . . . . .

    Joined:
    14 Oct 2004
    Messages:
    1,025
    Likes Received:
    823
    Reputations:
    368
    И ещё один вопрос. Перед указанием пути - одна точка это current catalog, где находиться скрипт, а две точки - где коренной каталог?

    И что ,если точки не указано? а просто путь, папки, файлы.
     
  8. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PEPSICOLA,
    1) Ну вообще их можно не ставить...
    2) Допустим мы в дире /home/ugex.net/public_html/www/papka/dir/18/assig/
    И в этой дире скрипт index.php
    Одна точка ./hek.php значит что файл лежит в этой же дире
    Две точки ../gglol.php значит что файл лежит в папке 18
    Две пары двух точек ../../xxx.php значит что файл лежит в папке dir
    И т.п. :)
    Если без точки index.php, то корень public_html
     
  9. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Это в html так... Если речь идет про операции с файлом из скрипта, то include('index.php');
    либо fopen('index.php','rb');
    Будут значить то же самое, что и include('./index.php');
    fopen('./index.php','rb');

    И еще, стоит учесть include_path
     
  10. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Macro, имелось ввиду без точки, но со слешем =)
    А еще chdir()
     
  11. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    А еще, выполняется ли скрипт напрямую, или он проинклюжен скриптом из другой папки :)
     
    2 people like this.
  12. symbioin

    symbioin Member

    Joined:
    6 Aug 2007
    Messages:
    62
    Likes Received:
    23
    Reputations:
    -16
    в переменной $a у меня используются знаки ' " как мне етозделать?
     
  13. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    PHP:
    function str2hex($str)
    {
    $hex='';
    for(
    $i=0;$i<strlen($str);$i++)
    {
    $hex.=dechex(ord(substring($str,$i,1)));
    }
    return 
    '0x'.$hex;
    }
    Типа того?
     
    1 person likes this.
  14. symbioin

    symbioin Member

    Joined:
    6 Aug 2007
    Messages:
    62
    Likes Received:
    23
    Reputations:
    -16
    и еще как правильно написать функцию md5bin? na php.net плохо описано :(
     
  15. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Если php 5 версии -
    $binmd5=md5($str,true);

    Если 4-й, то

    PHP:
    function md5bin($str)
    {
    $str=md5($str);
    $bin='';
    for(
    $i=0;$i<32;$i+=2)
    {
    $bin.=chr(hexdec(substr($str,$i,2)));
    }
    return 
    $bin;
    }
     
    1 person likes this.
  16. symbioin

    symbioin Member

    Joined:
    6 Aug 2007
    Messages:
    62
    Likes Received:
    23
    Reputations:
    -16
    а ехо как дать?
     
  17. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    echo(md5bin($str));
     
  18. symbioin

    symbioin Member

    Joined:
    6 Aug 2007
    Messages:
    62
    Likes Received:
    23
    Reputations:
    -16
    нада параметры поменять бо отобраюается вместо 123

    Code:
    
    ,№b¬Y[–K-#Kp
    
    
     
  19. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Ну все правильно, хотел бинарную строку из 16 символов - получил ее. Так и должно быть. Для чего тебе это надо, вообще?
     
  20. symbioin

    symbioin Member

    Joined:
    6 Aug 2007
    Messages:
    62
    Likes Received:
    23
    Reputations:
    -16
    да так идея хорошая родилась
     
Thread Status:
Not open for further replies.