Вопрос
Пытаюсь создать счетчик посещений. Значение счетчика предполагается считывать из файла, прибавлять 1 и записывать обратно в файл. Однако, при открытии файла на запись появляется сообщение:
Warning: fopen("count.txt", "a+") — Permission denied in [адрес].
В чем может быть дело?
Ответ
Насчет именно PHP не уверен, так как предпочитаю Perl (он быстрее и удобнее), а там такая ошибка означала бы нарушение прав доступа. Проверьте, какие права стоят у файла, который открывается на запись (должны быть 666). Но учитывая fopen — посмотрите внимательно, закрыт ли файл перед открытием его на запись. Кстати, кроме непосредственно значения счетчика советую так же записывать IP и текущее время (в Perl это $ENV{REMOTE_ADDR} и time), для того, чтобы при перегрузке страницы счетчик не прибавлял значение еще на единицу. Учитывая схожий синтаксис Perl и программных ставок PHP, позволю себе привести пример:
$oldIP, $oldTime, Count — берем из файла
if($oldIP != $ENV{REMOTE_ADDR}) {Count++} elsif (time — $oldTime < 600)
{Count++}
Если IP последнего посетителя и нынешнего не совпадают, увеличиваем значение, а если совпадают, то увеличиваем, если только прошло более 600 секунд.
Из конференции Expert_FAQ
Copyright 2000-2004 Сообщество Чайников
Контактная информация