Лучшие практики обработки реформ

  • Автор темы Narkosha46
  • 38
  • Обновлено
  • 13, May 2024
  • #1
Я пересматриваю PHP-код, который написал несколько лет назад, чтобы внести в него некоторые улучшения.

Я задаюсь вопросом, делаю ли я что-то наилучшим образом. По сути, я показываю пользователю HTML-форму на своем веб-сайте и задаю ему несколько вопросов; они нажимают «Отправить», и у меня есть PHP-код, проверяющий форму и определяющий, достаточно ли полная информация.

Форма, над которой я сейчас работаю, содержит текстовые поля, несколько флажков и кнопки «Отправить» и «Сбросить». Некоторые текстовые поля и флажки можно оставить пустыми, а некоторые являются обязательными.

В моем PHP-коде я сначала проверяю значения каждого текстового поля и каждого флажка с помощью оператора объединения.

Например:
 (array_key_exists('meeting2', $_POST)) ? $meeting2 = trim($_POST['meeting2']) : $meeting2 = ""; //This is the Meeting2 text field.


PHP: Насколько я понимаю, в этой строке кода говорится: «Заполните переменную $meeting2 урезанным значением значения Meeting2 из формы, если оно имеет значение, в противном случае присвойте ей пустое значение.

К сожалению, когда я выполняю этот код, он выдает подобную ошибку для каждого снятого флажка, хотя снятие этого флажка абсолютно законно:

 Notice: Undefined index: meeting2 in /storage/ssd3/424/1819424/public_html/topicProposalTheme.php on line 47
PHP: Я знаю, что оператор объединения является относительно новым для PHP, но я использую PHP 7.1.18, поэтому он должен работать так, как задумано, верно?

Если да, то что не так с моим подходом? Раньше я использовал array_key_exists, но увидел кое-что, что убедило меня в том, что оператор объединения «лучше» или, по крайней мере, более краток.

Нужно ли мне вернуться к этому:
  $meeting2 = trim($_POST['meeting2']) ?? ""; //This is the Meeting2 checkbox. 
PHP: я просмотрел статьи об isset() и array_key_exists() в руководстве по PHP, но они показались мне скорее запутанными, чем проясняющими вопрос о том, какой из них мне следует использовать. Может ли кто-нибудь просветить меня о том, как лучше всего использовать подход?

Narkosha46


Рег
03 Jun, 2014

Тем
2

Постов
5

Баллов
25
  • 07, Jun 2024
  • #2
Входные данные обрабатываются по порядку, поэтому, когда отправляется $_POST['abc'] = 0, второй флажок снимается, поэтому значение не изменяется. Если этот флажок установлен, $_POST['abc'] будет заменен значением 1.
 

jacoff89


Рег
27 Sep, 2013

Тем
1

Постов
2

Баллов
12
  • 12, Jun 2024
  • #3
Я никогда раньше не слышал о входном фильтре. У меня было ощущение, что я делаю что-то не лучшим образом, и теперь я вижу, что прав. Итак, фильтр-ввод или фильтр-ввод-массив должен быть основой моего подхода к обработке значений в формах; это очень полезно знать. Спасибо!
 

alexuss3000


Рег
31 Dec, 2012

Тем
1

Постов
3

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966

Интересно