Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache错误日志显示PHP错误,但没有PHP输出的错误_Php_Apache - Fatal编程技术网

Apache错误日志显示PHP错误,但没有PHP输出的错误

Apache错误日志显示PHP错误,但没有PHP输出的错误,php,apache,Php,Apache,我刚刚查看了apache错误日志,文件很大!网站本身没有错误,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 M

我刚刚查看了apache错误日志,文件很大!网站本身没有错误,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\u
,交换它们,但没有效果。我唯一的另一个想法是,该站点使用历史API脚本通过ajax获取页面,而无需完全刷新。可能是因为只加载了新页面的一部分,所以正在记录错误。但我不明白为什么它们会登录到apache,而不会输出到浏览器中

编辑

通知正在标识的变量
$ID
来自mysql查询,并被标识为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           
      }

这是因为它们只是通知。这些可能在
php.ini
中被禁用。您可以通过编辑来激活它,也可以简单地添加脚本

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

您可能想查看一下

尝试在文件开头添加以下内容:

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

向我们展示artist_profile.php第189行?这些不是错误。这是一个通知,是后续消息。@Patrick好的,那为什么会发生呢?变量为definedIt表示未定义。除非您向我们展示代码,否则我们无法知道。@CarlosCampderrós我确实想记录我的错误,以便删除them@nbs189错误现在还在日志中吗?或者是前几个小时的?通知在日志中是的。我已经删除了几次日志,在重新访问页面时仍然存在。如果我输入
echo ini_get('display_errors')将显示一个
1
。我猜这意味着有1个error@nbs189你把我写的东西添加到
artist_profile.php
的顶部了吗?是的,我把它添加到每个页面上的模板顶部了
error_reporting(E_ALL);
ini_set("display_errors", 1);