2011-07-27 92 views
0

這是我在這裏的第一篇文章,所以很抱歉,如果設置是一種炒。意外的PHP警告錯誤

我正在使用MySQL和PHP處理文章數據庫。

我有一個頁面,它將顯示作者的所有文章。我正在嘗試在頁面頂部的鏈接重定向幾個PHP if statements,因此用戶將不得不登錄。如果用戶已經登錄(我還沒有一個用於將用戶添加到數據庫的PHP腳本,請在此工作),重定向將加載表單以提交新文章。

控制器(的index.php):

<?php 
include_once $_SERVER['DOCUMENT_ROOT'] . 
     '/includes/magicquotes.inc.php'; 
require_once $_SERVER['DOCUMENT_ROOT'] . 
     '/includes/access.inc.php'; 

if (isset($_GET['add'])) 
    if (!userIsLoggedIn()) 
{ 
     include '/Test/articles/login.html.php'; 
     exit(); 
} 
    else 
{ 
     include 'form.html.php'; 
     exit(); 
} 
         :::PHP code left out for sake of example::: 
include 'articles.html.php'; 
?> 

access.inc.php包含SESSION()$sql enrty腳本用於進入和保持的用戶名/密碼

userIsLoggedIn()access.inc.php(自我解釋)的函數的

login.html.php是我的登錄狀態

form.html.php是實際的表單提交新的文章

articles.html.php是顯示所有的文章在我的數據庫頁面

我的問題是,當我實現if statement的鏈接重定向到我的登錄表單當用戶還沒有登錄時,我點擊時得到PHP警告,但我沒有得到,因爲我的路徑對於/Test/articles/login.html.php是正確的,我不確定該怎麼做。

警告:

Warning: include(/Test/articles/login.html.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\Test\articles\index.php on line 10 

Warning: include() [function.include]: Failed opening '/Test/articles/login.html.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\Test\articles\index.php on line 10 

幫助嗎?我處於全面虧損狀態。

回答

1

$_SERVER['DOCUMENT_ROOT']幾乎從來都不是一個很好的選擇,因爲它確定文件夾結構是不可靠的。

改爲使用dirname(__FILE__)

if (!defined('DS')) { 
    define('DS', DIRECTORY_SEPARATOR); 
} 
define('APP_FOLDER', dirname(__FILE__) . DS); 

    include_once APP_FOLDER . 'includes/magicquotes.inc.php'; 
    require_once APP_FOLDER . 'includes/access.inc.php'; 

if (isset($_GET['addjoke'])) 
    if (!userIsLoggedIn()) 
{ 
     include APP_FOLDER . 'Test/articles/login.html.php'; 
     exit(); 
} 
    else 
{ 
     include APP_FOLDER . 'form.html.php'; 
     exit(); 
} 

順便說一句,你真正的錯誤是,你包括測試(/Test/...)前斜線表示要訪問駐留在Web服務器的根級別的文件夾。

+0

非常感謝,但我仍然在OP中遇到同樣的錯誤,我認爲它與某些事情有關(include_path ='。; C:\ xampp \ php \ PEAR') – rumspringa00

+0

您是否確定所有您包含的文件實際上存在?不要擔心PEAR包含路徑。這是您可以放心忽略的默認設置(在查找要包含的文件時,它是某種最後的手段)。 – brezanac

+0

明白了,這是一個XAMPP PHP系統變量的問題..不知道爲什麼它配置不同,但我設法讓它工作,感謝您的幫助! – rumspringa00