Как пройти через $ _POST, передавая каждое поле сообщения в качестве параметра функции? Редактировать

Я просто представляю алгоритмически то, что хочу достичь, используя цикл foreach и массив $ _POST в php.

function check_fields($_POST) { // provide $_post['field1'],$_post['field2']..so on foreach($_POST as $_POST['FIELD 1-N'] { isvalid($_POST['FIELD1 - N']); } } 

Надеюсь, вы понимаете, что я пытаюсь спросить …

EDIT: $ _POST ['FIELD1'], $ _POST ['FIELD1'] и т. Д. – это имена переменных, которые передаются функции isvalid (). Что делает функция isvalid (), является использование isset () и пустым, чтобы проверить, содержит ли переменная значение …

С помощью foreach вам не нужно знать имена ключей в массиве.

 foreach($_POST as $key => $field) { isvalid($field); } 

$key содержит имена типа «field1», «field2» и т. д., тогда как $field содержит значение внутри массива $_POST . Затем цикл foreach запускает функцию invalid() для каждого значения поля.

Чтобы проверить, установлены ли значения полей:

 // Sample $_POST array $_POST = array( "field1" => "", // this is not set "field2" => "data" ); foreach($_POST as $key => $field) { // You can check if it is empty using foreach alone if (strlen($field) > 0) { // this field is set } else { // this field is not set } } 

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

Попробуй это

 foreach($_POST as $fieldName => $fieldValue) { isvalid($fieldValue); } 

Предполагая, что вы являетесь tyring для создания функции проверки, называемой isvalid ;

 function isvalid($input) { return ('' !== trim($input)); } // loop $errors = arrray(); foreach ($_POST as $key => $value) { if (!isvalid($value)) { $errors[] = "$key not be empty!"; } } print_r($errors); 

Между тем, если вход $_POST не isset, то он не будет в foreach.

Один цикл цикла для получения ключей и значений массива:

 foreach( $_POST as $key => $value ) { isvalid( $key, $value ); } 

… поэтому вам нужно изменить isvalid() чтобы принять два параметра, если вам нужно получить field1 , field2 и т. д.

РЕДАКТИРОВАНИЕ

 $errors = array(); foreach( $_POST as $key => $value ) if ( empty( $value ) ) $errors[] = $key; if ( !empty( $errors ) ) echo 'You have errors on: <pre>' . print_r( $errors, true ) . '</pre>'; 

… вы можете отменить отправку, если $errors не пуст.