форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / The Matrix Has You / Дозапись в фаил
. 1 . 2 . >>
Автор Сообщение
acsid
Alfa Guru

2388
# Дата: 19 Окт 2005 10:18 ° Поправил: acsid


я пишу так:
Код:
$open=fopen("online.txt","w");
fwrite($open,time());
fwrite($open,$newmass[0]);
fclose($open);


где $newmass[0] = ник нового пользователя

в online.txt получаю :
1129732829ник

с этим всё впорядке.но когода ещё один пользоваетель заходит на странуцу ,запись(1129732829ник) в фаиле заменяеться на новую. а нужно чтобы дописывалась..
как это сделать?

Константин
TorrentMaster

3449
# Дата: 19 Окт 2005 10:26 ° Поправил: Константин


acsid
$open=fopen("online.txt","a");

Не забудь еще делимитер поставить (хотя бы "\n") - чтобы эксплоадить потом твой online.txt

acsid
Alfa Guru

2388
# Дата: 19 Окт 2005 10:28


Deflector
благодарю

maxtat
pda killer

1438
# Дата: 19 Окт 2005 10:28


w - стереть перед записью.

acsid
Alfa Guru

2388
# Дата: 19 Окт 2005 11:25


Deflector
так
$open=fopen("online.txt","w","\n");

или как ? несовсем догнал =)


smallcms
Участник

2754
# Дата: 19 Окт 2005 11:30


acsid
$open=fopen("online.txt","a");
fwrite($open,time());
fwrite($open,$newmass[0]);
fwrite("\n");
fclose($open);

admin
powered by admin

7192
# Дата: 19 Окт 2005 11:30


перемещено в программинг

acsid
Alfa Guru

2388
# Дата: 19 Окт 2005 11:34 ° Поправил: acsid


вот так нада:
$open=fopen("online.txt","a+");
fwrite($open,time());
fwrite($open,$newmass[0]);
fwrite("\n");
fclose($open);
smallcms
но всёрвно непашет :
1129740197Admin1129740203lol

Константин
TorrentMaster

3449
# Дата: 19 Окт 2005 12:37 ° Поправил: Константин


acsid
Да почему же не пашет - судя по выводу все пашет?
Если тебя не устраивает формат вывода:
Я же сказал - вставь делимитер: вместо fwrite($open,$newmass[0]);
надо например fwrite($open,$newmass[0]."\n");
а fwrite("\n"); вообще убери

smallcms
Участник

2754
# Дата: 19 Окт 2005 12:45


acsid
а ещё лучше
$open=fopen("online.txt","a+");fwrite($open,time()).":".$newmass[0]."\ n");fclose($open);

Константин
TorrentMaster

3449
# Дата: 19 Окт 2005 12:56 ° Поправил: Константин


smallcms
А уж совсем для гарантии корректности лучше:
$open=fopen("online.txt","ab+");fwrite($open,time().":".$newmass[0]."\ n");fclose($open);

Вдруг у пользователя ник совсем левый

Заодно и лишней скобки не будет )))))

acsid
Alfa Guru

2388
# Дата: 19 Окт 2005 13:35


ну вы ребята маньяки +)

acsid
Alfa Guru

2388
# Дата: 19 Окт 2005 13:39 ° Поправил: acsid


во то что нада
:1129747649|Admin:1129747655|lol

попутный вопрос а как достать из online.txt ?

smallcms
Участник

2754
# Дата: 19 Окт 2005 19:30


acsid

http://php.net

acsid
Alfa Guru

2388
# Дата: 19 Окт 2005 23:29




Константин
TorrentMaster

3449
# Дата: 20 Окт 2005 01:20


во то что нада
:1129747649|Admin:1129747655|lol


Вот тебе:
$open=fopen("online.txt","ab+");fwrite($open,":"time()."|".$newmass[0] );fclose($open);

А по поводу переделки того что ты тут еще привел - давай-ка действительно сходи по адресу, что смоллцмс дал

acsid
Alfa Guru

2388
# Дата: 20 Окт 2005 09:10


Deflector
ты не совсем понял =)

во то что нада(это типа наконецто получилось)
:1129747649|Admin:1129747655|lol

а поповоду переводки я нащел выход по проще =)



acsid
Alfa Guru

2388
# Дата: 20 Окт 2005 11:38 ° Поправил: acsid


Deflector помоги
выход я нащел.но одна фигня не получаеться.вижу ты разбираешься в этом :

короче такая проблемка:
1)юзер попадает в чат чат.пхп
там есть такая строка которую вы мне подсказали :
<?php
$open=fopen("online.txt","ab+");
fwrite($open,time()."|".$newmass[0]."\n");
fclose($open);
?>

в фаиле online.txt вышло :
:1129747649|Admin

2)дрегой фрейм чата
1)проверяет на время последнего обновления в online.txt
2) перезаписывает время последнего обновления.

1)
<?php
$sec = "300";
$file=file("online.txt");
if($file[0]+$sec>time())
{
2)
$open=fopen("online.txt","w");
fwrite($open,time());
fclose($open);
}

И В online.txt я получаю такое:

1129825603

а нужно:

:новое время|Admin

надеюсь понятно объяснил...

как поправить ?

smallcms
Участник

2754
# Дата: 20 Окт 2005 11:51


1)
<?php
$sec = "300";
$file=file("online.txt");
$timeold = trim($file[0]);
if($timeold+$sec>time())
{
2)
$open=fopen("online.txt","w");
fwrite($open,time());
fclose($open);
}

не проверял, но кажыся так...

acsid
Alfa Guru

2388
# Дата: 20 Окт 2005 11:51


ок щас я проверю

Константин
TorrentMaster

3449
# Дата: 20 Окт 2005 11:55 ° Поправил: Константин


Ну во-первых - вместо fwrite($open,time()); в пункте 2) надо нечто типа того что было до этого, т.е. fwrite($open,time()."|".$newmass[0]."\n"); , а для этого надо отэксплоадить файл сначала по делимитеру :, затем каждый элемент по делимитеру |, тогда каждый элемент первой пары будет временем, а второй - ником. Сравниваешь время+300 с текущим и заменяешь этот элемент, затем переписываешь ВЕСЬ файл online.txt - если у тебя данные о юзерах в онлайне еще где-то используются - с уже измененным значением, не забываешь вставлять делимитеры

А теперь скажи - зачем тебе такой изврат с файлом - обновляй лучше инфу в базе - если юзеров в чате хотя бы более 20, то это может быть быстрее

З.Ы. Код не привел специально - сначала подумай надо ли тебе именно ТАК это реализовывать. Если надо, то дам код


З.Ы. Смолл: так как ты написал у него ровно один юзер останется в его онлайне.тхт )))

acsid
Alfa Guru

2388
# Дата: 20 Окт 2005 11:56


короче это cosmo chat я пытаюсь поставить заплатку на такой баг:
когда человек уходит из чата его ник остаёться в чате на веки вечные аминь.

если можешь мне помочь пиши на мыло acsidsitesuport@list.ru буду очень благодарен

smallcms
Участник

2754
# Дата: 20 Окт 2005 11:58


Deflector
Смолл: так как ты написал у него ровно один юзер останется в его онлайне.тхт
упс! )) не обратил внимания... ясно...

Deflector, smallcms. PHP jasta fa beginnerzzz ©2005

smallcms
Участник

2754
# Дата: 20 Окт 2005 12:02


acsid
зачем заплатка? при запуске скипта втыкаем в "обязательно нужно нажать выход..." и т.д. и т.п...

есть чаты лучше.

acsid
Alfa Guru

2388
# Дата: 20 Окт 2005 12:03 ° Поправил: acsid


когда юзер уходит не нажав кнопку ВЫХОД
извините не дописал+)

smallcms
а теперь объясни что куда втыкать объясника по подробнеее

acsid
Alfa Guru

2388
# Дата: 20 Окт 2005 12:55


Deflector
щас я тебе объясно как это премерно должно выглядеть полностью
и чего у меня не хватает.

acsid
Alfa Guru

2388
# Дата: 20 Окт 2005 13:04 ° Поправил: acsid


1)юзер попадает в чат чат.пхп
там есть такая строка которую вы мне подсказали :
<?php
$open=fopen("online.txt","ab+");
fwrite($open,":"time()."|".$newmass[0] );
fclose($open);
?>
в фаиле online.txt вышло :
:1129747649|Admin

Другой фрем чата


надо отэксплоадить файл online.txt сначала по делимитеру :, затем каждый элемент по делимитеру |, тогда каждый элемент первой пары будет временем, а второй - ником.

дальше проверка по времени

<?php
$sec = "300";
$file=file("online.txt");
if($file[0]+$sec>time())
{
перезапись тогоже ника но с новым времением в online.txt
должно получиться:

:новое время|Admin

}
else ( переписываем состояние (тогоже) ника с истёкшим временем на *off* в фаиле usersdata.php)
{
$filename = "engine/usersdata.php";
$con = file($filename);
for ($i = 0; $i < count($con); $i++) {
$m = explode("|", $con[$i]);
if (($m[0] == $name) && ($m[5] == "*on*")) {
$con[$i] = str_replace("*on*", "*off*", $con[$i]);
$con[$i] = str_replace($m[9], "/a", $con[$i]);
$ex = trim(str_replace("\n", "", $m[8]));
break;
}
}
$f = fopen($filename, "w");
for ($i = 0; $i < count($con); $i++) {
$con[$i] = trim(str_replace("\n", "", $con[$i]));
fwrite($f, "$con[$i]\n");
}
fclose($f);
$dname = date("d.m.Y");
$fn = "data/$dname.php";
$f = fopen($fn, "a+");
$d = date('H:i:s');
fwrite($f, "$d||:u||:$name||:$ex\n");
fclose($f);
}
?>

acsid
Alfa Guru

2388
# Дата: 20 Окт 2005 13:10 ° Поправил: acsid


и тогда баг исправиться

Deflector( цитата:З.Ы. Код не привел специально - сначала подумай надо ли тебе именно ТАК это реализовывать. Если надо, то дам код ) конец цитаты.

если поможешь воткну ссылку на втвой саит в копирайты чата+во все фаилы+банэр.
--------------------------------------------------------------------
p.s. это чат (исправленый) хотят уже около 300 человек

--------------------------------------------------------------------

Константин
TorrentMaster

3449
# Дата: 20 Окт 2005 13:48


acsid
если поможешь воткну ссылку на втвой саит в копирайты чата+во все фаилы+банэр.
Если честно - то лучше этого пока не делать - если на моем сайте зарегиться много народу и они будут активно использовать мой сервис, то админ меня просто убьет - мои скрипты при большой нагрузке могут положить сервак

Лучше просто где-нить в чате мелко напиши что-то типа "modified by Deflector" и все

А теперь - собственно по поводу скрипта:
дозапись тогоже ника но с новым временем в online.txt
код приведи - а то я подозреваю, что у тебя перезапись там а не дозапись Если так, то я пофиксю

В том, что после else явных багов не вижу: только зачем нужен $ex - я так и не понял - он кажись дальше не юзается

acsid
Alfa Guru

2388
# Дата: 20 Окт 2005 13:54 ° Поправил: acsid


Deflector

я исправил выше. так понятнее?

modified by Deflector - 100% обеспечено.
-----------------------------------
Don't blame me! I'm php lol

. 1 . 2 . >>
Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:49707, gzipped size:12028

Mp3 Download || Webs Studio™ || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]