Intereting Posts
фильтровать изображения с веб-страницы по размеру Удалите пустые элементы массива с помощью array_filter с функцией обратного вызова Как создать новые теги с помощью Select2 И сохранить в базу данных PHP 5.3.10 и ошибка синтаксиса PHP 5.5.3 неожиданно "[' JQuery UI Progress Bar с PHP Приложение Twitter oauth начало возвращать код ошибки 89 Недействительный или истекший токен после 1 года работы symfony2 + doctrine2 @ postgresql, устанавливающий схему Пользователь должен просмотреть страницу перед просмотром Поместите мой логотип на страницу Paypal, когда мои продавцы продают какой-то продукт с моего сайта Как создать удобный для пользователя URL-адрес с использованием псевдонима и идентификатора из базы данных? WordPress: как установить тему по умолчанию (активная) через скрипт Что такое временная метка Unix и зачем ее использовать? Является ли это подходящей системой регистрации и регистрации Недопустимое разрешение команды php exec () Какие проверки следует использовать для предотвращения прямого доступа к страницам (с использованием PHP)?

PHP | Получить входное имя через $ _POST

Пример HTML:

<form method="post" id="form" action="form_action.php"> <input name="email" type="text" /> </form> 

Пользователь заполняет поле ввода с помощью: dfg@dfg.com

 echo $_POST['email']; //output: dfg@dfg.com 

Имя и значение каждого входа в форме отправляются на сервер. Есть ли способ получить свойство name? Так что-то вроде ..

 echo $_POST['email'].name; //output: email 

EDIT: Прояснить некоторую путаницу в моем вопросе;

Идея заключалась в том, чтобы динамически проверять каждый вход с помощью переключателя. Я использую отдельный класс проверки, чтобы все было чистым. Это краткий пример моего конечного результата:

 //Main php page if (is_validForm()) { //All input is valid, do something.. } //Separate validation class function is_validForm () { foreach ($_POST as $name => $value) { if (!is_validInput($name, $value)) return false; } return true; } function is_validInput($name, $value) { if (!$this->is_input($value)) return false; switch($name) { case email: return $this->is_email($value); break; case password: return $this->is_password($value); break; //and all other inputs } } 

Спасибо raina77ow и всем остальным!

Вы можете обрабатывать $ _POST в цикле foreach чтобы получить как имена, так и их значения, например:

 foreach ($_POST as $name => $value) { echo $name; // email, for example echo $value; // the same as echo $_POST['email'], in this case } 

Но вы не можете получить имя свойства из значения $_POST['email'] – это простая строка, и она не сохраняет свое «происхождение».

 foreach($_POST as $key => $value) { echo 'Key is: '.$key; echo 'Value is: '.$value; } 

Если вы хотите сделать это динамически, вы можете сделать это следующим образом:

 foreach ($_POST as $key => $value) { echo 'Name: ', $key, "\nValue: ", $value, "\n"; } 

Заверните свой object/array с помощью foreach :

 foreach($_POST as $key => $items) { echo $key . "<br />"; } 

Или вы можете использовать var_dump или print_r для отладки больших переменных, таких как arrays или objects :

 echo '<pre>' . print_r($_POST, true) . '</pre>'; 

Или

 echo '<pre>'; var_dump($_POST); echo '</pre>'; 

current (array_keys ($ _ POST)) должен предоставить вам то, что вы ищете. Не тестировали.

На самом деле я нашел что-то, что может сработать для вас, посмотрите на это –

http://php.net/manual/en/function.key.php

На этой странице говорится, что приведенный ниже код,

 <?php $array = array( 'fruit1' => 'apple', 'fruit2' => 'orange', 'fruit3' => 'grape', 'fruit4' => 'apple', 'fruit5' => 'apple'); // this cycle echoes all associative array // key where value equals "apple" while ($fruit_name = current($array)) { if ($fruit_name == 'apple') { echo key($array).'<br />'; } next($array); } ?> 

даст вам результат,

fruit1
fruit4
fruit5

Так просто.

Хороший опрятный способ увидеть имена форм, которые будут представлены или будут отправлены

 <?php $i=1; foreach ($_POST as $name => $value) { echo "</b><p>".$i." ".$name; echo " = <b>".$value; $i++; } ?> 

Просто отправьте форму в этот скрипт, и он покажет вам, что подано.

Вы можете использовать цикл foreach Loop для получения всех значений, которые установлены.

 foreach ($_POST AS $k=>$v){ echo "$k is $v"; } 

Ваш пример

 echo $_POST['email'].name; //output: email 

не имеет смысла, так как вы уже знаете имя ценности, к которому вы обращаетесь?