PHP中stripslashes和addslashes的使用
向mysql写入数据时,如:mysql_query("update tableName set `title`='goaler's blog'");
这个时候,PHP将会报错,ASP中处理时也一样。
因为数据库对单引号过敏。
ASP中需要进行replace("'","''",str);
而PHP中则可以直接使用addslashes。
ASP问题这里暂不考虑,本文要说的是PHP相关的stripslashes和addslashes。
PHP考虑到其安全性,引入了magic_quotes_gpc = On/Off 这个参数,可以在不做任何处理的情况下就直接将含有单引号的数据插入数据库中。如果magic_quotes_gpc = Off,需要考虑单引号的问题了,不能一味地信任其运行环境。
当magic_quotes_gpc = On时,使用addslashes()处理后的数据在数据库中将以\'形式保存,如果此时直接输出的话,就会发现比自己原先输入的内容多了个(反斜杠)\,这时就需要用到stripslashes()了,它能把addslashes()处理时自动加上去的(反斜杠)\去掉。这跟区别于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()。
相关文档:
1、到微软官方去下载新的驱动,下载地址如下:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=ccdf728b-1ea0-48a8-a84a-5052214caad9
官方文档有描述:
Refer to the documentation that is installed with the driver for a description of the new features in this ......
昨天在看我的google快讯时看到了php中的这个函数,发现我好像对这个函数不是特别的了解吗
查看了手册,发现了这个函数主要是转义了数据库中的特殊字符,比如 ' 单引号 " 双引号等在数据库中的特殊的字符
当然了这个addslashes使用是要先检查magic_quotes_gpc这个的系统配置了,如果配置了就必须不能在使用了,如果两 ......
sink按:今天是周末所以看了下书。因为我一直认为无论多忙,无论忙什么,每个周应该给自己一个有阳光的下午,带上一杯饮品,看着杂志或者著作。看的是《程序员2009精华本》,惊奇的发现PHP5.3已经出现,而那篇文章写得很好,故网上搜索了下并转载过来。
毫无疑问,如今PHP已经成为WEB开方当中最热门的技术之一。根据nexen. ......
PHP字符串函数大全
AddSlashes: 字符串加入斜线。
bin2hex: 二进位转成十六进位。
Chop: 去除连续空白。
Chr: 返回序数值的字符。
chunk_split: 将字符串分成小段。
convert_cyr_string: 转换古斯拉夫字符串成其它字符串。
crypt: 将字符串用 DES 编码加密。
echo: 输出字符串。
explode: 切开字符串。
flush: 清 ......
年前帮sw666迁移网站到我们服务器,结果,批发中心两张图片不显示,商品添加的缩略图不显示,由于第一次搭PHP环境,所以照着网上的教程一步步搞,搭好后能访问,但就是图片有问题。怎么弄都搞不定
前几天周尚辉大哥说是gd库的问题,我就配置了下php.ini文件,改成支持了gd库,后面要查看是否有gd库,编写php.php文件
< ......