首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP在回显时不剥离斜杠

PHP在回显时不剥离斜杠
EN

Stack Overflow用户
提问于 2013-03-02 10:09:51
回答 3查看 83关注 0票数 1

我希望有人能帮我把这事说清楚。我读过一本关于表单验证的最佳实践的书,书中提到,如果用户输入了错误的值,则将表单返回给他们,并返回带有警告/错误消息的数据。

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

代码语言:javascript
运行
复制
hello " there 

我想在文本框中返回上面的内容。现在,当我使用下面的代码时,它会添加一个斜杠。

代码语言:javascript
运行
复制
<input name="name" id="name" type="text" class="formbox"
    <?
        php if ($missing || $errors) {
            echo 'value="' . htmlentities($name) . '"';
        } 
    ?>
>

我考虑做的是这样的:

代码语言:javascript
运行
复制
<input name="name" id="name" type="text" class="formbox"
    <?
        php if ($missing || $errors) {
            $name = stripslashes($name);
            echo 'value="' . htmlentities($name) . '"';
        } 
    ?>
>

虽然上面的方法有效,但它的效率似乎很低。如果我只使用'stripslashes‘,那么“之后的任何内容都会被删除。目前,表单只是在检查自己,当用户单击提交时,表单会重新加载,If语句会捕获任何帖子,然后检查是否有任何缺少的字段。

我希望这一切都是有意义的,因为我一直无法在SO和Google上找到最佳解决方案。

非常感谢事先提供的帮助:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-02 10:19:23

我没想到要做的是:

代码语言:javascript
运行
复制
<?php 
    if ($missing || $errors) {
        echo 'value="' . stripslashes(htmlentities($name)) . '"';
    } 
?>>

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

票数 0
EN

Stack Overflow用户

发布于 2013-03-02 10:15:33

您可以将它们组合在一起,以提高效率:

代码语言:javascript
运行
复制
echo 'value="' . htmlentities(stripslashes($name)); . '"';
票数 0
EN

Stack Overflow用户

发布于 2013-03-02 10:17:07

您可以使用函数$mysqli->real_escape_string($value)。它是mysqli类的一个函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15169900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档