0
<?php
error_reporting(E_ALL);
// Getting the information 
$ipaddress = $_SERVER['REMOTE_ADDR']; 
$page = "http://{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}";
if(!empty($_SERVER['QUERY_STRING']) $page .= $_SERVER['QUERY_STRING'];
$referrer = $_SERVER['HTTP_REFERER'];
$datetime = mktime(); 
$useragent = $_SERVER['HTTP_USER_AGENT'];
$remotehost = getHostByAddr($ipaddress);

// Create log line
$logline = $ipaddress . '|' . $referrer . '|' . $datetime . '|' . $useragent . '|' . $remotehost . '|' . $page . "\n"; 
echo $logline;
// Write to log file: 
//$logfile = 'logfile.txt';
$logfile = '/home/www/agro-dive.onlinewebshop.net/logfile.txt';

// Open the log file in "Append" mode 
if (!$handle = fopen($logfile, 'a+')) {
    die("Failed to open log file"); 
} 

// Write $logline to our logfile. 
if (fwrite($handle, $logline) == FALSE) {
    die("Failed to write to log file"); 
} 

fclose($handle);  

?>

如果我尝试打开这个 php,它会给我一个服务器错误

HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request.

我也按照此处的步骤对其进行了测试,但它没有产生任何日志消息

4

4 回答 4

1

“服务器错误”的意思是“您必须查看服务器错误日志以获取特定的错误消息”

调试代表阅读错误消息,而不是看代码或猜测。

于 2011-03-30T06:58:11.743 回答
0

我无法回答您有关调试和日志记录的问题,但它的价值。您的错误在第 6 行。将其替换为:

if(!empty($_SERVER['QUERY_STRING']))
    $page .= $_SERVER['QUERY_STRING'];
于 2011-03-30T07:28:03.110 回答
0

BobDcoder 在这里!2019 年更新

虽然这被标记为已解决/已接受/无论如何,但根据文档,答案似乎是错误的修复。许多新手和经验丰富的程序员都认为这是一个三元 if 语句。(但是你拼写三元,哈哈。)但原始海报(op)的说法不同!

虽然我可能是错的,但我认为问题是:

$page = "http://{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}"; 
$page .= iif(!empty($_SERVER['QUERY_STRING']), "?{$_SERVER['QUERY_STRING']}", ""); 

(其中 $page是第二行代码的附加内容。)

许多新手和经验丰富的程序员都认为这是一个三元 if 语句。(但是你拼写三元,哈哈。)

在原始文档中,OP 声明这是一个函数调用。https://www.go4expert.com/articles/track-visitors-using-php-t195/

引用文档中的 OP........“注意:我在上面的示例中使用了一个名为 iif() 的函数。您可以在http://www.phpit.net/code/iif获得此函数-功能。”

遗憾的是,指向 iif() 函数的链接已失效,因此也许有人拥有此函数的旧代码,可以将其发布在此处或其他存储库中。

虽然上面的其他更正可能允许代码测试真假并通过并处理其余代码,但我认为 OP 可能已将其“iif() 用于其他目的作为函数(函数的错误编程选择称呼)。

于 2019-07-28T20:26:50.523 回答
-1
// Write to log file: 
//$logfile = 'logfile.txt';
$logfile = 'log.log';

其中 log.log 是您的日志文件

于 2012-07-13T16:27:21.097 回答