帝国论坛帝国网站管理系统交流区帝国CMS 7.5与8.0专版PHP8.X安装程序无法进行 【本版专题贴子】  
主题:PHP8.X安装程序无法进行 [加入收藏夹]   

5160387
用户头衔:进士

精华贴   :0
发贴数   :704
经验值   :2550
注册时间:2012-12-20
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
PHP8.X安装程序无法进行
开启错误提示后显示错误如下:

Fatal error: Uncaught Error: Undefined constant "ECMS_PATH" in D:\wwwroot\ecms.xx.com\e\config\config.php:35 Stack trace: #0 D:\wwwroot\ecms.xx.com\e\install\index.php(95): include() #1 {main} thrown in D:\wwwroot\ecms.xx.com\e\config\config.php on line 35



帝国教程/插件/二开/PHP知识网:www.phpin.net
免费无弹窗小说网:www.zhaibei.com
穿衣打扮网:www.nvziba.com
2025-01-18 11:32:38 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3167
经验值   :9085
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

开启错误提示后,点配置数据库后,下一步,

Fatal error: Uncaught mysqli_sql_exception: Unknown database 'diguo2025' in /www/wwwroot/diguo8.utf8.com/upload/e/class/db/db_mysqli.php:126 Stack trace: #0 /www/wwwroot/diguo8.utf8.com/upload/e/class/db/db_mysqli.php(126): mysqli_select_db() #1 /www/wwwroot/diguo8.utf8.com/upload/e/install/data/fun.php(908): do_eUseDb() #2 /www/wwwroot/diguo8.utf8.com/upload/e/install/data/fun.php(972): eins_InstallConnectDb() #3 /www/wwwroot/diguo8.utf8.com/upload/e/install/index.php(136): eins_SetDb() #4 {main} thrown in /www/wwwroot/diguo8.utf8.com/upload/e/class/db/db_mysqli.php on line 126





帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2025-01-18 12:18:46 已设置保密 顶部 回复 引用 报告 编辑 删除

tm2014
用户头衔:探花

精华贴   :0
发贴数   :2550
经验值   :7251
注册时间:2014-11-13
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

楼上好像是数据库没有建




2025-01-18 12:28:25 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3167
经验值   :9085
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

好在这个错误,我在对帝国cms7.5 改造适应php8的时候,也遇到过。处理的方法是:修改
/e/class/db/db_mysqli.php 中的函数

//选择数据库
function do_eUseDb($dbname,$dblink,$query=0){
        if($query)
        {
                $usedb=do_dbquery_common('use '.$dbname.'',$dblink);
        }
        else
        {
                $usedb=@mysqli_select_db($dblink,$dbname);
        }
        return $usedb;
}



修改为:

//选择数据库
function do_eUseDb($dbname,$dblink,$query=0){
        if($query)
        {
                $usedb=do_dbquery_common('use `'.$dbname.'`',$dblink);
        }
        else
        {
            
                // 报告所有错误  
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);  
   
    try {  
                return  $dblink->select_db($dbname);
    // 其他数据库操作...  

    } catch (Exception $e) {  
        return false;
    }
   
   

        }
        return $usedb;
}


[该贴被修改 1 次,最后修改时间 2025-01-18 13:03:51 ]


帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2025-01-18 12:37:55 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3167
经验值   :9085
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

这样,初次安装的时候,数据库没有创建,不会抛出致命错误。

而是正常进入逻辑,开始创建



帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2025-01-18 12:39:11 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3167
经验值   :9085
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

修改后,这一步正常了。下一步的致命  和楼主的一样



Fatal error: Uncaught Error: Undefined constant "ECMS_PATH" in /www/wwwroot/diguo8.utf8.com/upload/e/config/config.php:35 Stack trace: #0 /www/wwwroot/diguo8.utf8.com/upload/e/install/index.php(95): include() #1 {main} thrown in /www/wwwroot/diguo8.utf8.com/upload/e/config/config.php on line 35

[该贴被修改 1 次,最后修改时间 2025-01-18 12:59:44 ]


帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2025-01-18 12:42:38 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3167
经验值   :9085
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

这是由于在安装程序中, ECMS_PATH 常量没有定义导致的。

在php8以后,这是致命错误。处理方法

/e/install/indes.php的开头增加  


define('ECMS_PATH',substr(dirname(__FILE__),0,-7));  




帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2025-01-18 12:56:47 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3167
经验值   :9085
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

这样,在php8 下 就正常安装完成了



帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2025-01-18 12:58:46 已设置保密 顶部 回复 引用 报告 编辑 删除

pw8
用户头衔:探花

精华贴   :0
发贴数   :8828
经验值   :22720
注册时间:2008-10-10
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

看这贴:http://bbs.phome.net/showthread-42-367463-0.html




2025-01-18 14:59:34 已设置保密 顶部 回复 引用 报告 编辑 删除

cighsen02
用户头衔:进士

精华贴   :0
发贴数   :970
经验值   :3686
注册时间:2009-09-29
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

原帖由 jiuhecai 于 2025-01-18 12:56:47 发表
这是由于在安装程序中, ECMS_PATH 常量没有定义导致的。

在php8以后,这是致命错误。处理方法

/e/install/indes.php的开头...



还可以这么写
defined('ECMS_PATH') || define('ECMS_PATH', dirname(__DIR__, 2) . DIRECTORY_SEPARATOR);



要上就上安心站长 www.axzz.cn q:365182575
2025-01-20 09:17:02 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1