stripslashes和addslashes的区别

转载 2015年07月09日 11:42:33

我们在向mysql写入数据时,比如:

mysql_query(”update table set `title`=’kuhanzhu’s blog’”);

 

  那就会出错。同asp时一样,数据库都会对单引号过敏。而addslashes在这个时候就最长面子了,跟asp的replace(”‘”,”””,”kuhanzhu’s blog”)功能一样。

PHP为了安全性,所以引入了个magic_quotes_gpc = On的功能,可以不需要做任何处理就能直接把单引号插入数据库中,那么对于Off时,则需要考虑单引号的问题了,而不是一味地信任运行环境。

magic_quotes_gpc = On时,使用了addslashes()处理后的数据在数据库中将以\’形式保存,如果此时直接输出的话,就会发现比自己期待的内容多了个\,因此stripslashes()出场了,它能把\去掉(区别于str_replace(”\”, “”,$Str))。

magic_quotes_gpc = Off时,使用了addslashes()处理后的数据在数据库中将以’形式保存,没有上面说的有\的问题,addslashes()起到插入数据不出错的作用,如果此时直接输出的话,数据正常。不需要再用stripslashes()。

addslashes()和stripslashes()正好是相反的,直接记忆:addslashes()加个\,stripslashes()去个\

那么什么时候用呢?

简单说:

当magic_quotes_gpc = On时,系统会自动处理单引号等问题,用不用addslashes()和stripslashes()都没关系,但是如果添加数据时用了addslashes(),那么显示数据时必须要stripslashes()

当magic_quotes_gpc = Off时,系统不会处理单引号等问题,所以插入数据时必须要使用addslashes(),显示数据时则不需要使用stripslashes()。

既然有了分析,做程序时要怎么办呢?根据以上两种情况,可得:

不管magic_quotes_gpc是On还是Off,咱添加数据时都用addslashes(),当On时,必须使用stripslashes(),Off时则不能用stripslashes()。

如何判断On还是Off呢?用get_magic_quotes_gpc()。

php-addslashes、stripslashes、魔术引号(字符串转义)

string addslashes ( string str) 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(\')、双引号(\")、反斜线(\\...

PHP函数篇之( mysql_real_escape_string 与 addslashes )的区别

addslashes 和 mysql_real_escape_string 都是为了使数据安全的插入到数据库中而进行的过滤,那么这两个函数到底是有什么区别呢? 首先,我们还是从PHP手册入手: ...

addslashes,mysql_real_escape_string,mysql_escape_string的区别

本文介绍的是用 mysql_real_escape_string对用户提交数据进行整理处理和通过addslashes以及mysql_escape_string这3个类似的功能函数的区别。经过转义的数据...

addslashes与mysql_real_escape_string的区别

addslashes和mysql_real_escape_string.都是为了使数据安全的插入到数据库中而进行过滤.那么这两个函数到底是有什么区别呢?? 我们今天来简单的看下.. 首先.我们还是...

addslashes()和addclashes()函数的区别和比较。

PHP addcslashes() 函数 PHP String 函数 定义和用法 addcslashes() 函数在指定的字符前添加反斜杠。 语法 addcslashes(str...
  • gayayzy
  • gayayzy
  • 2011年12月22日 14:45
  • 1006

PHP函数addslashes和mysql_real_escape_string的区别

首先:不要使用mysql_escape_string,它已被弃用,请使用mysql_real_escape_string代替它。 mysql_real_escape_string和addslashe...

魔术引用和函数addslashes()的微妙关系

魔术引用和函数addslashes()的微妙关系   注明:下面的数据均是指通过Get/Post/Cookies获得的! 1. 条件: magic_quotes_gpc=off 写...
  • mt_rand
  • mt_rand
  • 2012年01月09日 13:47
  • 193

GBK字符集下addslashes函数的注入漏洞及BUG的解决办法

大家都知道,addslashes是过滤垃圾信息的函数,如果你的PHP环境打开了魔法函数,那么addslashes这个函数将自动运行对用户提交的信 息进行过滤。但是addslashes函数在进行转义的时...

关于htmlentities 、htmlspecialchars、addslashes的使用

1、html_entity_decode():把html实体转换为字符。 Eg:$str = "just atest & 'learn to use '"; echo ht...

PHP防SQL注入不要再用addslashes和mysql_real_escape_string了

看了很多PHP网站在防SQL注入上还在使用addslashes、mysql_real_escape_string和str_replace,百度一下"PHP防注入"也同样在使用addslashes、my...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:stripslashes和addslashes的区别
举报原因:
原因补充:

(最多只允许输入30个字)