我正在使用PHP 5.5.12的最新WAMPServer64。
我做了什么:从网络服务器(运行PHP 5.4.16)我已经将modx文件夹复制到localhost,然后我复制了整个数据库。我还通过manager/includes/confic.inc.php
相应地更改了数据库凭据。
打开经理登录时,我看到以下内容:
不推荐使用:mysql_connect():不推荐使用mysql扩展,将来会删除它:在第93行的\ manager \ includes \ extenders \ dbapi.mysql.class.inc.php中使用mysqli或PDO
当我尝试登录时,经理没有出现,我收到一堆错误,php_error.log的内容:
PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in manager\includes\extenders\dbapi.mysql.class.inc.php on line 93
PHP Stack trace:
PHP 1. {main}() manager\processors\login.processor.php:0
PHP 2. DBAPI->escape() manager\processors\login.processor.php:51
PHP 3. DBAPI->connect() manager\includes\extenders\dbapi.mysql.class.inc.php:156
PHP 4. mysql_connect() manager\includes\extenders\dbapi.mysql.class.inc.php:93
PHP Notice: Undefined index: captcha_code in manager\processors\login.processor.php on line 53
PHP Stack trace:
PHP 1. {main}() manager\processors\login.processor.php:0
PHP Notice: Undefined index: rememberme in manager\processors\login.processor.php on line 54
PHP Stack trace:
PHP 1. {main}() manager\processors\login.processor.php:0
PHP Notice: Undefined variable: allowed_ip in manager\processors\login.processor.php on line 134
PHP Stack trace:
PHP 1. {main}() manager\processors\login.processor.php:0
PHP Notice: Undefined variable: allowed_days in manager\processors\login.processor.php on line 148
PHP Stack trace:
PHP 1. {main}() manager\processors\login.processor.php:0
PHP Notice: Undefined variable: newloginerror in manager\processors\login.processor.php on line 224
PHP Stack trace:
PHP 1. {main}() manager\processors\login.processor.php:0
PHP Warning: Cannot modify header information - headers already sent by (output started at manager\processors\login.processor.php:54) in manager\processors\login.processor.php on line 298
PHP Stack trace:
PHP 1. {main}() manager\processors\login.processor.php:0
PHP 2. setcookie() manager\processors\login.processor.php:298
PHP Notice: Undefined variable: sql in manager\includes\extenders\dbapi.mysql.class.inc.php on line 276
PHP Stack trace:
PHP 1. {main}() manager\processors\login.processor.php:0
PHP 2. logHandler->initAndWriteLog() manager\processors\login.processor.php:302
PHP 3. logHandler->writeToLog() manager\includes\log.class.inc.php:42
PHP 4. DBAPI->insert() manager\includes\log.class.inc.php:76
我已在网上搜索解决方案,有些人建议清除缓存,这是不可能的,因为管理器界面没有加载。我也尝试使用默认安装文件夹升级,同样的问题依然存在。
因此,如果有人知道如何在不安装旧版PHP的情况下解决这个问题,那就太棒了。
答案 0 :(得分:3)
要摆脱mysql弃用警告,你必须使用Evo 1.0.15+,你应该改变
$database_type = 'mysql';
到
$database_type = 'mysqli';
在config.inc.php
中只有'那么使用旧的mysql_函数的东西就是安装程序。 PHP 5.5中禁用了已弃用的警告。
答案 1 :(得分:0)
MODx Evolution里面有很多旧代码。正如您在警告中看到的那样,它正在使用deprecated mysql-functions。这在MODx Forums已知。
目前,您有两种可能的解决方案:
答案 2 :(得分:0)
可以查看以下解决方案 https://toster.ru/q/125593
真的有效! :)