2012-06-06 2 views
0

У меня есть одно текстовое поле. Это имя является примером.

<input type="text" name="example"/> 

Я хочу проверить, любые данные поступают из примера или нет. Я попытался использовать код, как показано ниже:

<?php 
if(empty($_POST["example"])) 
{ 
     echo "You need to enter any text to example box."; 
} 
?> 

Но этот код печати, когда я вхожу страница является первой. Я хочу видеть печатные данные, только когда нажимаем submit.

ответ

1
<?php 
if(isset($_POST['example']) && empty($_POST['example'])) 
{ 
     echo "You need to enter any text to example box."; 
} 
?> 
+0

Осторожно, '0' и' "0" 'считаются пустыми. Возможно, вы этого не захотите. –

3

проверка

if(!isset($_POST["submitButtonName"])) 
{ 
    // validation logic here 
} 
+0

Зачем нужно указывать "submitButtonName"? Это ошибка копирования-вставки? –

+0

@JonathanM это то, что происходит при нажатии кнопки отправки. –

+1

Нет никаких доказательств того, что он использует кнопку отправки. Я делаю тот же аргумент в ответ Циришобро. –

0

Ее лучший выбор для использования:

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if(empty($_POST["example"])) 
     { 
      echo "You need to enter any text to example box."; 
     } 
} 

Это будет проверить, есть ли POST на сервере, а затем вы будете иметь свои условия.

+0

Это приведет к дисквалификации значения «O» или 0. –

0
if (!empty ($_POST)) 
{ 
    // Validation logic here 
    if ((!isset ($_POST ['example'])) || (empty ($_POST ["example"]))) 
    { 
     echo "You need to enter any text to example box."; 
    } 
} 
else 
{ 
    // No need to do any validation logic, the form hasn't been submitted yet. 
} 
+0

Это приведет к дисквалификации значения «O» или 0. –

+0

Код OP также дисквалифицировал бы 0, если он явно не заявляет, что ему нужно 0, я должен идти с поведением, которое он реализовал и не указал, что это неправильно. – GordonM

-1

Проверьте, есть ли кнопка submit.

<input type="text" name="example" value="" /> 
<input type="submit" name="submit" value="submit" /> 

<?php 
    if (isset($_POST['submit'])) { 

     if (empty($_POST['example'])) { 
      echo "You need to enter any text to example box."; 
     } 
?> 
+1

Не может быть кнопки 'submit'. –

+0

@JonathanM. Что это значит «Я хочу видеть печатные данные, только когда нажимаю« Отправить ».? –

+1

Он может быть отправлен через изображение, похожее на кнопку, и используя ajax. –

3

isset является правильный выбор здесь - empty предназначен только для изучения известной переменной, чтобы увидеть, если это «emptyish». Согласно docs

следующие вещи считаются пустыми:

"" (an empty string) 
0 (0 as an integer) 
0.0 (0 as a float) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
var $var; (a variable declared, but without a value in a class) 

Что это не говорит о том, как он относится к членам массива, которые не определены. Комментарий на странице DOCS дает нам некоторое представление от тестирования: http://www.php.net/manual/en/function.empty.php#105722

Обратите внимание, что проверка существования подраздела массива, что подключ не существует, но родитель делает, и это строка будет возвращать ложные для пустого.

В то время как isset (docs) предназначен для «Определить, если переменная задана и не NULL.» - именно то, что вы после этого. Таким образом, ваш код будет выглядеть так:

// check the length, too, to avoid zero-length strings 
if(!isset($_POST["example"]) || strlen(trim($_POST["example"])) < 1) { 
    echo "You need to enter any text to example box."; 
} else { 
    // handle form submission 
} 

Документация

PHP isset - http://php.net/manual/en/function.isset.php

PHP empty - http://www.php.net/manual/en/function.empty.php

Больше чтение - http://virendrachandak.wordpress.com/2012/01/21/php-isset-vs-empty-vs-is_null/

+0

Ya, скорректированный пример –

+0

+1, Это правильный ответ. –

0

Проверить $ _POST, потому что он будет доступен только при отправке страницы.

<?php 
    if(!empty($_POST)){ 
     if(isset($_POST['example']) && empty($_POST['example'])){ 
     echo "You need to enter any text to example box."; 
     }   
    } 
?> 
+0

неправильное условие, это должно быть 'if (! Empty ($ _ POST)) ...' –

+0

спасибо, я пропустил его при наборе текста. –

+0

Это приведет к дисквалификации значения «O» или 0. –

Смежные вопросы