У меня ломаются файлы!

info52

Guest
У меня ломаются файлы!

На своём сайте счетаю посетителей таким оброзом.

$file_gb="e_tmp/history.txt";
$file_tmp="e_tmp/history_tmp.txt";
if (file_exists($file_tmp)) die ("Administrator - mob. 9685766");
if(copy($file_gb, $file_tmp))
{
if ($w=fopen($file_gb, "w"))
{
flock($w,2);
if ($REMOTE_ADDR == "159.148.87.42")
{
fwrite($w,"<b>[".date("d.m.Y H:i:s")."]; "."IP=".$REMOTE_ADDR."; Identity=".$id."; Counter=".$s4et4ik_posi6enij_putnik."\n</b>");
}
else
{
fwrite($w,"[".date("d.m.Y H:i:s")."]; "."IP=".$REMOTE_ADDR."; Identity=".$id."; Counter=".$s4et4ik_posi6enij_putnik."\n");
}
if(!$r=fopen($file_tmp, "r")) die ("can't open file");
flock($r,1);

while($mes=fgets($r,10240))
{
fputs($w,$mes);
}
flock($r,3);
fclose($r);
flock($w,3);
fclose($w);
unlink($file_tmp);
}
}

Вопрос в следующем. Где-то после 5000-й добавленной строчки происходит следующее history.txt становится пустым, а файл history_tmp.txt наполовину пустым. Вобщем половина данных пропадает! Из за чего такое происходит? Из за переполнения файла? Как ето модно контролировать, если такое происходит иногда на 4000б а иногда на 8000 строчке.

P.S. SQL не предлогать!!!!
 

msdn11

Новичок
P.S. SQL не предлогать!!!!
тогда предложу выучиться писать по-русски...
SQL это и есть файл, который за вас кучу работы сделает...
но если у вас есть лишнее время и лишнее вдохновение, то мучайтесь на здоровье... :)
 

info52

Guest
msdn11
Я круче пишу по-русски, чем ты по-латышски!!!

и второе. У меня нет возможности использовать SQL, т.к. его не поддерживает сервер.
 

kost

Новичок
Обратитесь к администратору. А впринципе можно делать много файлов, не превышающих заданный размер. Также старые файлы можно архивировать в zip'ы, что [ИМХО] круче.
 

msdn11

Новичок
msdn11
Я круче пишу по-русски, чем ты по-латышски!!!

и второе. У меня нет возможности использовать SQL, т.к. его не поддерживает сервер.
учитывая что я тоже не русский, и это не мой родной язык - нет. если сервак не поддерживает, то советую взять класс для логирования с http://pear.php.net/
 

Popoff

popoff.donetsk.ua
info52
Попробуй функцию [m]error_log[/m] - очень удобно для ведения самых разнообразных журналов, не только журналов ошибок.
 

info52

Guest
??????? http://pear.php.net/ Что это за клас и для чего он нужен? Я не очень понимаю что с ним надо делать.
 

msdn11

Новичок
??????? http://pear.php.net/ Что это за клас и для чего он нужен? Я не очень понимаю что с ним надо делать.
??????? http://pear.php.net/ Что это за клас и для чего он нужен? Я не очень понимаю что с ним надо делать.
http://pear.php.net/package/Log
Вот что он может
The Log framework provides an abstracted logging system. It supports logging to console, file, syslog, SQL, Sqlite, mail, and mcal targets. It also provides a subject - observer mechanism.

подключи сначала класс pear, а потом этот. очень удобная штука...
 

tf

крылья рулят
Автор оригинала: info52
msdn11
Я круче пишу по-русски, чем ты по-латышски!!!

и второе. У меня нет возможности использовать SQL, т.к. его не поддерживает сервер.
ну а я на матерном лучше разговариаваю. что толку. ты сюда проблему решать или латышкий пиарить
 

msdn11

Новичок
с его помощью проще вести логи(как ты говориш "счетать посетителей")
 
Сверху