织梦程序“php.ini register_globals must is Off!”的解决方法

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两个文件夹的文件传到服务器上覆盖下,就可以进了。

连升级提示都没了。。现在后台运行正常、添加文章、更新一切正常。



最后个方法
如果上面方法解决不了,请下载本站解决“php.ini register_globals must is Off!” 的文件:

下载文件 点击下载此文件

下载后解压缩,将压缩出来的文件覆盖 include/common.inc.php 文件即可。



文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 2 | 引用: 0 | 查看次数: 869
回复回复白水[2010-07-26 11:30 PM | del]
博主好人, 终于用第三种方法解决了!感谢
回复回复老七[2010-04-27 02:26 PM | del]
哇。技术文。。博主好忙。。
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭