Не работае чат
Текущий рейтинг темы: Нет
| 4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79
Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 29 января 2004 17:10
Кажется, у меня возникло предположение, откуда может браться эта ошибка: возникает деление на ноль. Надо проверить все операции деления в скрипте chat.cgi (может быть, займусь этим на следующей неделе).
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
| trew
Начинающий
Всего сообщений: 28 Рейтинг пользователя: 0
Дата регистрации на форуме: 12 янв. 2004
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 29 января 2004 17:21
За ранее спасибо, или может сделать через перезапись в некий файл?
| | | |
| 4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79
Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 29 января 2004 17:45
Не понял: перезапись чего и куда?
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
| trew
Начинающий
Всего сообщений: 28 Рейтинг пользователя: 0
Дата регистрации на форуме: 12 янв. 2004
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 29 января 2004 22:46
Например, скрипт пишет теги в свой файл( data/chat.cgi), потом, когда файл разростается, по мере добавления сообщений, скрипт перезаписывает сам в себя без создания временного файла chat.bak и в этом мне кажется есть проблема, так как не указанно в скрипте, какое колличество записать тегов( строк) и после чего ему надо перезаписать себя. Может я сумбурно вырозился, т.е. что я хотел сказать. что можно , только я не знаю как правильно,сделать автоубиение тегов, чтоб было без перезаписи файла, или файл сделать на тристо строк, а после он должен обновится путем записи в bak, а затем создается новый cgi, а bak удаляется. Есть нечто похожее в одном чате, если надо , я могу его прислать , чтоб Вы посмотрели как там оно сделанно, я не программист и мне тяжело объяснить словами
| | | |
| 4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79
Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 30 января 2004 9:23
Кажется, я понял в чем проблема: из-за одновременной записи в файл он обнуляется. Но это исправляется не с помощью bak-файлов (они ведь тоже могут быть перезаписаны), а с помощью функции flock, которую я где-то забыл использовать. Постараюсь в ближайшие дни найти немного времени и проверить chat.cgi еще раз.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
| trew
Начинающий
Всего сообщений: 28 Рейтинг пользователя: 0
Дата регистрации на форуме: 12 янв. 2004
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 30 января 2004 12:57
Спасибо, ждем...
| | | |
| trew
Начинающий
Всего сообщений: 28 Рейтинг пользователя: 0
Дата регистрации на форуме: 12 янв. 2004
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 8 февраля 2004 18:11
Что-то не особо двигается.... Может покажете ту часть кода которую надо изменить, или которая не работает, и я попробую сам сделать?
| | | |
| 4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79
Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 9 февраля 2004 12:19
Да там надо найти все операции деления и поставить перед ними проверку, не является ли данная переменная равной нулю. А заняться я этим просто не успел, т.к. усиленно занимался тестированием своего нового движка.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
| trew
Начинающий
Всего сообщений: 28 Рейтинг пользователя: 0
Дата регистрации на форуме: 12 янв. 2004
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 9 февраля 2004 13:27
Сам я это не найду... А как выглядет эта операция деления, может так что-то попробую...
| | | |
| 4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79
Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 9 февраля 2004 17:56
Да просто одна переменная, деленная на другую. $var1/$var2
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
| trew
Начинающий
Всего сообщений: 28 Рейтинг пользователя: 0
Дата регистрации на форуме: 12 янв. 2004
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 11 февраля 2004 23:53
Туда -сюда попробывал, и совсем его убил...  К сожалению не хватает знаний.. :( Подожду пока Вы освободитесь...
| | | |
| 4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79
Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 12 февраля 2004 15:33
Осмотрел я этот файл, нашел несколько непоставленных flockов (в том числе, один - на запись, что наиболее опасно). Предлагаю попробовать исправленную версию: <br>#!/usr/bin/perl<p>#############################################################<br># Ikonboard v2.1<br># Copyright 2001 Ikonboard.com - All Rights Reserved<br># Ikonboard is a trademark of Ikonboard.com<br>#<br># Software Distributed by: Ikonboard.com<br># Visit us online at http://www.ikonboard.com<br># Email us on boards@ikonboard.com<br>#<br># This file is written by XXXX Pro for Russian Ikonboard<br>#############################################################<p><br>use CGI::Carp "fatalsToBrowser"; # Output errors to browser<br>use CGI qw(:standard); # Saves loads of work<br>$CGI::POST_MAX=1024 * 150; # limit post data<br>$CGI::DISABLE_UPLOADS = 1; # Disable uploads<p>eval {<br>($0 =~ m,(.*)/[^/]+,) and unshift (@INC, "$1");<br>($0 =~ m,(.*)\[^\]+,) and unshift (@INC, "$1");<br>require "ikon.lib"; # Require ikonboard ()<br>require "data/progs.cgi"; # Require prog names<br>require "data/boardinfo.cgi";# Require board info<br>require "data/styles.cgi"; # Require styles info<br>require "ikonmail.lib"; # Require email func ()<br>require "data/addons.cgi" # Some useful things<br>};<br>if ($@) {<br> print header(-charset=>$forumcharset); print start_html(-title=>"Ошибка Ikonboard!");<br> print "Невозможно найти следующие файлы: $@\nЕсли вы используете Windows NT, вам, возможно придется прописать полный путь в каждый оператор require во всех скриптах";<br> print end_html; exit;<br>}<p>#################--- Begin the program ---###################<p>$thisprog = "chat.cgi";<p>$query = new CGI;<p>&checkVALIDITY;<p>for ('action','usecolor','inpost','tomember','inshowemoticons','inmembername','inpassword') {<br> next unless defined $_;<br> next if $_ eq 'SEND_MAIL';<br> $tp = $query->param($_);<br> $tp = &cleaninput("$tp");<br> ${$_} = $tp;<br> }<p>if ($inshowemoticons ne "on") { $inshowemoticons = "no"; }<br>else {$inshowemoticons = "yes"; }<p>if (&allowed_ip ne "yes") { &error ("входе в чат&С данного IP-адреса просмотр форума запрещен."); }<p>if (!$chatbgcolor) { $chatbgcolor="#FFFFFF"; }<p> if (!$inmembername) { $inmembername = cookie("amembernamecookie"); }<br> if (!$inpassword) {$inpassword = cookie("apasswordcookie"); }<br> if (!$inmembername) { $inmembername = cookie ("atempchatcookie"); }<p> if ($inmembername eq "" && $action ne "printlogin") {<br> $action = "chatloginform";<br> }<br> &getmember("$inmembername");<br> <br> if ($userregistered eq "no" && $allowchatguest ne "yes" && $inmembername ne "") { <br> print header(-charset=>$forumcharset);<br> &error("входе в чат&Незарегистрированным пользователям запрещено входить в чат."); }<br> if ($inpassword ne $password) { <br> print header(-charset=>$forumcharset); <br> &error("входе в чат&Неверный пароль."); }<br> elsif ($membercode eq "banned") { <br> print header(-charset=>$forumcharset); <br> &error("входе в чат&Вы удалены с форума."); }<br> elsif ($allowchat eq "no") {<br> print header(-charset=>$forumcharset); <br> &error("входе в чат&Вам запрещено входить в чат."); <br> } <br> elsif ($chatenabled ne "yes") { <br> print header(-charset=>$forumcharset); <br> &error("входе в чат&Использование чата запрещено Администратором."); }<p> if ($action eq "showheader") { <br> &showheader; }<br> elsif ($action eq "showmessages") {<br> &printmessages; }<br> elsif ($action eq "showform") {<br> &printform; }<br> elsif ($action eq "addmessage") {<br> &add_message; } <br> elsif ($action eq "chatloginform") {<br> &chat_login_form; }<br> elsif ($action eq "printlogin") {<br> &print_login; }<br> elsif ($action eq "chatquit") {<br> &chat_quit; } <br> else {<br> $output = qq~<HTML><br><HEAD><TITLE>$boardname - Чат</TITLE></HEAD><br><FRAMESET rows="70, *, 100" cols="1*" border=2 bordercolor=><br><FRAME name="header" src="$thisprog?action=showheader" NORESIZE MARGINHEIGHT="0" SCROLLING=auto><br><FRAME name="messages" src="$thisprog?action=showmessages" NORESIZE MARGINHEIGHT="0" SCROLLING=auto><br><FRAME name="showform" src="$thisprog?action=showform&inshowemoticons=on" NORESIZE MARGINHEIGHT="0" SCROLLING=auto><br></FRAMESET><br></HTML>~; <br> <br> print ("Content-type: text/html\n\n");<br> print ("$output\n\n");<br> } <p>############## reply side #################<p>sub printform {<p> print header(-charset=>$forumcharset); <p> if ($inshowemoticons eq "yes") { $checksmiles = "checked"; }<br> else { $checksmiles = ""; }<p> if ($emoticons eq "on") {<br> $emoticonslink = qq~<a href="$miscprog?action=showsmilies" target=_blank>Смайлики разрешены</a>~;<br> $emoticonsbutton =qq~<input type=checkbox name="inshowemoticons" $checksmiles><b>Использовать</b> смайлики?<br>~;<br> }<p> my($htmlxstat);<br> if ($chathtmlstate eq "on") {<br> $htmlxstat="разрешен";<br> } <br> else { <br> $htmlxstat="запрещен";<br> }<br> my($ikonxstat);<br> if ($chaticodestate eq "on") {<br> $ikonxstat="разрешен";<br> } <br> else { <br> $ikonxstat="запрещен";<br> }<br> $coloroutput = "<select name=\"usecolor\">\n<br><option value=\"#000000\">Черный\n<br><option value=\"#FFFFFF\">Белый\n<br><option value=\"#008000\">Темно-зеленый\n<br><option value=\"#800000\">Коричневый\n <br><option value=\"#808000\">Белый\n<br><option value=\"#000080\">Темно-синий\n<br><option value=\"#800080\">Фиолетовый\n<br><option value=\"#808080\">Серый\n<br><option value=\"#FFFF00\">Желтый\n<br><option value=\"#00FF00\">Светло-зеленый\n<br><option value=\"#00FFFF\">Голубой\n<br><option value=\"#FF00FF\">Светло-фиолетовый\n<br><option value=\"#C0C0C0\">Светло-серый\n<br><option value=\"#FF0000\">Красный\n<br><option value=\"#0000FF\">Синий\n<br><option value=\"#008080\">Серебристый\n<br></select>\n"; <br> $coloroutput =~ s/value=\"$usecolor\"/value=\"$usecolor\" selected/; <p> $filetoopen = $ikondir . "data/chatuser.cgi";<br> open(FILE, "<$filetoopen");<br> @usersonline = <FILE>;<br> close (FILE);<br> $useroutput = "<select name=\"tomember\">\n"; <br> $useroutput .= qq~<option value="Guest" selected>Всем присутствующим\n~;<br> foreach (@usersonline) {<br> chomp($_);<br> ($user,$lasttime)=split(/\|/,$_);<br> $users .= qq~<a href="javascript:AddName('$user')">»$user</A> ~;<br> if ($user ne $inmembername) {<br> $useroutput .= qq~<option value="$user">$user\n~; }<br> }<br> $useroutput .= "</select>\n";<br> <br> $output .= qq~<br><HTML><HEAD><br><META http-equiv="pragma" content="nocache"> <br></HEAD><br><BODY OnLoad='parent.messages.location.reload();<br>document.forms[0].inpost.value="";' bgcolor="$chatbgcolor"><br><script language="JavaScript"><br></script>~; <br> <br> foreach (@allmessages) {<br> chomp;<br> ($frommember,$usecolor,$tomember,$posttime,$showemoticons,$post)=split(/\|/,$_); <br> <br> if ($posttime+600 > time) {<br> if ($chathtmlstate eq 'on') {<br> $post =~ s/</</g; $post =~ s/>/>/g; $post =~ s/"/\"/g;<br> }<br> if ($chaticodestate eq 'on') {<br> $post = &ikoncode("$post");<br> }<br> <br> if ($inmembername eq $tomember || $membercode eq 'ad' || $tomember eq "Guest" || $inmembername eq $frommember)<br> {<br> if ($count == 1) {<br> $postbackcolor = "$postcolorone"; $postfontcolor = "$postfontcolorone"; $count++;<br> }<br> else {<br> $postbackcolor = "$postcolortwo"; $postfontcolor = "$postfontcolortwo"; $count = 1;<br> }<br> <br> if (($emoticons eq 'on') and ($showemoticons eq 'yes') and ($post =~ /:(.+?):/)) {<br> $post = &doemoticons("$post");<br> }<br> <br> if (($emoticons eq 'on') && ($showemoticons eq 'yes')) {<br> $post =~ s/\:\)/<img src=\"$imagesurl\/emoticons\/smile.gif\" border=\"0\">/g;<br> $post =~ s/\;\)/<img src=\"$imagesurl\/emoticons\/wink.gif\" border=\"0\">/g;<br> $post =~ s/\:\(/<img src=\"$imagesurl\/emoticons\/sad.gif\" border=\"0\">/g;<br> $post =~ s/\:o/<img src=\"$imagesurl\/emoticons\/shocked.gif\" border=\"0\">/g;<br> $post = &doemoticons($post);<br> }<br> if ($tomember ne $inmembername && $membercode eq 'ad' && $tomember ne "Guest") {<br> $nameout = "<B>$frommember</B><BR>[Частное сообщение для $tomember]" }<br> elsif ($frommember eq $inmembername && $tomember ne "Guest") {<br> $nameout = qq~<B>$frommember</B><BR>[Исходящее]~; }<br> elsif ($tomember eq $inmembername) {<br> $nameout = "<B>$frommember</B><BR>[Частное]";<br> }<br> else {$nameout = "<B>$frommember</B>"} <br> $output1 = qq~<br> <tr><br><td bgcolor="$postbackcolor" valign="top" width=20% ><br><a href="$profileprog?action=show&member=$frommember" target="_blank"><br><font face="$posternamefont" color="$posternamecolor" size="$dfontsize2"><br>$nameout</font></a><br></td><br><td bgcolor="$postbackcolor" valign=top width=80%> <br><font face="$font" color=$usecolor size=$dfontsize2><br>$post<br></td><br></tr> ~ . $output1;<br> }<br> $procdata.= "$frommember|$usecolor|$tomember|$posttime|$showemoticons|$post\n";<br> } <br> }<br> $filetoopen = $ikondir . "data/chatuser.cgi";<br> open(FILE, "<$filetoopen");<br> flock(FILE,1);<br> @usersonline = <FILE>;<br> close(FILE);<br> $currenttime=time;<br> $userprocdata = "";<br> $newuser = 1;<br> $olduserexit = 0;<br> foreach (@usersonline) {<br> chomp($_);<br> ($user,$lasttime)=split(/\|/,$_);<br> if ($lasttime+300 < $currenttime && $user ne $inmembername) {<br> $procdata = $procdata . "|#000000|Guest|$currenttime|no|$user выходит из чата по тайм-ауту\n" ; <br> if ($count == 1) {<br> $postbackcolor = "$postcolorone"; $postfontcolor = "$postfontcolorone"; $count++;<br> }<br> else {<br> $postbackcolor = "$postcolortwo"; $postfontcolor = "$postfontcolortwo"; $count = 1;<br> }<br> $output1 = qq~<br><tr><br><td bgcolor="$postbackcolor" valign="top" width=20%><br><font face="$posternamefont" color="#000000" size="$dfontsize2"><br> </font><br></td><br><td bgcolor="$postbackcolor" valign=top width=80%> <br><font face="$font" color=#000000 size=$dfontsize2><br>$user выходит из чата по тайм-ауту<br></td><br></tr> ~ . $output1;<br> $olduserexit = 1;<br> <br> } <br> elsif ($inmembername eq $user) {<br> $newuser = 0;<br> $userprocdata .= "$user|$currenttime\n";<br> } <br> else {<br> $userprocdata .= "$user|$lasttime\n";<br> }<br> }<br> if ($newuser==1) {<br> $userprocdata .= "$inmembername|$currenttime\n";<br> if ($count == 1) {<br> $postbackcolor = "$postcolorone"; $postfontcolor = "$postfontcolorone"; $count++;<br> }<br> else {<br> $postbackcolor = "$postcolortwo"; $postfontcolor = "$postfontcolortwo"; $count = 1;<br> }<br> $procdata = $procdata . " |#000000|Guest|$currenttime|no|$inmembername входит в чат.\n";<br> $output1 = qq~<br><tr><br><td bgcolor="$postbackcolor" valign="top" width=20%><br><font face="$posternamefont" color="#000000" size="$dfontsize2"><br> </font><br></td><br><td bgcolor="$postbackcolor" valign=top width=80%> <br><font face="$font" color=#000000 size=$dfontsize2><br>$inmembername входит в чат.<br></td><br></tr> ~ . $output1;<br> }<br> $filetoopen = $ikondir . "data/chatuser.cgi"; <br> open(USERFILE,">$filetoopen");<br> flock(USERFILE, 2);<br> print USERFILE ($userprocdata);<br> close(USERFILE);<br> $filetoopen = $ikondir . "data/chat.cgi"; <br> open(FILE,">$filetoopen");<br> flock(FILE, 2);<br> print FILE ($procdata);<br> close(FILE);<br> if ($olduserexit || $newuser) {<br> $bodystart = qq ~щnLoad="parent.showform.location.reload();<br> parent.header.location.reload();"~ <br> } <br> print header(-charset=>$forumcharset); <br> $output = qq~<br><HTML><br><HEAD><br><META http-equiv="content-type" content="text/html"><br><META http-equiv="refresh" content="12; $thisprog#msgstart?action=showmessages"><br><META http-equiv="pragma" content="nocache"><br></HEAD><br><BODY $bodystart bgcolor="$chatbgcolor"><br><A name="msgstart"></A><br><table cellpadding=0 cellspacing=0 border=0 width="100%" align="center"><br><tr><td><br><table cellpadding=3 cellspacing=1 border=0 width=100%><br>~; <br> if (!$output1) {$output1 = qq~<tr><td bgcolor="$postbackcolor" valign=top> <br> <font face="$font" color=$postfontcolor size=$dfontsize2><br> <CENTER>Нет сообщений.</CENTER></td></tr>~}<br> $output.=$output1 . "</table></td></tr></table></html>";<br> print ("$output\n\n");<br>} #End showmessages routine<p>sub showheader<br>{ print header(-charset=>$forumcharset); <br> $output = qq~<HTML><BODY bgcolor="$chatbgcolor"><br><a href="headerstart"></a> <br><table width=100% align="center" cellspacing="1" cellpadding="0" border="0" bgcolor=$titleborder><br><tr><br><td bgcolor=$titleborder><br><table width="100%" cellspacing="0" cellpadding="3" border="0"><br><tr><br><td bgcolor=$titleback><font face=$font color=$titlefont size=$dfontsize4><b>$boardname</font></b><br><font face=$font color=$titlefont size=$dfontsize2>$boarddescription</font></td><br><td bgcolor=$titleback align=right valign=bottom><font face=$font color=$titlefont size=$dfontsize1><a href="$homeurl" target="_top">» Назад на $homename</a></font></td><br></tr><tr><br><td bgcolor=$menubackground colspan=2><br><font face=$font color=$menufontcolor size=$dfontsize2><br><a href="$chatprog?action=chatquit" target=_top>Выйти из чата</a> | <a href="$thisprog" target="_top">Обновить все</a> | <a href="$thisprog?action=showmessages" target="messages">Обновить сообщения</a><br></font><br></td></tr></table><br></td></tr></table><br>~; <br>print ("$output \n\n");<br>} <p>sub chat_login_form {<p>&title;<p>$output = qq~<br><table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center><br><tr><td width=30% rowspan=2><img src="$imagesurl/images/$boardlogo" border=0></td><br><td valign=top align=left><font face="$font" color=$fontcolormisc size=$dfontsize2><br><font face="$font" color=$fontcolormisc size=$dfontsize2><br> <img src="$imagesurl/images/closedfold.gif" border=0><a href="$forumsummaryprog"> $boardname</a><br><br><br> <img src="$imagesurl/images/bar.gif" border=0><img src="$imagesurl/images/openfold.gif" border=0> Войти<br></td></tr></table><br><p><br><table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center><br><tr><td><table cellpadding=6 cellspacing=1 border=0 width=100%><br>~;<p> print header(-charset=>$forumcharset);<br> $inmembername =~ s/\_/ /g;<br> $output .= qq~<br><form action="$thisprog" method="post"><br><input type=hidden name="action" value="printlogin"><br><tr><br><td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><font face="$font" color=$fontcolormisc size=$dfontsize2><b>Введите необходимую информацию для входа на чат</b></font></td></tr><br><tr><br><td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=$dfontsize1>Ваше имя:</font></td><br><td bgcolor=$miscbackone valign=middle><input type=text name="inmembername" value="$inmembername" size=20> <a href="$registerprog"><font face="$font" color=$fontcolormisc size=$dfontsize1>Вы зарегистрировались?</font></a></td></tr><br><tr><br><td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=$dfontsize1>Ваш пароль:</font></td><br><td bgcolor=$miscbackone valign=middle><input type=password name="inpassword" value="$inpassword" size=20> <font face="$font" color=$fontcolormisc size=$dfontsize1><a href="$profileprog?action=lostpass">Забыли пароль?</a></font></td></tr><br><tr><br><td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><input type=submit name="Ввести" value="Войти"></form></td></tr></table></td></tr></table><br>~;<br> &output(<br> -Title => "$boardname - Вход в чат ", <br> -ToPrint => $output, <br> -Version => $versionnumber <br> );<br>}<p>sub print_login {<br> &getmember("$inmembername");<br> <br> if (($userregistered ne "no") && ($inpassword eq $password)) { <br> $namecookie = cookie(-name => "amembernamecookie",<br> -value => "$inmembername",<br> -path => "$cookiepath",<br> -expires => "");<br> $passcookie = cookie(-name => "apasswordcookie",<br> -value => "$inpassword",<br> -path => "$cookiepath",<br> -expires => "");<br> }<br> elsif (($userregistered ne "no") && ($inpassword ne $password)) { <br> &error("входе в чат&Неверный пароль.");<br> }<br> elsif (($userregistered ne "no") && ($allowchat ne "yes")) { <br> &error("входе в чат&Вам запрещено входить в чат.");<br> }<br> elsif ((m/\b[_]/) || (m/\W+/) || (m/_{2,}/) || (m/[_]\b/)) {<br> print header(-charset=>$forumcharset); &error("входе в чат&Имя пользователя содержит запрещенные символы.");<br> }<br> elsif ($userregistered eq "no" && $allowchatguest eq "yes") {<br> $namecookie = cookie(-name => "atempchatcookie",<br> -path => "$cookiepath",<br> -value => "$inmembername",<br> -expires => "");<br> $passcookie = cookie(-name => "apasswordcookie",<br> -value => "",<br> -path => "$cookiepath",<br> -expires => "");<br> }<br> else {<br> print header(-charset=>$forumcharset); <br> &error("входе в чат&Незарегистрированным пользователям запрещено входить в чат."); <br> }<br> print ("Status: 302 Moved\nSet-Cookie: $namecookie\nSet-Cookie: $passcookie\nLocation: $chatprog\n\n"); <br>} <p>sub chat_quit {<br> $filetoopen = $ikondir . "data/chatuser.cgi";<br> open(FILE, "<$filetoopen");<br> flock(FILE,1);<br> @usersonline = <FILE>;<br> close (FILE);<br> foreach (@usersonline) {<br> chomp($_);<br> ($user,$lasttime)=split(/\|/,$_);<br> if ($user ne $inmembername) { $userprocdata .= "$user|$lasttime\n"; }<br> }<br> open(USERFILE,">$filetoopen");<br> flock(USERFILE, 2);<br> print USERFILE ($userprocdata);<br> close(USERFILE);<br> $filetoopen = $ikondir . "data/chat.cgi"; <br> open(FILE,">>$filetoopen");<br> flock(FILE, 2);<br> $currenttime=time;<br> print FILE ("|#000000|Guest|$currenttime|no|$inmembername выходит из чата.\n");<br> close(FILE);<br> $namecookie = cookie(-name => "atempchatcookie",<br> -path => "$cookiepath",<br> -value => "",<br> -expires => "now");<br> print ("Status: 302 Moved\nSet-Cookie: $namecookie\nLocation: $forumsummaryprog\n\n");<br>}<br>
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
| trew
Начинающий
Всего сообщений: 28 Рейтинг пользователя: 0
Дата регистрации на форуме: 12 янв. 2004
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 12 февраля 2004 17:24
Спасибо, сейчас будем тестить....
| | | |
| trew
Начинающий
Всего сообщений: 28 Рейтинг пользователя: 0
Дата регистрации на форуме: 12 янв. 2004
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 14 февраля 2004 14:33
Я не знаю почему, но у меня он совсем не работает, правда он в корне отличается от моего скрипта... Я думал , что что-то с сервером, а оказалось что нет и размер моего файла больше... Может я вышлю свой, чтоб Вы посмотрели?
| | | |
| 4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79
Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 14 февраля 2004 19:33
Отличаться в корне он не может в принципе, т.к. этот скрипт входит во все стандартные поставки, начиная с Release 3, я только добавил в него четыре или пять строчек. А почему он не работает (т.е. что происходит)? P.S. Прислать можно - на адрес admin@xxxxpro.ru
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
Время выполнения скрипта: 0.0239. Количество выполненных запросов: 18, время выполнения запросов 0.0066
|