我使用此代码记录文件下载:
define('LOG_DOWNLOADS',true);
define('LOG_FILE','logs/downloads.log');
// log downloads
if (!LOG_DOWNLOADS) die();
$f = fopen(LOG_FILE, 'a+');
if ($f) {
fputs($f, date("m.d.Y g:ia")." ".$_SERVER['REMOTE_ADDR']." ".$fname."\r\n");
fclose($f);
}
代码在本地输出日志文件时非常有效:
08.21.2012 6:31pm 127.0.0.1 1.test1.mp3
08.21.2012 6:32pm 127.0.0.1 1.test2.mp3
但是我在Godaddy托管的域名上工作不起作用?现在想出为什么,也许是文件权限?
答案 0 :(得分:0)
尝试以下方法:
首先,删除所有@
符号,以便您可以准确找到所收到的错误消息
检查logs/downloads.log
是否存在以及是否执行了分配给它的权限?建议提供logs/downloads.log
你能试试这个剧本吗?我刚刚添加了更多的条件检查,以确定我们是否可以跟踪它导致问题的位置:
<?
error_reporting(E_ALL);
define('LOG_DOWNLOADS',true);
define('LOG_FILE','downloads.log');
// log downloads
if (!LOG_DOWNLOADS) die("Not logging downloads");
$f = fopen(LOG_FILE, 'a+');
if ($f) {
if(!fputs($f, date("m.d.Y g:ia")." ".$_SERVER['REMOTE_ADDR']." ".$fname."\r\n"))
{
die("Could not write into file ". LOG_FILE);
}
if(!fclose($f))
{
die("Could not fclose file ". LOG_FILE);
}
}
else
{
die("Could not fopen file ". LOG_FILE);
}
die("Finished logging..");
?>