СообЧа > База Знаний > Интернет > Веб-строительство > PHP

Вопрос

Пытаюсь создать счетчик посещений. Значение счетчика предполагается считывать из файла, прибавлять 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 Сообщество Чайников
Контактная информация