Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Лис 28.07.2005 23:43
Я сделал чат. Нет, ну сделал, конечно, громко сказано... Я попытался сделать чат. Может кому не в лом поисправлять мои ошибки:). Самому смешно.@authoring[] $date[^date::now[]] $names[^table::load[names.txt]] $online[^table::load[online.txt]] $soobsh[^table::load[soobsh.txt]] $authoringforms{ <form method='post'> <table width='250' align=center> <tr><td align='center' COLSPAN=2><input type='test' name='login'></td></tr> <tr><td align='center' COLSPAN=2><input type='password' name='password'></td></tr> <tr><td align=left><input type='submit' name='submit' value='Войти'></td><td align='right'><input type='reset' name='reset' value='Очистить'></td></tr> <tr><td align='center' COLSPAN=2>Если пользователь с таким именем еще не входил в систему вы будете зарегестрированы.<br><b>$Error</b></td></tr> </table> </form>} ^if(def $form:login && def $form:password){ ^if(^names.locate[Name;$form:login]){ ^if($form:password eq $names.password){ ^online.append{$form:login $date.minute} $online.save[online.txt]^chat[]}{ $Error[Неверный пароль.] $authoringforms}}{ ^names.append{$form:login $form:password} ^online.append{$form:login $date.minute} $names.save[names.txt] $online.save[online.txt]^chat[]}}{ $Error[Надо заполнить все поля формы.] $authoringforms} @chat[] <form method='post'> <table width='950' height='550' border=1 align=center> <tr heigh='90%'><td width=90% valign=up>^vivodsoobshenii[]</td><td valign=up>^onlinelist[]</td></tr> <tr><td COLSPAN=2 height=50>^otpravkasoobsh[]</td></tr> </table> #чтобы не возвращало к входу <input type='hidden' name='login' value='$form:login'> <input type='hidden' name='password' value='$form:password'> </form> @onlinelist[] #удаление старых записей из списка ^for[i](1;^online.count[]){ ^online.offset[set]($i-1) $razn($online.time-$date.minute) ^if($razn>3 || $razn<-3){ $online2[^table::create[$online;$.offset($i)]] $online[^table::create[$online;$.limit($i-1)]] ^online.join[$online2] ^online.save[online.txt]}} #перечисление посетителей ^online.menu{ ^if($online.names eq $form:login){<b>$online.names<br></b>}{ <input type='checkbox' name='ch' value='$online.names'>$online.names<br>}} @otpravkasoobsh[] #форма для сообщения <input type='text' name='soobsh' size='100'><br> <input type='submit' name='submit' value='Отправить'> <input type='reset' name='reset' value='Очистить'> Поставте галочку возле имени того, кому хотите отправить сообщение. @vivodsoobshenii[] #определение адресата сообщения $totab[$form:tables.ch] ^for[i](1;^totab.count[]-1){ ^totab.offset($i-1) $to[$to, $totab.field]} ^totab.offset(^totab.count[]-1) $to[$to, $totab.fields^:] ^if(def $to){}{$to[all]} #добовление в таблицу сообщений ^if(def $form:soobsh){ ^soobsh.append{$form:login $to^: $form:soobsh} ^soobsh.save[soobsh.txt]<br>}{ <b>Скажем "Нет!" пустым сообщениям!</b><br>} #обновление времени последней связи с поситителем $online2[^table::create[$online;$.offset(^online.locate[names;$form:login])]] $online[^table::create[$online;$.limit(^online.locate[names;$form:login]-1)]] ^online.append{$form:login $date.minute} ^online.join[$online2] ^online.save[online.txt] #удаление лишних сообщений ^if(^soobsh.count[]>20){ $soobsh[^table::create[$soobsh;$.offset(^soobsh.count[]-20)]] ^soobsh.save[soobsh.txt]} #вывод на экран ^soobsh.menu{ $soobsh.author to $soobsh.tohom $soobsh.text<br>}Пасибо хотябы за внимание.