форум вебмастеро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 . >> |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:49707, gzipped size:12028 |