Как узнать, не был ли отправлен элемент формы

У меня есть форма, где электронная почта не является обязательной. Чтобы проверить, что есть флажок. Если этот флажок не установлен, текстовое поле электронной почты будет отключено и, следовательно, не опубликовано в submit. Однако на следующей странице, если у меня есть код, как показано ниже, он дает мне ошибку, если текстовое поле электронной почты отключено.

if (isset($_POST['submit'])) { $_SESSION["email"] = $_REQUEST['YourEMail']; .... } 

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

 document.getElementById('YourEMail').disabled = false document.getElementById('YourEMail').value = '' 

Тем не менее, остается одна неприятная проблема, которая заключается в том, что, если пользователь вернется к исходной странице, текстовое поле электронной почты включено, так как я включил его проблематично непосредственно перед отправкой формы. Однако я хочу, чтобы в этом случае он был отключен. Как, я могу достичь этого? В качестве альтернативы, как на следующей странице я мог видеть, что окно электронной почты было отключено и поэтому даже не пыталось прочитать $_REQUEST['YourEmail'] ?

если поле «#YourEMail» является необязательным, вы можете проверить, существует ли в PHP. Нет необходимости включать / отключать поле с помощью JS.

 if (isset($_POST['submit'])) { if (isset($_REQUEST['YourEMail']) && !empty($_REQUEST['YourEMail'])){ $_SESSION["email"] = $_REQUEST['YourEMail']; } } 

Вы можете протестировать его так, используя тройной:

 (isset($_REQUEST['YourEMail']) && !empty($_REQUEST['YourEMail'])) ? $_SESSION["email"] = $_REQUEST['YourEMail'] : FALSE; 

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