PHP不会在回显时剥离斜杠

时间:2013-03-02 02:09:51

标签: php

我希望有人能为我解决这个问题。在表单验证方面,我一直在读一本关于最佳实践的书,如果用户输入错误的值,则将表单返回给他们,并使用他们输入的数据和警告/错误消息。

我想要做的是说用户在文本框中输入以下内容:

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上找到最佳解决方案。

非常感谢您提前提供的任何帮助:)

3 个答案:

答案 0 :(得分:0)

你可以将它们结合起来以提高效率:

echo 'value="' . htmlentities(stripslashes($name)); . '"';

答案 1 :(得分:0)

您可以使用函数$ mysqli-&gt; real_escape_string($ value)。它是mysqli类的一个功能。

答案 2 :(得分:0)

我没想到的是:

<?php 
    if ($missing || $errors) {
        echo 'value="' . stripslashes(htmlentities($name)) . '"';
    } 
?>>

这似乎是目前最好的方法。

相关问题