2013-05-31 5 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 

Я понятия не имею, почему это происходит, и, очевидно, нужно отсортировать его до того, как сайт начнет жить.

Я не могу дать больше информации об этом, потому что я не знаю. Я играл с include и include_once, обменявшись вокруг, но это не повлияло. Моя единственная мысль состоит в том, что на сайте используется сценарий API истории для получения страниц через ajax без полного обновления. Может быть, потому, что загружается только часть новой страницы в ошибках. Но я не понимаю, почему они будут зарегистрированы в Apache и не будут выводиться в браузер.

Редактировать

Переменная $ID, что уведомление идентифицирует получается из запроса тузд и идентифицирован как таковой;

$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   
     } 

Line 189:

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

Показать us artist_profile.php line 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); 
Смежные вопросы