1

我正在使用最新的 WAMPServer64 和 PHP 5.5.12。

我做了什么:从网络服务器(运行 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 的情况下解决这个问题,那就太好了。

4

3 回答 3

3

要摆脱 mysql deprecated 警告,您必须使用 Evo 1.0.15+,您应该更改

$database_type = 'mysql';

$database_type = 'mysqli'; 

在 config.inc.php 中

使用旧 mysql_ 功能的“唯一”东西是安装程序。PHP 5.5 中禁用了已弃用的警告。

于 2015-06-29T20:36:56.640 回答
0

MODx Evolution 中有很多旧代码。正如您在警告中看到的那样,它正在使用已弃用的 mysql-functions。这在MODx 论坛中早已为人所知。

至于现在,您有两种可能的解决方案:

于 2015-06-29T18:03:24.143 回答
0

可以检查以下解决方案 https://toster.ru/q/125593

真的有效!:)

于 2016-12-24T10:19:19.423 回答