|
|
|
| Здравствуйте! у мня есть счетчик посещений, который записыват все в txt документ, на локахосте все работает, но а на серваке неработает, нижего не записывает,, что делать?
if (!file_exists("count.txt"))
{$counter=fopen("count.txt", "a" );}
else
{$counter=fopen("count.txt", "r+");}
$aufruf=fgets($counter, 100);
$aufruf=$aufruf+1;
rewind($counter);
fputs($counter, $aufruf);
fclose($counter);
|
| |
|
|
|
|
|
|
|
для: JESS
(04.10.2007 в 20:27)
| | Права на запись выставили? | |
|
|
|
|
|
|
|
для: Valick
(04.10.2007 в 20:40)
| | a ка их выставить? | |
|
|
|
|
|
|
|
для: JESS
(04.10.2007 в 20:58)
| | Или так, или по FTP(если файл или папка уже существует). | |
|
|
|
|
|
|
|
для: Valick
(04.10.2007 в 21:20)
| | класс, но я ничего не понимаю... | |
|
|
|
|
|
|
|
для: JESS
(04.10.2007 в 21:33)
| | Что конкретно не понятно? | |
|
|
|
|
|
|
|
для: ddhvvn
(04.10.2007 в 22:09)
| | не понимаю че делать?!?! | |
|
|
|
|
|
|
|
для: JESS
(04.10.2007 в 21:33)
| | Если дадите мне немного времени постараюсь написать вам код с коментариями. | |
|
|
|
|
|
|
|
для: Valick
(04.10.2007 в 22:11)
| | спасибо! =) | |
|
|
|
|
|
|
|
для: JESS
(04.10.2007 в 22:57)
| | Блин, берешь любой ФТП клиент (хоть TotalCommander, можно SmartFTP) и меняешь права на папку в которой должен быть файл (например ставишь 777 - разрешено все). Необходимо поставить права на запись. Возможно права можно поменять в контрольной панели хостинга/сервера. И все! Зачем писать для этого код... Все делается руками... | |
|
|
|
|
|
|
|
для: wawilon
(05.10.2007 в 11:28)
| | код не для этого, а для общего развития... | |
|
|
|
|
|
|
|
для: JESS
(04.10.2007 в 22:57)
| | Устанавливаете права на папку в которой выполняется скрипт как сказал wawilon
(лично я использую FileZilla)
А вот вам код (хотел ещё более полные коментарии написать, но нет времени):
// Функция записи в файл счётчика
function count_write($filename)
{
// Создаём файл если он не существует
// ни в коем случае не используем w или w+
if(!file_exists($filename)
{
fclose(fopen($filename, "a+t");
}
// Открываем файл для чтения и записи в режиме r+t
// некоторые версии FreeBSD имеют проблемы с режимом а+
// и не могут установить указатель на начало файла при помощи fseek
$f=fopen($filename, "r+t") or die("Невозможно открыть файл");
// Блокируем файл (блокировка с запретом "подвисания")
while(!flock($f, LOCK_EX+LOCK_NB))
{
sleep(1); // ждём одну секунду
}
// Файл заблокирован, можно производить запись
$count=fread($f,0); // читаем значение счётчика
$count=$count+1; // увеличиваем значение счётчика
ftruncate($f,0); // очищаем файл
fseek(4f,0,SEEK_SET); // переводим указатель в начало файла
fwrite($f,$count); // записываем новое значение
fclose($f); // закрываем файл
// Возвращаем значение счётчика
return $count;
}
// Функция чтения файла счётчика
function count_read($filename)
{
// Открываем файл если он существует
if(file_exists($filename))
{
$f=fopen($filename, "r+t") or die("Невозможно открыть файл");
// Блокируем файл (разделяемая блокировка)
flock($f, LOCK_SH); // ждём завершения процесса записи
// В файл теперь никто не пишет, можно читать
$count=fread($f,100); // считываем значение счётчика
fclose($f); // закрываем файл
}
else
{
$count="Файл не существует";
}
// Возвращаем значение счётчика
return $count;
}
З.Ы Писал на работе на листе бумаги, проверить неначем, так что могут быть ошибки)
|
| |
|
|
|
|
|
|
|
для: Valick
(05.10.2007 в 12:05)
| | Ну я так и думал, ошибочки (незакрытые скобки) были. Всё поправил, прикрепил.
заливаете файл на хостинг, создаёте там папку count (или не создаёте, а правите код) устанавливаете права папки 770 и пробуете.
Примерно так. | |
|
|
|
|
|
|
|
для: Valick
(06.10.2007 в 11:31)
| | Упс... Опера кеширует... | |
|
|
|