$_POST и S_GET

Печать RSS
279

Автор
Чатланин
0
30. понятно ))) просто хотел узнать какие подводные камни существуют в гет и в пост))))
Автор
Чатланин
0
во че то соорудил со своими примочками ))
<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {
        $name = trim(strip_tags($_POST['name']));
        $age = abs((int)$_POST['age']);
        }
?>

<form action="<?=$_SERVER['PHP_SELF']?>" method='post'>
<input type="text" name="name" value="<?=$name?>"><br />
<input type="text" name="age" value="<?=$age?>">
<input type="submit" value="ok">
</form>
<?php
if($name and $age){
        echo 'Меня зовут: '.$name;
        echo '<br/>';
        echo 'Возраст: '.$age;
        }
?>
кто бы че еще добавил?)) модефикация типо) с комментариями если можно))
Изменил: Don (01.02.2012 / 20:52)
K

Транклюкаторщик
0
if($_SERVER['REQUEST_METHOD'] == "POST") {
ни разу такого не видел ))
я делаю так:
if(count($_POST)>0)
хотя предпочитаю такое:
<?
$save = (isset($_GET['save'])) ? true : false;
if($save){
if(isset($_POST['name']) && !empty($_POST['name'])){
.......
}
} else {
?>
<form action="?save" method="post">
<input type="name" value="" />
<input type="submit" />
</form>
<?
}
?>
Изменил: KOZZ (01.02.2012 / 20:57)

2000 лет д.н.э.
0
If(isset($_POST['name'])) достаточно
K

Транклюкаторщик
0
34. ramzes, кстати если так делать, то можно напороться на null значение / null байт, и этот isset вернет false (http://php.su/functions/?isset)
по хорошему, надо array_key_exists, либо совмещать с !empty()

Добавлено через 01:27 сек.
P.S: хотя сам по привычке юзаю isset
Изменил: KOZZ (01.02.2012 / 21:01)
А

Оранжевые штаны
0
28. eGo Надежный Дядька, приведу абстрактный. Предположим есть функция с такой семантикой имя(строка а, число б, массив в, объект г) при этом предусловия требуют чтобы аргумент а не содержал точек, аргумент б был положительным, а аргумент в был не пустым массивом. Пишем функцию с предусловием:
<?php
function name($a, $b, array $c, object $d){
// предусловия
if(!is_string($a) || strpos('.', $a) !== false) throw new \Exception('...');
if(!is_integer($b) || $b < 0) throw new \Exception('...');
if(!count($c)) throw new \Exception('...');
// тело функции
...
}
?>
примерно так
Автор
Чатланин
0
!empty помоему лучше юзать как ты сказал чисто из за Null, а isset как второстепенно наверно использовать

Землянин
0
isset($_POST) .. пост данные ;
реквест_метод тут не решает ничего запрос в заголовках может быть написан пост, а данные не передаваться или передаваться другим способом, а не через массив $_пост

2000 лет д.н.э.
0
Не надо ни чего совмещать.
Все равно проверять минимальную длинну строки, после трим() иначе три пробела можно отправить, или например подменить собой админа в бд. ___админ (_ - пробел)
K

Транклюкаторщик
0
38. akawin, isset($_POST)
$_post существует даже когда данные не отправлены.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск