2014-01-09 71 views
0

突然间,这个网站停止工作,这样的错误出现:CakePHP的显示include_once警告

警告: include_once(///控制器/网站/如default.php)[一次]:未能打开流:行没有这样的文件或目录中/var/www/html/sitename.com/web/index.php

警告: include_once()的[]:未能开口'///controllers/site/default.php'包含(include_path ='。:/ usr/share/pear')in /var/www/html/sitename.com/web/index.php上线

我不知道CakePHP的是如何工作的,这就是为什么我需要帮助搞清楚发生了什么(没有任何人搞乱了代码)。指出的文件,说他们不在那里(没有这样的文件或目录),正是路径描述的地方。

我感谢任何帮助!

错误从线54的index.php:

include_once sprintf('%s/%s%s/%s.php', ROOT_PROJECT, CONTROLLERS_DIR, $url->tipo, 'default'); 
+0

产生问题的代码是什么? (index.php line 54) – Fyntasia

+0

对不起,我忘了引用。刚刚编辑的代码。 – Anna

+0

'/// controllers/site/default.php'是错误的路径。你的问题可能是因为%s是空白的? – Zlatan

回答

0

我认为问题的关键在于,通过插入的sprintf变量。

有一些空的导致很多反斜杠被添加到字符串;

基本上它说

include('///controllers/site/default.php'); 

(这也是可见的生成的PHP警告)

尝试捕捉空变量或解析得到的字符串(确保只有1反斜杠各参数之间存在)。

如果我是正确的下一个PHP的命令应该工作:

include('/controllers/site/default.php'); 

希望这有助于。

+0

Fyntasia,我该怎么做? – Anna

+0

这实际上非常依赖于其他代码。我不知道在其他代码中会发生什么,我不知道哪些变量来自哪里。您可以尝试使用简单的(空($ var))单独检查每个变量,并确保它不会生成额外的反斜杠。 – Fyntasia

+0

当我直接键入“controllers/site/default.php”在include中是正确的路径时,它显示一个空白页... – Anna