php 编辑"关于我们"1,在存储时,对数据进行转义,使这些需要转义的符号,转义后存入数据库 。读取时无需处理 。
2.在读取时进行处理
if(content.contains("")){
content = content.replace("'", "'");
content = content.replace(""", "\"");
content = content.replace("", "");
content =content.replace("", "");
content =content.replace("", "");
}
如何自动转义字符串在PHP SQL查询在处理MySQL和GET、POST的数据时,常常要对数据的引号进行转义操作 。
PHP中有三个设置可以实现自动对’(单引号),”(双引号) , \(反斜线)和 NULL 字符转转 。
php称之为魔术引号,这三项设置分别是
magic_quotes_gpc
影响到 HTTP 请求数据(GET,POST 和 COOKIE) 。不能在运行时改变 。在 PHP 中默认值为 on 。
这个开启时 , 通过GET,POST,COOKIE传递的数据会自动被转义 。
如 test.php?id=abc'de"f
echo $_GET['id'];#会得到 abc\'de\"f
magic_quotes_gpc=On; 这个开启了,对写入数据库是没有影响的,比如 上面的$_GET['id']写到数据库里面,依然是 abc'de"f ,
相反,如果magic_quotes_gpc=Off; 那么字符中要带有引号(不管单引号还是双引号),直接写入mysql都会直接变成空白
但是,如果你将它写入文档 , 而非mysql 。那么它将是 abc\'de\"f
magic_quotes_runtime
如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件 , 所返回的数据都会被反斜线转义 。该选项可在运行的时改变,在 PHP 中的默认值为 off 。
magic_quotes_sybase
如果打开的话,将会使用单引号对单引号进行转义而非反斜线 。此选项会完全覆盖 magic_quotes_gpc 。如果同时打开两个选项的话,单引号将会被转义成 ” 。而双引号、反斜线 和 NULL 字符将不会进行转义 。
我表单内容本来是:img alt=”" width=”400″ height=”300″ src=https://www.04ip.com/post/”/Upfiles/201105/images/1306657040.jpg” /
img alt=\”\” width=\”400\” height=\”300\” src=https://www.04ip.com/”/Upfiles/201105/images/1306657040.jpg/” /
对策一:修改php.ini文件(修改php.ini这个方法就不说了,大家可以google下)
对策二:把转义的给取消了
第一步:找到你提交的数据比如$_POST['content'] , 将其改成$content=stripslashes($_POST['content']);
第二步:以后在使用$POST['content']的地方都换成$content
第三步:提交到数据库,数据库储存还是正常的:img alt=”" width=”400″ height=”300″ src=https://www.04ip.com/post/”/Upfiles/201105/images/1306657040.jpg” /读出来又成了
img alt=\”\” width=\”400\” height=\”300\” src=https://www.04ip.com/”/Upfiles/201105/images/1306657040.jpg/” /(这个应该知道怎么解决了吧?要不我再罗嗦下吧)
第四步:将数据库读取的内容再用stripslashes()过滤一下 。
stripslashes()这个函数 ,删除由addslashes()函数添加的反斜杠 。用于清理从数据库或 HTML 表单中取回的数据
(
PHP页面中如果不希望出现以下情况:
单引号被转义为 \'
双引号被转义为 \"
那么可以进行如下设置以防止:
在php.ini中设置:magic_quotes_gpc = Off)
总结如下:
1. 对于magic_quotes_gpc=on的情况,
我们可以不对输入和输出数据库的字符串数据作
addslashes()和stripslashes()的操作,数据也会正常显示 。
如果此时你对输入的数据作了addslashes()处理,
那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠 。
2. 对于magic_quotes_gpc=off 的情况
必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出
推荐阅读
- 移动电视宽带欠费怎么交,移动电视欠费怎样登录交费
- 如何退回ios充值的钱,如何退回ios充值的钱微信
- 直播伴侣授权开通,直播伴侣如何设置管理员
- vs如何打开vb.net vs如何打开asp项目
- postgresqlprivate的简单介绍
- 研究gis在水土保持方面的目的,gis在水利工程中的应用
- vb.net数据控件 vb数据表格控件
- u盘打不开文件损坏怎么办,u盘文件无法打开怎么修复
- python爬虫个人成绩,python 爬虫分析