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

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

Thread Status:
Not open for further replies.
  1. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    Всем привет.
    по мне там неверно написан шаблон.
    PHP:
    //$content - переменная текста
    $anti='#http://[a-z0-9_\.]+(\.ru$|\.com$|\.mobi$|\.info$|\.org$|\.net$|\.su$|\.ua$)#i';
    preg_match($anti,$content,$out);
    if (
    $out[0] != ""){ 
        echo 
    "<div style=\"text-align:left\" class=\"tit\">Ошибка</div> ";
        echo 
    "<div style=\"text-align:left\" class=\"box\"> ";
        echo 
    "Спам запрещен!<br/> ";
        echo 
    "Пожалуйста, будьте разумными:<br/> ";
        echo 
    "покупайте официально рекламу на нашем сайте.<br/> ";
        echo 
    "В любом случае ваш спам будет удален,<br/> ";
        echo 
    "ваши старания ровно на 3 мин :) ";
        echo 
    "</div>";

    else { echo 
    "Ok!"; }
     
    1 person likes this.
  2. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    Шаблон тот который дал Impuls*. Может ему именно так нужно искать. Хотя я понял твою идею :). А вот ($out[0] != "") необязательно т.к. preg_match - функция и если есть совпадения то вернет 1, т.е. можно сразу писать if (preg_match($_anti, $content)

    Да и еще одно при твоем варианте шаблона будет неверно обрабатываться сайты вида site.xxx т.к. у тебя в [a-z0-9_\.]+ присутствует точка и дальше в расширениях тоже есть точка, значит регулярка будет искать site..xxx (две точки) что неверно.
     
    #722 Red_Red1, 28 Oct 2007
    Last edited: 28 Oct 2007
  3. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    Там изначально неверный шаблон.
    Ну по поводу if-согласен,но мне почему-то просто так больше нравится(хотя вероятно это менее безопасно).
    вот скрипт накатал...все работает...т.к. в адресе могут быть поддомены.
    http://aandb.ru/test.php?a=http://aaa.www.ru
     
  4. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    Я тоже думал про поддомены.... все это ясно. Но я написал адреса вида site.xxx т.е. как оно будет работать если нету поддоменов?
     
  5. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    я кинул линк скрипта...можешь порверить все работает.
     
  6. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    Да. Я все понял. Будет работать! Ты прав... я тупанул с классом :)
    Хотя там есть одна темка которую скрипт не учитывает. По идее регулярка ищет адреса и если запись соответствует "понятию" адрес сайта, то пишет "СПАМ". Но если мы в сделаем так. http://aandb.ru/test.php?a=http://aaa.........ru (http://aaa.........ru - не адрес сайта) то скрипт все равно выдаст СПАМ!!!! Хотя это уже наверно не критично.
     
  7. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    почему?...если это порсто текст то он просто проинорирует и все.
    ну можно еще прописать дополнительный,необзательный параметр в шаблоне, чтобы проверял раширение файла...и т.п. но это уже авто сам добавит...это уже причесать и прилизать...
     
    #727 RedBull@12, 28 Oct 2007
    Last edited: 28 Oct 2007
  8. bxN5

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

    Joined:
    8 Jan 2006
    Messages:
    687
    Likes Received:
    138
    Reputations:
    32
    Как прикрутить капчу к форме, а точнее вообще как реализовать капчу. сПс
     
  9. forsecure4

    forsecure4 New Member

    Joined:
    24 Oct 2007
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток господа!
    Есть 2 пхп скрипта на удаленном сервере

    1 пхп начинается:

    <? session_start(); ?>
    <html>
    <head>
    <title>ADMIN</title>

    <script type="text/javascript">
    function CheckAll(formname)
    {
    thisCheckBoxes = document.forms[formname].getElementsByTagName('input');
    for (i = 0; i < thisCheckBoxes.length; i++) {
    if (thisCheckBoxes.name!='forall')
    thisCheckBoxes.checked = !thisCheckBoxes.checked;
    }
    }
    </script>
    </head>

    <body>
    <?
    if (session_is_registered("valid_user")) $valid=true; else $valid=false;
    if (!isset($login) && !isset($password)) $logged=false;else $logged=true;
    if (!$logged && !$valid) {
    ?>
    Please, log in:
    <form method=post name=auth action='1.php'>
    <table><tr>
    <td>Login:</td>
    <td><input type=text name=login></td>
    </tr><tr>
    <td>Password:</td>
    <td><input type=password name=password></td>
    </tr><tr>
    <td colspan=2 align=center><input type=submit value="LOGIN"></td>
    </tr>
    </form>
    <?
    }
    if ($logged)

    ...

    2 пхп начинается так:

    <? session_start();
    if (!session_is_registered("valid_user")) exit();
    ?>

    <?php
    @set_time_limit(0);
    @ini_set('max_execution_time',0);
    @ini_set('output_buffering',0);

    require ("3.php");

    ...

    Возможно ли подменить сеесию?
    или получить первый скрипт ?
    Или может что-нить другое можно сделать ?
    За помощь отблагодарю $
     
  10. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    а собственно что такое "капча"?
     
  11. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    Чтобы подделать сессию,ее нужно найти сначала.
    Как найти сессию - XSS,но здесь вроде как ничего не сделаешь.
    у тебя есть участок кода после if ($logged)?
    если там идет обращение к БД, то вероятно можно покапаться на наличие SQL-inj.
     
  12. forsecure4

    forsecure4 New Member

    Joined:
    24 Oct 2007
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    У меня есть код, он почТИ такой же:

    if ($login=='admin' && $password=='admin) {
    session_register("valid_user");
    $valid=true;
    } else {
    echo "<h3>WRONG LOGIN OR PASS!</h3>";
    }
    if (!$valid) exit();
     
  13. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    При register_globals=off к таким скриптам не докопаться.
     
  14. phol1eadeux

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

    Joined:
    7 Aug 2007
    Messages:
    108
    Likes Received:
    48
    Reputations:
    -1
  15. Impuls*

    Impuls* Elder - Старейшина

    Joined:
    3 Oct 2007
    Messages:
    75
    Likes Received:
    6
    Reputations:
    -1
    Про preg_match(), я реализовал этот вариант как только ты мне его дал!
    НО: он ищет именно этот текст, учитывает вроде регистр букв, потом если написать "http://google.ru/tuta - картинки!" то он пропустит его, я пробывал.Или просто надо что-то добавить))
    Вот из-за этих минусов я пробывал это реализовать через поиск без регистра stristr(), здесь и если написано еще что-то то скрипт работает.
     
    #735 Impuls*, 28 Oct 2007
    Last edited: 28 Oct 2007
  16. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    В регулярках можно поставить модификатор "i" тогда будет игнорировать регистр. По поводу остального - напиши подробнее что ты хочешь чтобы у тебя искало и фильтровало... какие именно записи должны фильтроваться скриптом?
     
  17. Impuls*

    Impuls* Elder - Старейшина

    Joined:
    3 Oct 2007
    Messages:
    75
    Likes Received:
    6
    Reputations:
    -1
    ОГРОМНОЕ СПАСИБО Red_Red1!! :)
    Все понял, все работает!
     
  18. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    ну собственно в моем примере использовался параметр "i"...
    не за что
     
    #738 RedBull@12, 28 Oct 2007
    Last edited: 28 Oct 2007
  19. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    http://www.php.ru/forum/viewtopic.php?p=67825
    если нужно могу помочь с реализацией.

    ----------
    С наилучшими пожеланиями!
     
    #739 RedBull@12, 28 Oct 2007
    Last edited: 28 Oct 2007
  20. bxN5

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

    Joined:
    8 Jan 2006
    Messages:
    687
    Likes Received:
    138
    Reputations:
    32
    http://captcha.ru/
     
Thread Status:
Not open for further replies.