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

时间:2011-11-08 02:30:36

标签: php forms security

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

我试过这个,但相信我在某个地方看到它不安全:

<input type="text" name="name" value="<?php echo $_POST['name']; ?>" />

1 个答案:

答案 0 :(得分:5)

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

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

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

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

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