Function set_magic_quotes_runtime() is deprecated 问题笔记

作者:Jeen 发布于:2013-4-21 20:05 Sunday 分类:芝麻绿豆

最近看一个轻量级的框架CI由于习惯性的依赖中文资料,所以用的是v1.5.3

简单的安装后 访问 出现提示 Function set_magic_quotes_runtime() is deprecated

上网搜一下,发现原因 php 5.3以上的版本废弃了 set_magic_quotes_runtime()

解决方法:

根据错误提示信息,找到
set_magic_quotes_runtime(0);
替换为:
ini_set(“magic_quotes_runtime”, 0);

即可。

了解了下其作用,不太清楚  记录一下备忘

在php.ini的配置文件中,有个布尔值的设置,就是magic_quotes_runtime,当它打开时,php的大部分函数自动的给从外部引入的(包括数据库或者文件)数据中的溢出字符加上反斜线。

当然如果重复给溢出字符加反斜线,那么字符串中就会有多个反斜线,所以这时就要用set_magic_quotes_runtime()与 get_magic_quotes_runtime()设置和检测php.ini文件中magic_quotes_runtime状态。

为了使自己的程序不管服务器是什么设置都能正常执行。可以在程序开始用get_magic_quotes_runtime检测设置状态秋决定是否要手工处理,或者在开始(或不需要自动转义的时候)用set_magic_quotes_runtime(0)关掉。

magic_quotes_gpc设置是否自动为GPC(get,post,cookie)传来的数据中的’”\加上反斜线。可以用 get_magic_quotes_gpc()检测系统设置。如果没有打开这项设置,可以使用addslashes()函数添加,它的功能就是给数据库查 询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)

标签: php ci

发表评论:

©2010-2024 Jeen All Rights Reserved.Powered by emlog 京ICP备15058100号-1