-1

我有一个函数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 标头导致它无法写入的原因。

4

1 回答 1

2

看起来像一个范围问题。由于它是一个函数,它在函数范围内寻找文件句柄$file,而不是全局。您需要将文件句柄传递给函数。

我还将假设错误报告已关闭,从而抑制了您的问题。

于 2017-04-26T14:21:04.373 回答