从提交的表单中删除字符串中的字符

时间:2012-03-14 16:16:28

标签: php html forms post escaping

每次发布​​POST时,我都会获得转义字符。

\ -> \\
' -> \'
" -> \"

我有一个多步骤表单,它将数据从一种形式传输到另一种形式。我将准备好的语句中的值保存在数据库中。数据库中的值当前看起来像Paul\'s House。用户应该有可能在其字符串中使用单引号和双引号。

这是一个展示逃避效果的简单示例:

<?php
echo $_POST['value'];
?>
<form action="form.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="value" value="Paul's House">
    <input type="submit" value="Next">
</form>

为什么或谁逃脱字符串?处理多个表单数据的正确方法是什么?将其保存在数据库中的正确方法是什么?我应该使用stripslashes()还是打开一个大安全漏洞?

2 个答案:

答案 0 :(得分:2)

看起来你已经启用了Magic Quotes。

http://www.php.net/manual/en/security.magicquotes.disabling.php

检查一下如何禁用。

答案 1 :(得分:0)

你必须关闭服务器中的magicquotes,否则你应该非常小心magicquotes的开/关状态。