Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Get фильтруем (https://forum.antichat.xyz/showthread.php?t=61062)

.::BARS::. 05.02.2008 17:51

Get фильтруем
 
Делаю такой скриптег 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 вопросов, это из цыфр в слова...

bul.666 05.02.2008 18:17

Из цифр в слова - создай ассоциативный массив где ключем масива будут цифры, которые вводились

bul.666 05.02.2008 18:31

Хотя грамотней будет сделать так:
PHP код:

$input "367182";
echo 
str_replace(array("0","1","2","3","4","5","6","7","8","9"), array("Ноль","Один","Два","Три","Четыре","Пять","Шесть","Семь","Восемь","Девять"), $input); 

В резльтате вывод будет:
ТриШестьСемьОдинВосемьДва

.::BARS::. 06.02.2008 03:05

спасиб... сейчас попробую..... а что с фильтрацией?

rem 06.02.2008 03:17

если у тя там всегда цифры то прогоняй через intval() - етого хватит)

.::BARS::. 06.02.2008 03:19

и слова.....

bul.666 06.02.2008 03:36

дык что фильтрвать?

.::BARS::. 06.02.2008 03:40

Пример... Если поле пустое, "ошибка, поле не заполнено"..... и не пускать символы вида $ % ' ну и т.п.
$vopr1_1=$_GET['vopr1_1'];
if($vopr1_1==''){
die('Ошибка.<hr />Возможно не заполнено поле');
} - - - это я так поле проверял..... а мне все равно пишет что поле пустое, даже если я его и заполнил...

bul.666 06.02.2008 03:42

можно регулярками создать шаблон на спец символы и ругаться на них...
На пустое поле проверяй if(empty($vopr1_1)) { }

.::BARS::. 06.02.2008 11:29

Цитата:

Сообщение от bul.666
можно регулярками создать шаблон на спец символы и ругаться на них...
На пустое поле проверяй if(empty($vopr1_1)) { }

А можно подробней код написать!? =)

.::BARS::. 06.02.2008 13:21

гы..........

bul.666 06.02.2008 14:29

PHP код:

<?php
$stroka 
"sdsadasds2132AASDASDsadasdАВЫАЫВавыаывda";

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


NOmeR1 06.02.2008 17:22

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(
'Вы ничего не ввели');
    }
?>


bul.666 06.02.2008 17:41

2NOmeR1
А где фильтрация? Читай всю тему... Я ему уже показал, как первеодить цифры=>буквы...

2ТС Зачем тебе фильтровать %, если данные передаются GET ом???

Dr.Z3r0 06.02.2008 18:21

Цитата:

Сообщение от NOmeR1
PHP код:

<?php
    $input 
$_GET[\'vopr1_1\'];
    if(isset($input)) {
        echo ucfirst(str_replace(array(\'0\', \'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\'), array(\'ноль\', \'один\', \'два\', \'три\', \'четыре\', \'пять\', \'шесть\', \'семь\', \'восемь\', \'девять\'), $input));
    } else {
        echo(\'Вы ничего не ввели\');
    }
?>


А ты пробовал этот код тестить? Вообще то таких случаев что бы вылелось \'Вы ничего не ввели\' никогда не будет. Юзать вместо 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(\'Вы ничего не ввели\');
    }
?>


.::BARS::. 06.02.2008 18:50

Спасиб... а терь вот вопрос.... возможно ли сломать это
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 


NOmeR1 06.02.2008 19:35

I-I()/Ib ты что? Забыл синтаксис пхп или у тебя кавычек на клаве нет? На счёт empty - там вообще надо было if($input) просто. (я ступил)

.::BARS::., мде.. Сделай на всякий случай
PHP код:

$_GET array_map("htmlspecialchars"$_GET); 

До использования массива $_GET.

Dr.Z3r0 06.02.2008 23:32

Цитата:

Сообщение от NOmeR1
I-I()/Ib ты что? Забыл синтаксис пхп или у тебя кавычек на клаве нет? На счёт empty - там вообще надо было if($input) просто. (я ступил)

кавычки форумом порезались, не умничай) Да и тем более я показал теорию. кто захочет-тот поймет...


Время: 11:39