2014-01-09 108 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