PHP | 通过$ _POST []获取输入名称

use*_*560 10 php post properties

HTML示例:

  <form method="post" id="form" action="form_action.php">
    <input name="email" type="text" />
  </form> 
Run Code Online (Sandbox Code Playgroud)

用户填写输入字段:dfg@dfg.com

echo $_POST['email']; //output: dfg@dfg.com
Run Code Online (Sandbox Code Playgroud)

表单中每个输入的名称和值将发送到服务器.有没有办法获得名称属性?所以像..

echo $_POST['email'].name; //output: email
Run Code Online (Sandbox Code Playgroud)

编辑:澄清对我的问题的一些困惑;

我们的想法是使用交换机动态验证每个输入.我使用一个单独的验证类来保持一切清洁.这是我最终结果的一个简短示例:

//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
        }
    }
Run Code Online (Sandbox Code Playgroud)

感谢raina77ow和其他人!

rai*_*7ow 19

您可以在foreach循环中处理$ _POST 以获取名称及其值,如下所示:

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

但是你无法从$_POST['email']值中获取属性的名称- 它是一个简单的字符串,并且它不存储它的"原点".

  • 但是要注意大规模分配攻击. (7认同)