|
|
|
|
$test = $_POST['test'];
if (!isset($test)){
print "error!";
exit ();
}
|
не работает отрицание " ! " , мне еадо выводить сообщение об ошибке если поле пустое если заполнено молча выполнять скрипт...
очень надо!!!! | |
|
|
|
|
|
|
|
для: Lasar
(10.03.2007 в 19:04)
| | Попробуйте так
$test = $_POST['test'];
if (empty($test))
{
print "error!";
exit ();
}
|
| |
|
|
|
|
|
|
|
для: Ziq
(10.03.2007 в 19:38)
| | Поставлю вопрос по другому...
конструкция примерно такая
if (!isset($test) && $test = "" && !is_string($test){
echo $error;
exit();
}
if (!isset($test1) && $test1 = "" && !is_string($test1){
echo $error;
exit();
}
|
Есть анкета с 19ю полями для ввода данных, как эффективно проверить корректность вводимых данных до начала выполнения основного кода....? | |
|
|
|
|
|
|
|
для: Lasar
(10.03.2007 в 20:07)
| | Как-то тяжело все это выглядит...
Не совсем понятно, есть ли принципиальная разница для вас несуществует переменная или она пуста?
Я делаю примерно так
<?
if ($_POST['action'] ==1)
{
$var1 = proverka($_POST['var1']);
$var2 = proverka($_POST['var2']);
// Функция proverka() выполняет необходимые действия со строками или числами,
// например экранирует слэши, убирает html-теги...
// Далее проверяем на пустоту
if (empty($var1)) $a_error['var1'] = "Вы не ввели поле 1";
if (empty($var2)) $a_error['var2'] = "Вы не ввели поле 2";
// Теперь в массиве $a_error содержаться все ошибки в человеческом виде,
// которые можно отдать пользователю
// Теперь проверяются особые поля, например правильность ввода email, можно
// было бы и там это сделать, но....
if (...) $a_error['email'] = "Неправильный email";
// Если ошибок в переданных данных не было, то исполняем сам скрипт
if (count($a_error) == 0)
{
//...........
}
}
?>
|
Сама форма выглядит где-то так
<form>
<input name="var1">
<input name="var2">
<input name="action" value="1" type="hidden">
<input type="submit">
</form>
|
Action удобно использовать для обработки сразу нескольких форм. | |
|
|
|
|
|
|
|
для: Ziq
(10.03.2007 в 20:35)
| | во ..то что надо спс огромное....
да кстати а почему отрицание " ! " не работает.... к примеру с тем же isset i "if (!isset($test)){ echo $error;}" типо того, просто я часто видел подобное применение...? | |
|
|
|
|
|
|
|
для: Lasar
(10.03.2007 в 20:43)
| | Скорее всего все работает. Isset() говорит о том объявлена ли переменная или нет, а не о том заполнена ли она. Т.е. если даже передать пустую строку, то isset() выдаст true, а функция empty() проверяет заполненность... короче просто поэксперементируй и сам поймешь. | |
|
|
|
|
|
|
|
для: Lasar
(10.03.2007 в 20:43)
| | Вот такой код к примеру посмотри
<?
if (!isset($k)) echo "1";
$k = "";
if (isset($k)) echo "2";
$k = null;
if (!isset($k)) echo "3";
?>
|
| |
|
|
|
|
|
|
|
для: Ziq
(10.03.2007 в 20:53)
| | Немогли бы Вы по подробнее описать функцию proverka , просто я чот непойму в оргументы функции чтовстовлять все элементы суперглобального масива или остовлять пустым...?
Икак работать с ним внутри функции..
Зарание благодарен... | |
|
|
|
|
|
|
|
для: Lasar
(10.03.2007 в 19:04)
| | Попробуйте вот такой код он вроде должен работать.
$test = $_POST['test'];
if ($test == "")
{
print "error!";
exit ();
}
|
| |
|
|
|
|
|
|
|
для: Staglu
(10.03.2007 в 21:22)
| |
$test = $_POST['test'];
if (!isset($test)){
print "error!";
exit ();
}
|
Код работает, но определяет наличие переменной $test , а она определена, вот и не срабатывает сообщение об ошибке.
Если заменить
$test = $_POST['test'];
if (empty($test)){
print "error!";
exit ();
}
|
Будет проверяться имеет ли значение переменная $test
В сумме получается
$error = "";
if (empty($_POST['test'])) $error = "не ввели имя";
if (empty($_POST['adress'])) $error = "не ввели адрес";
//проверка на ошибки
if (!empty($error))
{
echo $error;
}
else
{
}
|
| |
|
|
|
|
|
|
|
для: куч1963
(11.03.2007 в 06:41)
| | что-то я совсем запутался ....(
у меня такая задача.....получить даныые из анкеты и отослать их по почте
в анкете 19 полей ....
как затолкать их вписьмо чтоб форсаи письма был вида:
Имя : Иванов Иван Иваныч.
Возраст : 21 год
Образование : высшие.
.....
И т.д.
На ум приходит тока асациативный масив типа array ('имя' => $name, 'Возраст' => $age) и т.д.
Так вот как сформировать спиок ..ключ + значение и затолкать его в переменную, чтоб потом передать функции mail().
И последние :
Тут Ziq предложил отличный способ фильтрации вводных данных
<?
if ($_POST['action'] ==1)
{
$var1 = proverka($_POST['var1']);
$var2 = proverka($_POST['var2']);
// Функция proverka() выполняет необходимые действия со строками или числами,
// например экранирует слэши, убирает html-теги...
// Далее проверяем на пустоту
if (empty($var1)) $a_error['var1'] = "Вы не ввели поле 1";
if (empty($var2)) $a_error['var2'] = "Вы не ввели поле 2";
// Теперь в массиве $a_error содержаться все ошибки в человеческом виде,
// которые можно отдать пользователю
// Теперь проверяются особые поля, например правильность ввода email, можно
// было бы и там это сделать, но....
if (...) $a_error['email'] = "Неправильный email";
// Если ошибок в переданных данных не было, то исполняем сам скрипт
if (count($a_error) == 0)
{
//...........
}
}
?>
|
всё впринципе понятно, кроме функции proverka , пожалкйсто дайте примерчик данной функции где для каждого элементе суперглобального масива будет применятся один и тот же метод фильтраци.... например trim() , htmlspecialchars() и т.д.
Зарание спасибо.... | |
|
|
|
|
|
|
|
для: Lasar
(11.03.2007 в 08:21)
| | Что-то типа вот этого
<?
// $str - строка для обработки
// $length - длина
// $intval - числовое ли это поле
// Возможно понадобятся еще параметры в зависимости от применения
function proverka($str, $length, $intval = false)
{
$str = trim($str);
$str = substr($str, 0, $length);
if ($intval == true)
{
$str = intval($str);
}
else
{
$str = addslashes($str);
$str = htmlspecialchars($str);
//... и т.д. в зависимости что надо
}
return $str;
}
?>
|
Применять что-то вроде
<?
$var1 = proverka($_POST['var1'], 255); // Текстовое поле с макс. длиной 255 символов
$var2 = proverka($_POST['var2'], 12, true); // Числовое поле максимум из 12 цифр.
?>
|
| |
|
|
|
|
|
|
|
для: Ziq
(11.03.2007 в 09:51)
| | СПС те огромное разобрался...)) | |
|
|
|
|
|
|
|
для: Lasar
(11.03.2007 в 08:21)
| | if(!isset($_POST['test']) {}
чего же удивительного, если ты сначала присваиваешь переменной значение, а потом выполняешь проверку её на существование. | |
|
|
|