2014-02-14 3 views
0

Когда моя форма была отправлена ​​я всегда проверяю, если форма isset, а затем проверить, если все поля являются также issetPHP isset: это избыточно?

Это мой php код:

if(isset($_POST)) { 
    if(isset($_POST['username'], $_POST['password'])) { 
    // process 
    } 
} 

Мой вопрос, делает свой первый чек из isset, если сама форма была отправлена, а затем снова проверить для каждого input, если он isset или если момент я использую

if(isset($_POST)) { }

действительно проверит поля внутри этой формы?

Надеюсь, вы получите мое сообщение заранее.

+0

В программном коде а '' ' отсутствует. – idmean

ответ

8

Ну, $_POST всегда задано, поэтому первый оператор не нужен. Проверьте только, заданы ли определенные поля.

EDIT: Как указано в комментарии, isset() предоставляет вам информацию только в том случае, если задана какая-либо переменная, а не если она имеет некоторое значение. empty() может вам сказать, если у вас что-то есть.

EDIT 2: Просто, чтобы быть уверенным, если empty() будет или не заметит вас на поле не определено POST, попробуйте следующее:

error_reporting(E_ALL); 
var_dump(empty($_POST['undefined'])); 

Вы увидите, что empty() работает с неопределенными показателями тоже.

+2

Лучше использовать 'empty()' –

+0

@ hek2mgl Он также проверяет часть 'isset()' :) –

+1

@ Mr.Alien thanks ... :) – hek2mgl

1

Если вы хотите, чтобы проверить, является ли индекс сообщение было отправлено, reagardless, если она содержит пустую строку или некоторые данные используют array_key_exists():

if(array_key_exists($_POST['foo']) && array_key_exists($_POST['bar'])) .. 
+0

Я просто ответил ' in_array() ', удалит мой ответ ... –

+0

@ Mr.Alien wait .. Не могли бы вы объяснить свой код? Может быть, я слепой, но я не получаю его. – hek2mgl

+0

Даже не понимаю вопроса, если вопрос о 'isset()', чем он уже ответил, если речь идет о ключах или значениях, которые являются пустыми, чем 'in_array() 'было бы полезно, я уверен, что клавиши здесь нечего делать, хотя :) это все значение и isset .. –

-1

WTF ??

ЛУЧШЕ использование $ _SERVER [ 'REQUEST_METHOD']

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
// process 
} 
Смежные вопросы