2013-11-03 66 views
0

在服務器上,我有負責將通知發送到手機的PHP腳本。如果從相同的目錄調用腳本,它運行良好。從cakePHP包含並調用外部php腳本

問題是從cakePHP應用調用腳本。

我包括CakePHP的函數內部的通知,這樣的腳本:

include $_SERVER['DOCUMENT_ROOT'].'/folder_name/Notifications.php'; 

當我調用腳本,我得到的腳本里面以下警告:

include_once(./db_connect.php) [function.include-once]: failed to open stream: No such file or directory [/home/username/public_html/gcm_server_php/db_functions.php 

Warning (2): include_once() [function.include]: Failed opening './db_connect.php' for inclusion (include_path='/home/username/public_html/cake-dev/lib:.:/usr/lib/php:/usr/local/lib/php') [/home/username/public_html/gcm_server_php/db_functions.php, line 21] 

而下面的致命錯誤:

Error: Class 'DB_Connect' not found 
File: /home/username/public_html/gcm_server_php/db_functions.php  
Line: 25 

任何幫助,非常感謝。請記住,從相同的目錄調用腳本,一切都運行平穩。

+1

看起來很明顯 - 它無法打開文件,因爲路徑假定cwd是文件夾'folder_name'。只需編輯文件,以便在絕對路徑中包含'db_coǹnect.php'。請注意,除非有某些具體原因,否則這看起來應該在您的webroot中 - 它應該位於供應商文件夾中(即,http無法訪問)。 – AD7six

回答

0

所有的包含鏈接在整個應用程序中都是錯誤的。需要做的是包括其他文件和絕對路徑,如下所示:

include $ _SERVER ['DOCUMENT_ROOT']。'/ folder_name/Notifications.php';