在更新到PHP 7.2之后,我最近遇到了这些错误:
[31-Aug-2018 08:46:02 UTC] PHP Warning: Use of undefined constant DB_USER - assumed 'DB_USER' (this will throw an Error in a future version of PHP) in /home/_userid_/domains/_domain_/public_html/wp-includes/load.php on line 404
[31-Aug-2018 08:46:02 UTC] PHP Warning: Use of undefined constant DB_PASSWORD - assumed 'DB_PASSWORD' (this will throw an Error in a future version of PHP) in /home/_userid_/domains/_domain_/public_html/wp-includes/load.php on line 404
[31-Aug-2018 08:46:02 UTC] PHP Warning: Use of undefined constant DB_NAME - assumed 'DB_NAME' (this will throw an Error in a future version of PHP) in /home/_userid_/domains/_domain_/public_html/wp-includes/load.php on line 404
[31-Aug-2018 08:46:02 UTC] PHP Warning: Use of undefined constant DB_HOST - assumed 'DB_HOST' (this will throw an Error in a future version of PHP) in /home/_userid_/domains/_domain_/public_html/wp-includes/load.php on line 404
第404行显示以下代码:
$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
WordPress设置如下常量:
define('DB_USER', 'someuserhere');
帮助?
第404行无法编辑,因为它是WordPress的一部分,因此更改后,它很可能会破坏系统。常量也可以不用引号来调用,对吗?
答案 0 :(得分:0)
这是由WordPress自动加载器在绕过正常请求管道(加载wp-config.php
的部分,其中这些常量通常为define(...)
的情况下)加载内核,插件或主题PHP文件引起的。
当调用插件并尝试无条件访问数据库变量之一(例如DB_USER
,DB_HOST
等)但请求为 not 时,会发生这种情况有效的WordPress页面/帖子/任何请求,并且请求管道尚未建立。这通常是由脚本小子或漫游器通过检查已知漏洞或任何弱点的请求充斥您的网站而触发的;如果WordPress在自动加载器加载插件之前未对所有请求进行清理,或者如果插件在建立请求管道之前明确要求加载插件,则可能会发生此错误。
从pecl安装php xdebug扩展;在其默认配置中,它将增强您的PHP错误日志,以包括这些警告的堆栈跟踪,并且您可以找出正在调用的未进行这些安全检查的插件。 (就我而言,这是数据库查询监视器插件。)
答案 1 :(得分:-1)
尝试这样:
应该在您的wordpress文件中定义(“ DB_USER”,“某物”)而不是define(DB_USER,“某物”)