Get фильтруем

Discussion in 'PHP' started by .::BARS::., 5 Feb 2008.

  1. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Делаю такой скриптег http://zanud.net/tests/dalay-lama/ там все запросы передаются через get так вот....
    $vopr1_1=$_GET['vopr1_1'];
    if($vopr1_1==''){
    die('Ошибка.<hr />Возможно не заполнено поле');
    }
    --------------
    что бы я не писал в это поле, все равно ошибка.... как можно подругому профильтровать?
    --------------
    и еще
    $vopr1_1=$_GET['vopr1_1'];
    если я введу 1, то получу одно слово (например "один"), если 2, то слово "два".... Как так сделать что бы только именно к этому полю все относилось, и что бы из цыфер переводилось в слова???
    http://zanud.net/tests/dalay-lama/ вот тут это скрипт, гланьте, первые 5 вопросов, это из цыфр в слова...
     
  2. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Из цифр в слова - создай ассоциативный массив где ключем масива будут цифры, которые вводились
     
    #2 bul.666, 5 Feb 2008
    Last edited: 5 Feb 2008
  3. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Хотя грамотней будет сделать так:
    PHP:
    $input "367182";
    echo 
    str_replace(array("0","1","2","3","4","5","6","7","8","9"), array("Ноль","Один","Два","Три","Четыре","Пять","Шесть","Семь","Восемь","Девять"), $input);
    В резльтате вывод будет:
    ТриШестьСемьОдинВосемьДва
     
  4. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    спасиб... сейчас попробую..... а что с фильтрацией?
     
  5. rem

    rem New Member

    Joined:
    9 Nov 2006
    Messages:
    24
    Likes Received:
    4
    Reputations:
    1
    если у тя там всегда цифры то прогоняй через intval() - етого хватит)
     
  6. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    и слова.....
     
  7. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    дык что фильтрвать?
     
  8. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Пример... Если поле пустое, "ошибка, поле не заполнено"..... и не пускать символы вида $ % ' ну и т.п.
    $vopr1_1=$_GET['vopr1_1'];
    if($vopr1_1==''){
    die('Ошибка.<hr />Возможно не заполнено поле');
    } - - - это я так поле проверял..... а мне все равно пишет что поле пустое, даже если я его и заполнил...
     
  9. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    можно регулярками создать шаблон на спец символы и ругаться на них...
    На пустое поле проверяй if(empty($vopr1_1)) { }
     
  10. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    А можно подробней код написать!? =)
     
  11. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    гы..........
     
  12. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    PHP:
    <?php
    $stroka 
    "sdsadasds2132AASDASDsadasdАВЫАЫВавыаывda";

    if (
    ereg("[^0-9a-zA-Zа-яА-Я]",$stroka)) 
    echo 
    "ERROR!";
    else echo 
    $stroka;
    ?>
     
  13. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    PHP:
    <?php
        $input 
    $_GET['vopr1_1'];
        if(
    $input) {
            echo 
    ucfirst(str_replace(array('0''1''2''3''4''5''6''7''8''9'), array('ноль''один''два''три''четыре''пять''шесть''семь''восемь''девять'), $input));
        } else {
            echo(
    'Вы ничего не ввели');
        }
    ?>
     
    #13 NOmeR1, 6 Feb 2008
    Last edited: 6 Feb 2008
  14. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    2NOmeR1
    А где фильтрация? Читай всю тему... Я ему уже показал, как первеодить цифры=>буквы...

    2ТС Зачем тебе фильтровать %, если данные передаются GET ом???
     
    #14 bul.666, 6 Feb 2008
    Last edited: 6 Feb 2008
  15. Dr.Z3r0

    Dr.Z3r0 Leaders of the World

    Joined:
    6 Jul 2007
    Messages:
    284
    Likes Received:
    595
    Reputations:
    567
    А ты пробовал этот код тестить? Вообще то таких случаев что бы вылелось \'Вы ничего не ввели\' никогда не будет. Юзать вместо isset функцию empty.
    PHP:
    <?php
        $input 
    = (empty($_GET[\'vopr1_1\'])?\'\':$_GET[\'vopr1_1\']);
        if($input) {
            echo ucfirst(str_replace(array(\'0\', \'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\'), array(\'ноль\', \'один\', \'два\', \'три\', \'четыре\', \'пять\', \'шесть\', \'семь\', \'восемь\', \'девять\'), $input));
        } else {
            echo(\'Вы ничего не ввели\');
        }
    ?>
     
  16. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Спасиб... а терь вот вопрос.... возможно ли сломать это
    PHP:
     http://zanud.net/tests/dalay-lama/
    каким нить таким способом
    PHP:
    http://zanud.net/tests/dalay-lama/process.php?vopr1_1=5&vopr1_2=5&vopr1_3=5&vopr1_4=5&vopr1_5=5&vopr2=..%2F..%2Findex.php%2500&vopr3=..%2F..%2Findex.php%2500&vopr4=..%2F..%2Findex.php%2500&vopr5=..%2F..%2Findex.php%2500&vopr6=..%2F..%2Findex.php%2500&vopr7=..%2F..%2Findex.php%2500&vopr8=..%2F..%2Findex.php%2500&vopr9=..%2F..%2Findex.php%2500&vopr10=..%2F..%2Findex.php%2500&vopr11=..%2F..%2Findex.php%2500&vopr12=..%2F..%2Findex.php%2500&vopr13=..%2F..%2Findex.php%2500&vopr1=..%2F..%2Findex.php%2500
     
    #16 .::BARS::., 6 Feb 2008
    Last edited: 6 Feb 2008
  17. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    I-I()/Ib ты что? Забыл синтаксис пхп или у тебя кавычек на клаве нет? На счёт empty - там вообще надо было if($input) просто. (я ступил)

    .::BARS::., мде.. Сделай на всякий случай
    PHP:
    $_GET array_map("htmlspecialchars"$_GET);
    До использования массива $_GET.
     
    #17 NOmeR1, 6 Feb 2008
    Last edited: 6 Feb 2008
  18. Dr.Z3r0

    Dr.Z3r0 Leaders of the World

    Joined:
    6 Jul 2007
    Messages:
    284
    Likes Received:
    595
    Reputations:
    567
    кавычки форумом порезались, не умничай) Да и тем более я показал теорию. кто захочет-тот поймет...