1

作为我的第一个 PHP 项目之一,我正在创建一个记录用户 IP 地址的 IP 记录脚本。出于某种原因,我的 fwrite() 函数似乎没有写入我的日志文件。

有人可以帮我吗?

<?php
// IP Logger Script
// By Sam Lev
// sam@levnet.us
$iplogfile = 'iplog.txt';
$ipaddress = $_SERVER['REMOTE_ADDR'];
$webpage = $_SERVER['SCRIPT_NAME'];
$timestamp = date('m/d/Y h:i:s');
$browser = $_SERVER['HTTP_USER_AGENT'];
$fp = fopen($iplogfile, 'a+');
chmod($iplogfile, 0777);
fwrite($fp, '['.$timestamp.']: '.$ipaddress.' '.$webpage.' '.$browser. "\r\n");
fclose($fp);
echo "IP ADDRESS: $ipaddress <br />\n";
echo "TIMESTAMP: $timestamp <br />\n";
echo "BROWSER: $browser <br />\n";
echo "Information logged to server. <br />\n";
?>

运行脚本后 iplog.txt 仍为空白。一切都很好。

谢谢

4

3 回答 3

6

不应该

$fp = fopen($file, 'a');

$fp = fopen($iplogfile, 'a');

? 因为我没有看到$file.

于 2013-10-07T14:06:01.540 回答
2

您的代码签出,这是一个权限问题。

手动 chmod 你的文件到0777

或在chmod($iplogfile, 0777);之后添加$fp = fopen($iplogfile, 'a');

chmod是一个标准的服务器命令,它不是 PHP 独有的。

于 2013-10-07T14:33:08.513 回答
-1

如果这有帮助,这是我的日志记录代码,但是在添加代码 chmod 后,将日志文件添加到 0777 或者它不会工作,因为添加代码不会使其工作并且会给出 php 错误,因此为什么它不在代码中,顺便说一句你可能必须创建手动记录文件,但很简单,这适用于我的网站 www.nzquakes.maori.nz 谢谢你的帮助

<!-- Below Code Logs ONLY User's IP Address & Time Stamp & Browser Info To http://www.example.com/logs/ip-address-mainsite.txt -->

<?php
$iplogfile = 'full path to your logs goes here eg http://www.example.com/logs/ip-address-mainsite.txt';
$ipaddress = $_SERVER['REMOTE_ADDR'];

//load the file
$file = file_get_contents($iplogfile);

//check to see if the ipaddress is already in the file
if ( ! preg_match("/$ipaddress/", $file )) {
//nope, log it!
$webpage = $_SERVER['SCRIPT_NAME'];
$timestamp = date('d/m/Y h:i:s');
$browser = $_SERVER['HTTP_USER_AGENT'];
$fp = fopen($iplogfile, 'a+');
fwrite($fp, '['.$timestamp.']: '.$ipaddress.' '.$browser. "\r\n");
fclose($fp);
}
?>
于 2015-03-06T01:44:10.993 回答