Я пытаюсь создать простой журнал ошибок, которые записывают ошибки php, если они не могут быть отправлены администратору (с подключением к базе данных). Я написал это:Разрешение отклонено, журнал ошибок
function errorLog($array)
{
$time = date("F j, Y, g:i a");
$ip = $_SERVER['REMOTE_ADDR'];
$no = $array['e-no'];
$string = $array['e-string'];
$file = $array['e-file'];
$line = $array['e-line'];
$context = $array['e-context'];
$string = "TIME {$time} IP {$ip} ERROR {$no} | {$string} | {$file} | {$line} | {$context}";
if ($handler = fopen('log/log-file.txt', 'a'))
{
fwrite($handler, $string);
fclose($handler);
}
else
{
exit('Fatal Error #0002');
}
}
START EDIT
Функция была стала
function errorLog($array)
{
$time = date("F j, Y, g:i a");
$ip = $_SERVER['REMOTE_ADDR'];
$type = $array['e-type'];
$string = $array['e-string'];
$file = $array['e-file'];
$line = $array['e-line'];
$context = $array['e-context']
$string = "ON {$time} IP {$ip} ERROR {$type} | {$string} | {$file} | {$line} | {$context}";
if (!error_log($string, 3, 'log/log-file.txt')) { exit('Fatal Error #0002'); }
}
END EDIT
Но когда я запускаю его я получаю
Warning: fopen(log/log-file.txt) [function.fopen]: failed to open stream: Permission denied in myfile.php on line 17
У меня проблема с разрешением сервера, но я работаю над локальным хостом (Xampp on Mac os x), и мне бы хотелось управлять этими разрешениями. Как я могу разместить журнал/только для записи? Есть ли лучшие способы делать то, что я пытаюсь сделать?
Не решить проблему, но вы можете прочитать функцию error_log. что может немного упростить ваш код? – Nanne
Прочтите, спасибо. – Shoe
создайте этот файл журнала вашим ftp-клиентом и установите для него 666 разрешений –