fputs 在 403 header 被触发之前不写入
fputs doesn't write before 403 header is triggered
我有一个函数 forbid()
应该写入访问被拒绝的日志文件,以及拒绝的原因。出于某种原因,它没有写入日志文件。
// function to forbid access
function forbid($reason) {
// explain why
if ($reason) fputs($file, "=== ERROR: " . $reason . " ===\n");
fputs($file, "*** ACCESS DENIED ***" . "\n\n\n");
fclose($file);
// forbid
header("HTTP/1.0 403 Forbidden");
exit;
}
$file
是在代码前面定义的,其他fputs()
之前的函数都可以正常工作;我认为这是关于 403 header 导致它无法写入的问题。
看起来像是范围问题。因为它是一个函数,所以它在函数范围内寻找文件句柄 $file
,而不是全局的。您需要将文件句柄传递给函数。
我还假设错误报告已关闭,从而抑制了您的问题。
我有一个函数 forbid()
应该写入访问被拒绝的日志文件,以及拒绝的原因。出于某种原因,它没有写入日志文件。
// function to forbid access
function forbid($reason) {
// explain why
if ($reason) fputs($file, "=== ERROR: " . $reason . " ===\n");
fputs($file, "*** ACCESS DENIED ***" . "\n\n\n");
fclose($file);
// forbid
header("HTTP/1.0 403 Forbidden");
exit;
}
$file
是在代码前面定义的,其他fputs()
之前的函数都可以正常工作;我认为这是关于 403 header 导致它无法写入的问题。
看起来像是范围问题。因为它是一个函数,所以它在函数范围内寻找文件句柄 $file
,而不是全局的。您需要将文件句柄传递给函数。
我还假设错误报告已关闭,从而抑制了您的问题。