3
Notice: Use of undefined constant DOCUMENT_ROOT - assumed 'DOCUMENT_ROOT' in /home/syole/public_html/includes/config.php on line 21

Notice: Use of undefined constant DOCUMENT_ROOT - assumed 'DOCUMENT_ROOT' in /home/syole/public_html/includes/config.php on line 22

PHP 已经看到一个未定义的常量,它被视为字符串,这导致我的网站只显示一个空白页面,我如何让 php 理解 DOCUMENT_ROOT 是预定义的/应该是预定义的而不是字符串?

我不知道“服务器配置”可能在哪里,但我的网站过去可以工作,现在不能,所以我认为它必须在那里正确定义,无论在哪里,最有可能在 cpanel 上?

我认为 Coda2 在连接到我的 mySQL 数据库时导致了这个问题。

我似乎无法解决这个问题,在添加之前error_reporting(E_ALL);,我什至不知道这个错误。

4

3 回答 3

6

不要这样做:

$_SERVER[DOCUMENT_ROOT]

改为这样做:

$_SERVER['DOCUMENT_ROOT']

您需要引用字符串(这是),而不是常量(不是)。

如果您在插值字符串中使用它,请这样做:

$a = "foo {$_SERVER['DOCUMENT_ROOT']} bar";

{}括号允许您在双引号字符串中使用单引号/双引号。

于 2013-03-25T01:01:57.363 回答
2

将此添加到您的配置文件中

 define('DOCUMENT_ROOT', $_SERVER['DOCUMENT_ROOT']);

如果您想坚持当前的持续通话。或者你应该按照@cal 的建议去做。

于 2013-03-25T01:04:11.747 回答
0

XDebug 表示这'DOCUMENT_ROOT'是一个字符串,在 Array() 内$_SERVER

echo $_SERVER['DOCUMENT_ROOT'].'<br />';

echo gettype($_SERVER).'<br />';
echo gettype($_SERVER['DOCUMENT_ROOT']).'<br />';

echo '<pre>';
print_r($_SERVER);
echo '<pre>';
于 2013-03-25T01:03:21.713 回答