Поэтому я снова пытаюсь найти лучшие способы делать что-то. 90% учебников делают вещи обычным способом:
if (isset($_POST['name']) && isset($_POST['password'])) {
// Does some stuff...
}
Это нормально, но это кажется слишком статичным, поскольку я предпочитаю нечто более динамичное. Например, скажем, прокручиваем все массивы $ _POST в форме контакта. Таким образом я могу изменить имя или поля на все, что захочу, или добавить еще... мой код всегда будет обрабатывать остальные.
Я знаю, что цикл foreach пригодится, но, как кто-то новый в мире программирования и php, я думал, что вы можете показать мне, как это делается. Итак, как я могу заменить выше цикл for? Я не знаю, с чего начать.
попробуй это:
$check=true;
if(isset($_POST)){
foreach($_POST as $key=>$value){
if(!isset($_POST[$key]){
$check = false;
break;
}
}
}
на основе $check
вы можете проверить, правильно ли он отправлен или нет.
Другой подход заключается в том, чтобы иметь своего рода проверку, потому что возможно, вы не сможете получить ключ в $_POST
$keys =array("input1","input2");
$check=true;
if(isset($_POST)){
foreach($keys as $input){
if(!array_key_exists($input,$_POST)){
$check = false;
break;
}
}
}
Вы всегда можете использовать цикл foreach:
foreach($_POST as $key => $value){ echo '$_POST["'.$key.'"] = "'.$value.'"'}
Но помните, что кто угодно, может изменить вашу форму, подготовить какой-то пост-сообщение и отправить данные, которые могут создать небольшой беспорядок с вашим кодом. Так что это хороший способ проверить все поля. Разумеется, возможно динамическое подтверждение, но вам нужно сделать это правильно!
Хорошо, вы могли бы попробовать что-то вроде этого:
<?php
$inputNames = array("input1","input2");
foreach($inputNames as $input)
{
if (isset($_POST["$input"]) && isset($_POST["$input"])) {
// Does some stuff...
}
}
?>
Создайте массив с именами всех ваших входных тегов, а затем просто сделайте foreach
между ними. Таким образом, вам всегда нужно редактировать массив имен.