Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблема с созданием txt на сервере
 
 автор: JESS   (04.10.2007 в 20:27)   письмо автору
 
 

Здравствуйте! у мня есть счетчик посещений, который записыват все в 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);

   
 
 автор: Valick   (04.10.2007 в 20:40)   письмо автору
 
   для: JESS   (04.10.2007 в 20:27)
 

Права на запись выставили?

   
 
 автор: JESS   (04.10.2007 в 20:58)   письмо автору
 
   для: Valick   (04.10.2007 в 20:40)
 

a ка их выставить?

   
 
 автор: Valick   (04.10.2007 в 21:20)   письмо автору
 
   для: JESS   (04.10.2007 в 20:58)
 

Или так, или по FTP(если файл или папка уже существует).

   
 
 автор: JESS   (04.10.2007 в 21:33)   письмо автору
 
   для: Valick   (04.10.2007 в 21:20)
 

класс, но я ничего не понимаю...

   
 
 автор: ddhvvn   (04.10.2007 в 22:09)   письмо автору
 
   для: JESS   (04.10.2007 в 21:33)
 

Что конкретно не понятно?

   
 
 автор: JESS   (04.10.2007 в 22:11)   письмо автору
 
   для: ddhvvn   (04.10.2007 в 22:09)
 

не понимаю че делать?!?!

   
 
 автор: Valick   (04.10.2007 в 22:11)   письмо автору
 
   для: JESS   (04.10.2007 в 21:33)
 

Если дадите мне немного времени постараюсь написать вам код с коментариями.

   
 
 автор: JESS   (04.10.2007 в 22:57)   письмо автору
 
   для: Valick   (04.10.2007 в 22:11)
 

спасибо! =)

   
 
 автор: wawilon   (05.10.2007 в 11:28)   письмо автору
 
   для: JESS   (04.10.2007 в 22:57)
 

Блин, берешь любой ФТП клиент (хоть TotalCommander, можно SmartFTP) и меняешь права на папку в которой должен быть файл (например ставишь 777 - разрешено все). Необходимо поставить права на запись. Возможно права можно поменять в контрольной панели хостинга/сервера. И все! Зачем писать для этого код... Все делается руками...

   
 
 автор: Valick   (05.10.2007 в 12:01)   письмо автору
 
   для: wawilon   (05.10.2007 в 11:28)
 

код не для этого, а для общего развития...

   
 
 автор: Valick   (05.10.2007 в 12:05)   письмо автору
 
   для: 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   (06.10.2007 в 11:31)   письмо автору
 
   для: Valick   (05.10.2007 в 12:05)
 

Ну я так и думал, ошибочки (незакрытые скобки) были. Всё поправил, прикрепил.

заливаете файл на хостинг, создаёте там папку count (или не создаёте, а правите код) устанавливаете права папки 770 и пробуете.

Примерно так.

   
 
 автор: Valick   (06.10.2007 в 11:34)   письмо автору
 
   для: Valick   (06.10.2007 в 11:31)
 

Упс... Опера кеширует...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования