首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条纹斜杠是干什么用的?

问条纹斜杠是干什么用的?
EN

Stack Overflow用户
提问于 2012-12-13 05:55:16
回答 3查看 18.5K关注 0票数 6

可能重复: 字符串

最近,我一直在阅读有关防止SQL注入的文章,我试图在不同的函数之间培养一些理解的感觉,这样我就可以学习基础知识了。

我读过关于mysql_real_escape_string的文章,我知道它基本上是转义它认为“特殊”的字符,这样它就不会对SQL语法感到困惑了?

现在,假设这至少在某种程度上是正确的--是否需要将stripslashes函数与mysql_real_escape_string结合使用?我想知道stripslashes是什么,它是干什么用的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-13 06:00:22

如果您在使用stripslashes之后立即对输入使用mysql_real_escape_string,那么您将有效地撤销它。使用stripslashes可能还有其他原因,但在我的例子中,我只需要它来消除魔法引用的恐怖。它实际上与addslashes正好相反。

addslashes不一定像mysql_real_escape_string那样转义输入,而且它们不能用于相同的目的。

甚至比mysql_*更好的是,您应该阅读使用准备好的语句(如PDO中的语句)。然后,您甚至不必担心mysql_*或stripslashes (除了神奇的引号)。

票数 12
EN

Stack Overflow用户

发布于 2012-12-13 06:01:10

函数stripslashes()将取消转义用反斜杠\转义的字符。它通常用于通过addslashes()转义的字符串,或者如果您的magic_quotes配置启用了magic_quotes。

当使用SQL-转义函数(如mysql_real_escape_string() )时,不需要使用stripslashes(),因为MySQL-适配器只会在插入数据库时转义值--斜杠不会保留在实际值中。如果要对已经用mysql_real_escape_string()转义的变量使用mysql_real_escape_string(),它将删除斜杠,就好像它是使用addslashes()转义的一样--不过这是毫无意义的。

如果您的目标是防止SQL注入,我强烈建议您研究MySQLi或PDO,而不是旧的mysql_方法。MySQLi和PDO都提供了准备好的语句,如果使用得当,这些语句将防止SQL注入,而无需记住调用特殊的转义函数,或者担心您的数据是否会被修改。

票数 4
EN

Stack Overflow用户

发布于 2012-12-13 06:02:31

条纹斜杠函数用于Un-quotes a quoted string

例子:

代码语言:javascript
复制
<?php
echo stripslashes("how\'s going on?");
?>

上述代码的输出如下:

代码语言:javascript
复制
how's going on?

欲知更多详情:

http://php.net/manual/en/function.stripslashes.php

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

https://stackoverflow.com/questions/13853820

复制
相关文章

相似问题

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