安全地通过PHP重新填写发布的表单数据

Die*_*xel 2 php forms security

如果出现错误,如何通过PHP重新填充发布的表单数据.我有一个联系表格,用户输入一堆信息,如果一个字段没有验证,他就会丢失所有内容.如何阻止这种情况发生并确保其安全?

我试过这个,但相信我读到的地方不安全:

<input type="text" name="name" value="<?php echo $_POST['name']; ?>" />
Run Code Online (Sandbox Code Playgroud)

MrT*_*ick 5

一个问题是,如果$_POST['name']包含a ",则该值可以"转义"出来并重写页面内容.

另一个是,在打开严格错误检查的情况下,访问不存在的数组索引将引发Notice错误.

以下是重新填写表单数据的一种安全方法:

<input type="text" name="name" value="<?php echo isset($_POST['name']) ? htmlspecialchars($_POST['name']) : ''; ?>" />
Run Code Online (Sandbox Code Playgroud)

我个人建议通过一个框架来处理表单显示和验证,比如Zend Framework中的Zend_Form.(您不必更改其他所有内容,只需使用表单内容)它使编写安全可读的代码变得更加容易.