织梦CMS建站系统,我的GD库没有开启

织梦CMS建站系统,我的GD库没有开启,第1张

这可能是由于没有加载gd库扩展所引起的

如果你是独立的服务器,可以自己操作,那么你可以去phpini中搜索extension=php_gd2dll,把它前面的;号去掉,重启IIS或者apache等其他服务器。如果你是租用的空间,那么可以找空间商,让他帮你开启

如果无法达到方法一中的条件,可以尝试着用这种方法解决一下,打开织梦data文件夹下的safe文件夹,打开inc_safe_configphp文件,然后把$safe_gdopen = '1,2,3,4,5,6,7';改为$safe_gdopen = '1,2,3,4,5,7';这样你登陆后台就不用验证码了。

你的版本是多少,解答如下:

方法一:(http://houdunwangcom/lessonhtml)

php 54没有session_register方法,所以需要在include/userloginclassphp中加入以下代码  

functionsession_register(){

    $args= func_get_args();

    foreach($argsas$key){

         $_SESSION[$key]=$GLOBALS[$key];

    }

}

方法二:

由于php 54没有session_register方法。

找开include/userloginclassphp文件,查找以下内容:

@session_register($this->keepUserIDTag);

$_SESSION[$this->keepUserIDTag] = $this->userID;

@session_register($this->keepUserTypeTag);

$_SESSION[$this->keepUserTypeTag] = $this->userType;

@session_register($this->keepUserChannelTag);

$_SESSION[$this->keepUserChannelTag] = $this->userChannel;

@session_register($this->keepUserNameTag);

$_SESSION[$this->keepUserNameTag] = $this->userName;

@session_register($this->keepUserPurviewTag);

$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;

@session_register($this->keepAdminStyleTag);

$_SESSION[$this->keepAdminStyleTag] = $adminstyle;

PutCookie(‘DedeUserID’, $this->userID, 3600 24, ‘/’);

PutCookie(‘DedeLoginTime’, time(), 3600 24, ‘/’);

替换成

global $admincachefile,$adminstyle;

if(empty($adminstyle)) $adminstyle = ‘dedecms’;

//@session_register($this->keepUserIDTag);

$_SESSION[$this->keepUserIDTag] = $this->keepUserIDTag;

$_SESSION[$this->keepUserIDTag] = $this->userID;

//@session_register($this->keepUserTypeTag);

$_SESSION[$this->keepUserTypeTag] = $this->keepUserTypeTag;

$_SESSION[$this->keepUserTypeTag] = $this->userType;

// @session_register($this->keepUserChannelTag);

$_SESSION[$this->keepUserChannelTag] = $this->keepUserChannelTag;

$_SESSION[$this->keepUserChannelTag] = $this->userChannel;

//@session_register($this->keepUserNameTag);

$_SESSION[$this->keepUserNameTag] = $this->keepUserNameTag;

$_SESSION[$this->keepUserNameTag] = $this->userName;

//@session_register($this->keepUserPurviewTag);

$_SESSION[$this->keepUserPurviewTag] = $this->keepUserPurviewTag;

$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;

// @session_register($this->keepAdminStyleTag);

$_SESSION[$this->keepAdminStyleTag] = $this->keepAdminStyleTag;

$_SESSION[$this->keepAdminStyleTag] = $adminstyle;

PutCookie(‘DedeUserID’, $this->userID, 3600 24, ‘/’);

PutCookie(‘DedeLoginTime’, time(), 3600 24, ‘/’);

方法三:

文件夹权限问题

验证码无法显示和自动登出的原因是因为date文件夹和date下面的sessions文件夹的写入权限没有!

Sessions是记录(传送)登入信息的文件夹, 它无法生成文件, 自然就无法登陆而跳转回来。

解决办法如下:

修改date和date下面的sessions文件夹的权限,(可以尝试在FLASHFXP上修改,但可能会造成失败)

所以建议直接在主机的控制面板里面修改date和sessions的权限为777(writen)

方法四:

重新安装dedecms然后用数据库备份还原数据库

方法五(本人所用):

phpini配置文件中

sessionbug_compat_42 = 1

sessionbug_compat_warn = 1

这是php430以后才有的安全设置。出于安全的考虑php不建议你打开register_globals开关但若关闭了register_globals(默认)时,session变量将不被自动转换成全局变量此时传统的session变量注册方式session_register就失去意义了(session_register是把一个全局变量注册成session变量),因为访问session变量需要使用$_SESSION数组。因此只需直接操作$_SESSION数组就可以了,而无须再用session_register注册了。以免产生混乱开关sessionbug_compat_42 和 sessionbug_compat_warn 就是为了检查此类情况而设置的

更多问题到问题求助专区(http://bbshoudunwangcom/)

记得PHP默认没有开启GD库的支持,需要自行开启。于是就打开PHP安装目录/phpini配置文件,找到如下内容:

;extension=php_gd2dll

按照网上搜索得来的方法,去掉前面表示注释的符号";",然后重新启动Apache,结果发现还是不行,通过phpinfo()函数仍然无法看到任何与GD库相关的信息。看到网上很多关于「PHP开启GD库」的文章,都是直接说一句「去掉xxx前面的分号」,就没有下文了。事实证明,仅仅这么做明显是不行的,至少官方zip版本的php这么配置是不行的。

于是就只好自己检查phpini的配置内容,最后发现其中有如下一行:

;extension_dir = "ext" //这里是windows的

linux的好像是 ;extension_dir = "/"

很明显,extension_dir指令被注释掉了,导致php连扩展库的ext都找不到,自然不可能找到扩展库中的php_gd2dll了,gd库支持自然也没有开启。

于是,照猫画虎地去掉extension_dir指令前面的注释符号";",再次重启服务器,结果……还是不行。这不科学啊,难道extension_dir指令的值"ext"有问题?

PHP官方说,PHP5搜索扩展库的默认位置为C:\php5,于是尝试着按照官方的说法,仍然让extension_dir保持被注释掉的现状,在C盘下新建了一个php5文件夹,然后将php_gd2dll复制进去,再次重新启动服务器,结果……还是不行。

此时,通过phpinfo()函数查看得知,在phpini中没有开启extension_dir指令时,phpinfo()上的extension_dir显示的值居然是C:\php——难道官方的说明文档也出错了,或者说PHP 54这个版本已经作了变更、而官方文档还没有及时更新?其他的先不管那么多了,先试试C:\php行不行,于是将php5重命名为php,其他一切照旧,接着重新启动,然后通过phpinfo()函数查看到gd库已经开启了。——这至少证明,在PHP 5419中,扩展库的默认搜索位置为C:\php。

当然,众所周知,extension_dir指令是支持绝对路径的,上面折腾半天,主要是为了搞明白extension_dir指令的作用与影响。最后还是将extension_dir前面的注释符号";"去掉,然后将其值改为ext的绝对路径,详细代码如下:

extension_dir = "F:/419/ext" //windows写法。。。因情而定

综上所述,对于php官方版而言,要开启gd库支持,不仅要去掉extension=_gd2dll前的注释符号,还要去掉extension_dir指令前的注释符号,并将其值作对应修改。当然,不仅仅是gd库,如果需要开启其他PHP扩展库,例如php_mysql、php_mysqli,方法也是类似的。

这个貌似在后台系统设置-过滤设置-里有相应的选项,勾选上就可以了吧。。。 希望我的回答能解决你的问题!

ps:直接的办法就是悠文章模板,直接将相应的验证码部分去掉就可以了。。。

下载一个8UFTP软件,前提你知道FTP的地址,用户名以及密码,知道这些你就可以登录了。

然后连接进去,找到对应的文件夹进行相应提示操作就可以了。

FTP对应的信息可以到你的服务器主机管理里面查看。或者问你的网站负责人去要。。

为了方便大家解决问题,在此整理了三个经典的解决方案。

注:执行方案一和方案二的前提是支持GB库。

方案一:赋予sessions读、写、可执行的权限

修改根目录下/data/sessions/的sess_文件修改权限为777(命令:chmod 777 filename)。

方案二:将vdimgckphp替换法

替换前请将当前的vdimgckphp备份。找回相同版本的DEDE安装包,找到/include/vdimgckphp 文件,并用其替换当前站点的vdimgckphp文件。

方案三:去掉登陆验证码代码

如果上面的两种解决办法都解决不了,那就直接去掉验证码功能。是修改data\safe\inc_safe_configphp 配置文件。

方法:$safe_gdopen = ’1,2,3,5,6′; 这个就是系统哪些地方开启验证码。与[验证码安全设置]界面是一对一的关系。

所以,如果当我们管理后台想关闭验证码(如果验证码无法正确输入,不支持GB库)的时候,只需要打开data\safe\inc_safe_configphp 将$safe_gdopen = ’1,2,3,5,6′; 中的6删除即可。

个人觉得要不要验证码都无所谓

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 织梦CMS建站系统,我的GD库没有开启

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情