我希望有人能帮我把这事说清楚。我读过一本关于表单验证的最佳实践的书,书中提到,如果用户输入了错误的值,则将表单返回给他们,并返回带有警告/错误消息的数据。
我想要做的是,假设用户在文本框中输入以下内容:
hello " there 我想在文本框中返回上面的内容。现在,当我使用下面的代码时,它会添加一个斜杠。
<input name="name" id="name" type="text" class="formbox"
    <?
        php if ($missing || $errors) {
            echo 'value="' . htmlentities($name) . '"';
        } 
    ?>
>我考虑做的是这样的:
<input name="name" id="name" type="text" class="formbox"
    <?
        php if ($missing || $errors) {
            $name = stripslashes($name);
            echo 'value="' . htmlentities($name) . '"';
        } 
    ?>
>虽然上面的方法有效,但它的效率似乎很低。如果我只使用'stripslashes‘,那么“之后的任何内容都会被删除。目前,表单只是在检查自己,当用户单击提交时,表单会重新加载,If语句会捕获任何帖子,然后检查是否有任何缺少的字段。
我希望这一切都是有意义的,因为我一直无法在SO和Google上找到最佳解决方案。
非常感谢事先提供的帮助:)
发布于 2013-03-02 10:19:23
我没想到要做的是:
<?php 
    if ($missing || $errors) {
        echo 'value="' . stripslashes(htmlentities($name)) . '"';
    } 
?>>这似乎是目前最好的方法。
发布于 2013-03-02 10:15:33
您可以将它们组合在一起,以提高效率:
echo 'value="' . htmlentities(stripslashes($name)); . '"';发布于 2013-03-02 10:17:07
您可以使用函数$mysqli->real_escape_string($value)。它是mysqli类的一个函数。
https://stackoverflow.com/questions/15169900
复制相似问题