2013-05-31 51 views
0

輸出錯誤,我剛纔看了一下apache的錯誤日誌,文件是巨大的!已經有網站本身並沒有對任何錯誤由PHP,但在錯誤日誌的輸出也有很多不確定的變數等Apache的錯誤日誌顯示PHP錯誤,但沒有通過PHP

下面是幾個例子:

[Fri May 31 14:04:15 2013] [error] [client 127.0.0.1] PHP Notice: Undefined variable: ID in C:\\wamp\\www\\artist_profile.php on line 189, referer: http://localhost/Discover 

[Fri May 31 14:04:15 2013] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://localhost/Discover 

[Fri May 31 14:04:15 2013] [error] [client 127.0.0.1] PHP 1. {main}() C:\\wamp\\www\\artist_profile.php:0, referer: http://localhost/Discover 

我不知道爲什麼這個正在發生,顯然需要在網站上線之前對其進行排序。

我真的不能給任何這更多信息,因爲我無能。我有玩includeinclude_once,交換他們,但這沒有效果。我唯一的想法是,該網站使用歷史API腳本通過ajax獲取頁面而不進行全面刷新。也許是因爲只有部分新頁面加載錯誤正在被記錄。但我不明白他們爲什麼會在apache中登錄,而不是輸出到瀏覽器中。

編輯

可變$ID,該通知是識別從一個MySQL查詢得到鑑定爲這樣的;

$ID = $row['ID'];//never echo this 

189行只是$ID在另一個查詢中。我可以在頁面上的任何位置回顯$ ID,並且不會顯示任何錯誤。順便說一下,評論是爲了提醒任何人出於安全原因不要回應它。

編輯 凡$ID設置。

<?php require("includes/database.php"); 
     $url = $_SERVER["REQUEST_URI"]; //get url for db 
     $url = substr($url, 1); 
     $result = mysql_query ("SELECT * , 
           (SELECT COUNT(*) FROM artist_follows WHERE follows_ID = A.ID) AS followers, 
           (SELECT COUNT(*) FROM artist_follows WHERE ID = A.ID) AS following, 
           (SELECT COUNT(*) FROM tracks WHERE ID = A.ID) AS tracks 
           FROM artists A WHERE url = '$url' LIMIT 1"); 
     $count = mysql_num_rows($result); 
     if ($count === 0){ 
     //redirect to 404 
     header ("location:404"); 
     } 
     while($row = mysql_fetch_array($result)){ 
      $ID = $row['ID'];//never echo this   
     } 

行189:

WHERE E.ID = '$ID' 
GROUP BY E.E_ID 
ORDER BY E.timestamp DESC LIMIT 20" 
+0

展我們artist_profile.php第189行? – crush

+0

這些都不是錯誤。這是一個通知,它是後續消息。 –

+0

@Patrick好吧,他們爲什麼發生?該變量被定義爲 –

回答

1

這是因爲他們只是通知。那些可能在您的php.ini中被禁用。您可以通過編輯啓動或乾脆在腳本中添加

error_reporting(E_ALL); 
ini_set("display_errors", 1); 

你可能想看看documentation

+0

我已經添加了,但沒有顯示錯誤 –

+1

@ nbs189是仍然在日誌中的錯誤?或者是以前的幾個小時? – Fabio

+0

通知在日誌中是。我幾次刪除了日誌,並且在重訪頁面時仍然存在。如果我把'echo ini_get('display_errors');'a'1'顯示出來。我想這意味着有1個錯誤 –

1

試着在你的文件的開頭添加這樣的:

error_reporting(E_ALL); 
ini_set("display_errors", 1);