php.ini register_globals must is Off!
换了网站的空间,我遇到了这个问题。首先,我是到谷歌上去搜索一下比较准确的结果:
结果一
php.ini register_globals must is Off!解决方法 DEDE5.6(转)
2010-04-20 14:22
php.ini register_globals must is Off! 3月24日,很多站长的后台出现了这段提示,或者是织梦(dedecms)后台栏目消失。出现这个提示的多是使用的织梦(dedecms)系统。原因是dedecms在24日进行了在线更新。 下面提供几种解决方案 .......................................................................................................................................................... 解决php.ini register_globals must is Off!方案1. 替换代码! 很多朋友在dedecms论坛求救,本人现在提供一下代码!替换了就能成功进入后台! 找到 根目录/include/common.inc.php 用Dreamweaver或者EditPlus或记事本打开!复制以下代码替换!保存!上传覆盖即可! 如不放心可以先备份原来的! <?php //error_reporting(E_ALL); error_reporting(E_ALL || ~E_NOTICE); define('DEDEINC', ereg_replace("[/\\]{1,}", '/', dirname(__FILE__) ) ); define('DEDEROOT', ereg_replace("[/\\]{1,}", '/', substr(DEDEINC,0,-8) ) ); define('DEDEDATA', DEDEROOT.'/data'); define('DEDEMEMBER', DEDEROOT.'/member'); define('DEDETEMPLATE', DEDEROOT.'/templets'); //检查和注册外部提交的变量 foreach($_REQUEST as $_k=>$_v) { if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) ) { exit('Request var not allow!'); } } function _RunMagicQuotes(&$svar) { if(!get_magic_quotes_gpc()) { if( is_array($svar) ) { foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v); } else { $svar = addslashes($svar); } } return $svar; } foreach(Array('_GET','_POST','_COOKIE') as $_request) { foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v); } //系统相关变量检测 if(!isset($needFilter)) { $needFilter = false; } $registerGlobals = @ini_get("register_globals"); $isUrlOpen = @ini_get("allow_url_fopen"); $isSafeMode = @ini_get("safe_mode"); if( eregi('windows', @getenv('OS')) ) { $isSafeMode = false; } //Session保存路径 $sessSavePath = DEDEDATA."/sessions/"; if(is_writeable($sessSavePath) && is_readable($sessSavePath)) { session_save_path($sessSavePath); } //系统配置参数 require_once(DEDEDATA."/config.cache.inc.php"); //转换上传的文件相关的变量及安全处理、并引用前台通用的上传函数 if($_FILES) { require_once(DEDEINC.'/uploadsafe.inc.php'); } //数据库配置文件 require_once(DEDEDATA.'/common.inc.php'); //php5.1版本以上时区设置 //由于这个函数对于是php5.1以下版本并无意义,因此实际上的时间调用,应该用MyDate函数调用 if(PHP_VERSION > '5.1') { $time51 = $cfg_cli_time * -1; @date_default_timezone_set('Etc/GMT'.$time51); } $cfg_isUrlOpen = @ini_get("allow_url_fopen"); //用户访问的网站host $cfg_clihost = 'http://'.$_SERVER['HTTP_HOST']; //站点根目录 $cfg_basedir = eregi_replace($cfg_cmspath.'/include$','',DEDEINC); if($cfg_multi_site == 'Y') { $cfg_mainsite = $cfg_basehost; } else { $cfg_mainsite = ''; } //模板的存放目录 $cfg_templets_dir = $cfg_cmspath.'/templets'; $cfg_templeturl = $cfg_mainsite.$cfg_templets_dir; //cms安装目录的网址 $cfg_cmsurl = $cfg_mainsite.$cfg_cmspath; //插件目录,这个目录是用于存放计数器、投票、评论等程序的必要动态程序 $cfg_plus_dir = $cfg_cmspath.'/plus'; $cfg_phpurl = $cfg_mainsite.$cfg_plus_dir; $cfg_data_dir = $cfg_cmspath.'/data'; $cfg_dataurl = $cfg_mainsite.$cfg_data_dir; //会员目录 $cfg_member_dir = $cfg_cmspath.'/member'; $cfg_memberurl = $cfg_mainsite.$cfg_member_dir; //专题列表的存放路径 $cfg_special = $cfg_cmspath.'/special'; $cfg_specialurl = $cfg_mainsite.$cfg_special; //附件目录 $cfg_medias_dir = $cfg_cmspath.$cfg_medias_dir; $cfg_mediasurl = $cfg_mainsite.$cfg_medias_dir; //上传的普通图片的路径,建议按默认 $cfg_image_dir = $cfg_medias_dir.'/allimg'; //上传的缩略图 $ddcfg_image_dir = $cfg_medias_dir.'/litimg'; //用户投稿图片存放目录 $cfg_user_dir = $cfg_medias_dir.'/userup'; //上传的软件目录 $cfg_soft_dir = $cfg_medias_dir.'/soft'; //上传的多媒体文件目录 $cfg_other_medias = $cfg_medias_dir.'/media'; //软件摘要信息,****请不要删除本项**** 否则系统无法正确接收系统漏洞或升级信息 $cfg_version = 'V55_GBK'; $cfg_soft_lang = 'gb2312'; $cfg_soft_public = 'base'; $cfg_softname = '织梦内容管理系统'; $cfg_soft_enname = 'DedeCms'; $cfg_soft_devteam = 'Dedecms官方团队'; //文档的默认命名规则 $art_shortname = $cfg_df_ext = '.html'; $cfg_df_namerule = '{typedir}/{Y}/{M}{D}/{aid}'.$cfg_df_ext; //新建目录的权限,如果你使用别的属性,本程不保证程序能顺利在Linux或Unix系统运行 if(isset($cfg_ftp_mkdir) && $cfg_ftp_mkdir=='Y') { $cfg_dir_purview = '0755'; } else { $cfg_dir_purview = 0755; } //会员是否使用精简模式(已禁用) $cfg_mb_lit = 'N'; //特殊全局变量 $_sys_globals['curfile'] = ''; $_sys_globals['typeid'] = 0; $_sys_globals['typename'] = ''; $_sys_globals['aid'] = 0; if(emptyempty($cfg_addon_savetype)) { $cfg_addon_savetype = 'Ymd'; } if($cfg_sendmail_bysmtp=='Y' && !emptyempty($cfg_smtp_usermail)) { $cfg_adminemail = $cfg_smtp_usermail; } if(!isset($cfg_NotPrintHead)) { header("Content-Type: text/html; charset={$cfg_soft_lang}"); } //引入数据库类 require_once(DEDEINC.'/dedesql.class.php'); //全局常用函数 require_once(DEDEINC.'/common.func.php'); ?> ............................................................................................................................................................ 解决php.ini register_globals must is Off!方案2. 下面是解决办法,引自天涯版主帖子。 ====================================================== 如果是独立服务器的用户可以修改php配置文件中的php.ini,将register_globals=On改为register_globals=Off 同时把session.auto_start=1改成session.auto_start=0,然后重启Apache. 如果是虚拟主机的用户,尽可能的通知空间商让其对配置进行修改,或者可以尝试ini_set('session.auto_start',0)来. 如果实在不行,那只有采用最后的办法直接去include/common.inc.php中将 ---- //禁止 session.auto_start if ( ini_get('session.auto_start') != 0 ) { exit('php.ini session.auto_start must is 0 ! '); } ---- 删除即可. ================== 建议联系空间商! .......................................................................................................................................... 解决php.ini register_globals must is Off!方案3. 把以前的include、plus两个文件夹的文件传到服务器上覆盖下,就可以进了。 连升级提示都没了。。现在后台运行正常、添加文章、更新一切正常。 |
结果二
安装dedecms5.6显示php.ini register_globals must is Off!解决
期待已久的织梦dedecms5.6版终于发布了,感谢织梦团队的努力。
在本地新安装用户会出现“php.ini register_globals must is Off!”
解决办法如下:
一、打开php服务配置文件 php.ini
查找:register_globals = On
改为:register_globals = Off
重启acahe即可!
二、修改dede程序
打开include文件夹中的common.inc.php文件
删除其中
//开启register_globals会有诸多不安全可能性,因此强制要求关闭register_globals
if ( ini_get('register_globals') )
{
exit('php.ini register_globals must is Off! ');
}
这段代码,重启acahe即可。
最后:用了上面第一个结果的方法没有管用,然后我看到了第二个结果的方法要求删除include文件夹中的common.inc.php文件里面的内容和结果一的不同:
结果一里面要求删除的是:
----
//禁止 session.auto_start
if ( ini_get('session.auto_start') != 0 )
{
exit('php.ini session.auto_start must is 0 ! ');
}
----
结果二要求删除的是:
//开启register_globals会有诸多不安全可能性,因此强制要求关闭register_globals
if ( ini_get('register_globals') )
{
exit('php.ini register_globals must is Off! ');
}
于是我把common.inc.php文件中这两段代码全删除了。
问题解决!
本文由:赵建杰的博客发布_原文地址:http://www.zhaojianjie.com/post/register_globals.html欢迎转载请保留地址☺