PHP include不包括现有文件内容

时间:2015-08-05 10:32:02

标签: php codeigniter

在application / config.php中我有一个像这样的include函数

include($_SERVER['DOCUMENT_ROOT'].'/config/log.php');

include($_SERVER['DOCUMENT_ROOT'].'/config/session.php');

显然我的配置文件在root / config / whatever.php中。现在,因为我将文件移动到新服务器,所以包含可能不起作用。因此,如果我写了文件的名称,我会得到一个错误,但如果该文件存在,它将不会包含它的常量和CI通过错误,如

  

要使用Session类,您需要设置一个   配置文件中的加密密钥。

作为一种解决方案,我实际上可以在config.php中包含联系文件(但这不是我想要做的,因为我在几个单独的CI应用程序中使用了详细信息)。所以我感谢任何更好的解决方案。

非常感谢提前

P.S。我使用PHP 5.5.9-1ubuntu4.11(cli)(内置:2015年7月2日15:23:08)

更新:

echo $_SERVER['DOCUMENT_ROOT'].'/config/session.php'; ///returns : var/www/html/config/session.php
include($_SERVER['DOCUMENT_ROOT'].'/config/session.php'); //return nothing and its not including the vars since i get encryption key error
include($_SERVER['DOCUMENT_ROOT'].'/config/sessionsfgdfgsdf.php'); //gives error

2 个答案:

答案 0 :(得分:1)

发生此错误是因为如果您没有使用加密会话,则必须在配置文件中设置加密密钥,用于帮助防止会话数据操作

要将密钥保存到application/config/config.php,打开文件并设置:

$config['encryption_key'] = "YOUR KEY";

另请阅读Session ClassSetting your Key

答案 1 :(得分:0)

application/config/config.php

中的

$config['encryption_key'] = "123";

包含

file_get_contents(APPPATH.'config/session.php');