尝试登录文件时出现问题。我创建了一个带有ToLog方法的cLog类,其工作方式如下:
function ToLog($logType, $text) {
$myDate = date("H:i:s d/m/Y");
$ip = $_SERVER['REMOTE_ADDR'];
$fichero = $this->GetLogFilename($logType);
$filehandler = fopen($this->pathfichero.$fichero, "a");
if ($filehandler == false)
{
print_r (error_get_last());
}
fputs($filehandler, $myDate.' | IP: '.$ip.' | USER: '.$_SESSION['usr'].' | '.$text."\r\n");
fclose($filehandler);
return;
}
如果我从其他类的方法中创建一个oLog()对象并调用$ oLog-> ToLog($ logtype,'我要记录的内容')它工作得很好,但当我调用另一个方法再调用$ oLog-> ToLog(...)方法时,它会失败并告诉我:
[type] => 2 [message] => fopen(log.admin): failed to open stream: Permission denied [file] => /.../cLog.php
这里发生了什么?我第一次在文件上写它是有效的,第二次,即使我已经把它关闭了,PHP告诉我"许可被拒绝"。我怀疑以某种方式写入+关闭文件会被延迟,但我该如何解决呢?