Jump to content
  • 0

О проверке пришедших переменных из формы


Sserg-135
 Share

Question

Как поступить более красиво (или правильней) при возникновении ситуации когда в обработчик формы не пришли переменные

i f (isset($_POST['price'])) {
$price=trim($_POST['price'];{
else {
...............

}

по ветке else просто сделать exit, т.к. это по сути фатальная ошибка или все-же вывести красивенькое сообщение об ошибке. Что об этом говорят правила хоррошего тона? :)

И еще: у меня не работает переменная $_SERVER['HTTP_REFERER'], чем еще можно проверит откуда пришли переменные?

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0
if (isset ($_POST['price] ) ) 
{
$price = $_POST['price'];
if ($price == ' ') {unset($price);} // Если переменная пустая, то уничтожаем переменную
}

не совсем так : не пустая пришла, а если совсем не пришла (или так не может про POST передаче быть?)

Link to comment
Share on other sites

  • 0
И еще: у меня не работает переменная $_SERVER['HTTP_REFERER']

Переменная $_SERVER['HTTP_REFERER'] посылается или не посылается на усмотрение веб- клиента. Пологаться на е? достоверность нельзя.

На что тогда надо полагаться? На ['REQUEST_URI'] ?

Link to comment
Share on other sites

  • 0

Вот тебе еще как красивый вариант:

<?php
$data = (empty($_POST['price'])) ? 'Данных нет' : trim($_POST['price'], " ");
$data = (isset($data)) ? $data : 'Данных нет';
echo $data;
?>

1 - Проверяем передано что-нибудь или нет

2 - Убираем пробелы, например если ввели одни пробелы(на этом шаге можно вообще поставить вырезать любые символы или выбрать только цифры, все что хочешь можно сделать)

3 - Выводим данные

:)

Link to comment
Share on other sites

  • 0

А можно и вообще без else сделать. В условии проверить на isset ($_GET/$_POST['имя кнопки формы']) - если да то внутри скобок идет основной алгоритм скрипта. Дополнительно нужно проверить данные пришедшие из каждого поля! (не доверяйте даже скрытым полям, которые сами же и задали) - потом логика скрипта. А на else - можно поставить вывод опять той же формы!

if(isset ($_GET/$_POST['имя кнопки формы'])
{
// 1-проверка первого поля на тип данных и на недопустимые символы
.....
// 2 -проверка второго и т.д. полей
.....
// 3 логика скрипта
}
else
{
// вывод формы
}

А и еще. Чтобы выводить сообщения об ошибках - их надо собирать по мере проверок полей формы. т.е. завести себе переменную в которую конкатенацией добавлять сообщения об ошибках если таковые будут появляться по логике скрипта или по результатам проверок. Если на сайте предполагается большое кол-во полей и форм - то я себе сделал класс который накапливает сообщения и может их все скопом распечатывать перебирая элементы массива. и универсальную ф-цию проверки поля. Использую eregi_replace для проверки на недопустимые символы.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy