Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

Объединенный Открытый Проект

Сайт для Настоящих Компьютерщиков

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Русский IkonBoard »   Форум поддержки русской версии IkonBoard »   Не работае чат
RSS

Не работае чат

Текущий рейтинг темы: Нет

<<Назад  Вперед>>Страницы: 1 2
Модератор: Gram
Печать
 
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Кажется, у меня возникло предположение, откуда может браться эта ошибка: возникает деление на ноль. Надо проверить все операции деления в скрипте chat.cgi (может быть, займусь этим на следующей неделе).

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
trew
Начинающий


Всего сообщений: 28
Рейтинг пользователя: 0





Дата регистрации на форуме:
12 янв. 2004
За ранее спасибо, или может сделать через перезапись в некий файл?
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Не понял: перезапись чего и куда?

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
trew
Начинающий


Всего сообщений: 28
Рейтинг пользователя: 0





Дата регистрации на форуме:
12 янв. 2004
Например, скрипт пишет теги в свой файл( data/chat.cgi), потом, когда файл разростается, по мере добавления сообщений, скрипт перезаписывает сам в себя без создания временного файла chat.bak и в этом мне кажется есть проблема, так как не указанно в скрипте, какое колличество записать тегов( строк)  и после чего ему надо перезаписать себя.
Может я сумбурно вырозился, т.е. что я хотел сказать. что можно , только я не знаю как правильно,сделать автоубиение тегов, чтоб было без перезаписи файла, или файл сделать на тристо строк, а после он должен обновится путем записи в bak, а затем создается новый cgi, а bak удаляется.  Есть нечто похожее в одном чате, если  надо , я могу его прислать , чтоб  Вы посмотрели как там оно сделанно, я не программист и мне тяжело объяснить словами :)
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Кажется, я понял в чем проблема: из-за одновременной записи в файл он обнуляется.
Но это исправляется не с помощью bak-файлов (они ведь тоже могут быть перезаписаны), а с помощью функции flock, которую я где-то забыл использовать. Постараюсь в ближайшие дни найти немного времени и проверить chat.cgi еще раз.

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
trew
Начинающий


Всего сообщений: 28
Рейтинг пользователя: 0





Дата регистрации на форуме:
12 янв. 2004
Спасибо, ждем...
trew
Начинающий


Всего сообщений: 28
Рейтинг пользователя: 0





Дата регистрации на форуме:
12 янв. 2004
Что-то не особо двигается....
Может покажете ту часть кода которую надо изменить, или которая не работает, и я попробую сам сделать?
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Да там надо найти все операции деления и поставить перед ними проверку, не является ли данная переменная равной нулю. А заняться я этим просто не успел, т.к. усиленно занимался тестированием своего нового движка.

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
trew
Начинающий


Всего сообщений: 28
Рейтинг пользователя: 0





Дата регистрации на форуме:
12 янв. 2004
Сам я это не найду... А как выглядет эта операция деления, может так что-то попробую...
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Да просто одна переменная, деленная на другую.
$var1/$var2

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
trew
Начинающий


Всего сообщений: 28
Рейтинг пользователя: 0





Дата регистрации на форуме:
12 янв. 2004
Туда -сюда попробывал, и совсем его убил...:) К сожалению не хватает знаний.. :(  Подожду пока Вы освободитесь...
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Осмотрел я этот файл, нашел несколько непоставленных 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')">&raquo;$user</A>&nbsp;~;<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/&lt;/</g; $post =~ s/&gt;/>/g; $post =~ s/&quot;/\"/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>&nbsp;</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>&nbsp;</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">&raquo; Назад на $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>&nbsp;&nbsp;<img src="$imagesurl/images/closedfold.gif" border=0><a href="$forumsummaryprog">&nbsp;&nbsp;$boardname</a><br><br><br>&nbsp;&nbsp;<img src="$imagesurl/images/bar.gif" border=0><img src="$imagesurl/images/openfold.gif" border=0>&nbsp;&nbsp;Войти<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> &nbsp; <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> &nbsp; <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
Спасибо,  сейчас будем тестить....
trew
Начинающий


Всего сообщений: 28
Рейтинг пользователя: 0





Дата регистрации на форуме:
12 янв. 2004
Я не знаю почему, но у меня он совсем не работает, правда он в корне отличается от моего скрипта... Я думал , что что-то с сервером, а оказалось что нет и размер моего файла больше... Может я вышлю свой, чтоб Вы посмотрели?
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Отличаться в корне он не может в принципе, т.к. этот скрипт входит во все стандартные поставки, начиная с Release 3, я только добавил в него четыре или пять строчек.
А почему он не работает (т.е. что происходит)?
P.S. Прислать можно - на адрес admin@xxxxpro.ru

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
<<Назад  Вперед>>Страницы: 1 2
Модератор: Gram
Печать
Объединенный Открытый Проект »   Русский IkonBoard »   Форум поддержки русской версии IkonBoard »   Не работае чат
RSS
Быстрый переход в раздел:


Время выполнения скрипта: 0.0239. Количество выполненных запросов: 18, время выполнения запросов 0.0066