[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка на заполнение полей
linf
PHP
// уточняем переменные, если пустые, присваиваем знаичение ноль:
$region basename($_POST['region']);
$date date("d.m.Y");
$head = isset($_POST['head'])?$_POST['head']:null;
$text = isset($_POST['text'])?$_POST['text']:null;
$name = isset($_POST['name'])?$_POST['name']:null;
$city = isset($_POST['city'])?$_POST['city']:null;
$tel = isset($_POST['tel'])?$_POST['tel']:null;
$icq = isset($_POST['icq'])?$_POST['icq']:null;
$mail = isset($_POST['mail'])?$_POST['mail']:null;

// проверка на заполнение полей $head, $text, $name, $mail; если пусты, то перенаправление на error.php
if (empty($head)) { header("Location: /error.php?error=2");}
if (empty(
$text)) { header("Location: /error.php?error=3");}
if (empty(
$name)) { header("Location: /error.php?error=4");}
if (empty(
$mail)) { header("Location: /error.php?error=5");}



Поля заполняю через форму. Почему даже если проверяемые поля НЕ заполннены, продолжается выполнение кода, и не идет перенаправлене на страницу с ошибкой?



Спустя 1 час, 2 минуты, 21 секунда (5.07.2009 - 17:05) kirik написал(а):
Цитата (linf @ 5.07.2009 - 08:02)
Почему даже если проверяемые поля НЕ заполннены, продолжается выполнение кода

Потому что в первой половине кода мы не "уточняем переменные, если пустые, присваиваем знаичение ноль" - isset будет в любом случае возвращать true, потому как поля типа input будут возвращаться даже пустые.
Тоесть тебе нужно что-то типа:

PHP
function redirect($url)
{
      header('Location: '.$url);
      exit('Если Ваш браузер не поддерживает переадресации <a href="'.$url.'">тыц</a> сюды');
}

// уточняем переменные, если пустые, присваиваем знаичение ноль (или редирект):
$region = basename($_POST['region']);
$date = date("d.m.Y");
$head = empty($_POST['head'])?$_POST['head']:redirect('/error.php?error=2');
$text = empty($_POST['text'])?$_POST['text']:redirect('/error.php?error=3');
$name = empty($_POST['name'])?$_POST['name']:redirect('/error.php?error=4');
$city = isset($_POST['city'])?$_POST['city']:null;
$tel = isset($_POST['tel'])?$_POST['tel']:null;
$icq = isset($_POST['icq'])?$_POST['icq']:null;
$mail = empty($_POST['mail'])?$_POST['mail']:redirect('/error.php?error=5');


код не проверял

Спустя 35 минут, 1 секунда (5.07.2009 - 17:40) linf написал(а):
Fatal error: Call to undefined function redirect() in /var/www/script.php

тоесть не работает...

а можно как нибуть всеже redirect заменить на Location?

Спустя 49 секунд (5.07.2009 - 17:41) kirik написал(а):
Цитата (linf @ 5.07.2009 - 09:40)
Fatal error: Call to undefined function redirect() in /var/www/script.php

Ты не весь код скопировал

Цитата (linf @ 5.07.2009 - 09:40)
а можно как нибуть всеже redirect заменить на Location?

Чем он тебе не Location?

Спустя 45 минут, 3 секунды (5.07.2009 - 18:26) linf написал(а):
я могу полностью стереть строку:

PHP
exit('Если Ваш браузер не поддерживает переадресации <a href="'.$url.'">тыц</a> сюды');


или лучше оставить

PHP
exit();


----------------------
А как тогда лучше поступить если я проверяю файл на пустоту так:

PHP
if (!count('$file')) { header('Location: /error.php?error=7'); }


Спустя 25 минут (5.07.2009 - 18:51) kirik написал(а):
Цитата (linf @ 5.07.2009 - 10:26)
я могу полностью стереть строку:

как хочешь. Все равно пользователь у которого браузер поддерживает редирект ничего не увидет.

Цитата (linf @ 5.07.2009 - 10:26)
А как тогда лучше поступить если я проверяю файл на пустоту так:

Лучше через filesize()
PHP
if(filesize('file.txt') == 0)
    
header('Location: /error.php?error=7');


_____________
Live in new format =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.