无需 _POST 美元即可获得价值并转义 html


Getting value without $_POST and escape html

我有一个从display()方法调用的表单类。然后 display() 方法通过 $_POST 方法获取名称、电子邮件、密码等的值。但我想得到价值的名称,没有 _POST 美元。并且还想转义html。是否有可能在没有 $_POST 然后转义 html 的情况下获得价值。像这个 formet 类名::get('name');

public function display()
{
    $newform=new Form();
 // Input::get('name');
    $newform->setvalue($_POST['name']);
    $name=$newform->getvalue();
    $newform->setvalue($_POST['email']);
    $b=$newform->getvalue();
    $newform->setvalue($_POST['pass']);
    $c=$newform->getvalue();
    $newform->setvalue($_POST['rpass']);
    $d=$newform->getvalue();
    $newform->setvalue($_POST['phone']);
    $e=$newform->getvalue();
}

<?php 
class Form
{
private $value;

public  function setvalue($value)
{
    $this->value=$value;
}

public function getvalue()
    {
        $a=$this->value;
        return $a;
    }
}

我所知,您不喜欢在代码中使用$_POST,但愿意有一个专门用于获取$_POST值的类。所以我创建了一个类,它接受帖子并返回一个$_POST值数组。

$newform = new Form();
echo "<pre>";
var_dump($newform->getValue());

class Form{
    private $value = array();
    function __construct(){
        foreach($_POST as $k=>$v)
            $this->value[$k] = $v;// here you can use some validation or escapes
    }
    public function getValue(){
        return $this->value;
    }
}

可能,但是 $_POST 有什么问题?

不使用 $_POST,您可以直接从 HTTP 请求标头获取表单数据。查看此官方文档

http://php.net/manual/en/function.http-get-request-body.php