Avatar billede kelis Nybegynder
07. februar 2007 - 12:25 Der er 1 kommentar og
1 løsning

Hjælp til tinychat ønskes?

Hej eksperter

Jeg har installeret tinychat og har nogle problemer. Da jeg installerede oprettede ”install.php” ikke tabellerne i databasen. Jeg fik kopieret user.sql ind i databasen men fik/får fejl på ban.sql og postmsg.sql. når jeg forsøger at kopiererdem ind.

De to andre tabeller ser således ud :

CREATE TABLE tinychat_postmsg
(
  msg_id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
  userkey varchar(48),
  usermsg varchar(255),
  seton int,
  PRIMARY KEY (msg_id)
)

CREATE TABLE tinychat_ban
(
  ban_id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
  ban_ip varchar(15),
  ban_expire int,
  PRIMARY KEY (ban_id)
)

Jeg oprettede mig så på chatten, men kunne ikke logge ind jeg måtte i databasen og sætte status til 3 før jeg fik lov. Det går fint jeg kan logge ind og skrive i chatten.

Andre kan godt oprette sig, men ikke logge ind de får denne her fejl. Jeg håber der er et klog hoved eller to, der kan hjælpe mig lidt her.

Mvh


”Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /usr/home/web/web591/tester/chatbase.php on line 66”

chatbasen.php ser sådan ud :

<?
/*
    TinyChat V1.00 - A simple web based chat written in PHP

    Copyright (C) 2000 Thomas Lesvang (tl@coolchat.dk)
    Modified for PHP4 by Dan Storm (webmaster@shady.dk)
   
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

    require("configuration.php");

    mysql_connect($dbhost, $dbuser, $dbpass);
    mysql_select_db($database);

    class HexChat
    {
        function register()
        {
            $nar = func_num_args();
            if( $nar != 2 )
                return 0;
            $args = func_get_args();
            $result = MYSQL_QUERY("SELECT * FROM tinychat_user WHERE user_name='$args[0]' AND user_pass='$args[1]'");
            if( ($num = mysql_numrows($result)) == 1 )
                return 0;
            $password = md5($args[1]);
            if( !MYSQL_QUERY("INSERT INTO tinychat_user (user_name, user_pass, user_status, user_textcol, user_namecol)
                              VALUES('$args[0]', '$password', 1, '".$GLOBALS["text_color"]."','".$GLOBALS["text_color"]."')") )
                return 0;
            return 1;
        }

        function logmsg($logfile, $msg)
        {
            $logf = fopen("logs/$logfile", "a");
            fputs($logf, date("d/m - H:i : "));
            fputs($logf, "$msg\n");
            fclose($logf);
        }
       
        function login($username, $password)
        {
            MYSQL_QUERY("DELETE FROM tinychat_postmsg WHERE seton+1800>".time());
            MYSQL_QUERY("DELETE FROM tinychat_ban WHERE ban_expire<".time());
            $password = md5($password);
            $result = MYSQL_QUERY("SELECT * FROM tinychat_user WHERE user_name='$username' AND user_pass='$password'");
            if( ($num = mysql_numrows($result)) == 0 )
                return 0;

            if( ($user_status = mysql_result($result,0,"user_status")) == 1 )
            {
                $resultb = MYSQL_QUERY("SELECT * FROM tinychat_ban WHERE ban_ip='".$_SERVER['REMOTE_ADDR']."'");
                if( ($numb = mysql_numrows($resultb)) > 0 )
                    return -1;
            }
            $user_id = mysql_result($result,0,"user_id");
            $user_textcol = mysql_result($result,0,"user_textcol");
            $user_namecol = mysql_result($result,0,"user_namecol");

            MYSQL_QUERY("UPDATE tinychat_user SET user_lastlogin=".time().", last_room='$room', user_lastip='".$_SERVER['REMOTE_ADDR']."' WHERE user_id=$user_id");
           
            $keys[0] = $user_id;
            $keys[1] = time()."KEY";
            $userfile = fopen("data/user$user_id", "w");
            fputs($userfile, time()."\n");
            fputs($userfile, $keys[1]."\n");
            fputs($userfile, $user_status."\n");
            fputs($userfile, $user_textcol."\n");
            fputs($userfile, $user_namecol."\n");
            fputs($userfile, $username."\n");
            fputs($userfile, $GLOBALS["REMOTE_ADDR"]."\n");
            fclose($userfile);

            $login_msg = $username.$GLOBALS["CONF_LoginMsg"].date("H:i");
            if( ($fp=@fopen("data/globalmsg", "r")) )
            {
                if( !file_exists("data/msg$user_id") )
                {
                    $this->write_system($login_msg);
                    $msgfile = fread($fp, 8192);
                    fclose($fp);
                    if( ($fp=@fopen("data/msg$user_id", "w")) )
                    {
                        fputs($fp, $msgfile);
                        fclose($fp);
                    }
                }
            }
            $this->logmsg("login.log", $login_msg);
            return $keys;
        }

        function validate_user($userid, $userkey)
        {
            $userfile = @file("data/user$userid");
            if( (chop($userfile[1])) != $userkey )
                return 0;
            MYSQL_QUERY("UPDATE tinychat_user SET user_lastcontact=".time()." WHERE user_id=$userid");
            if( chop($userfile[2]) == 1 ) $myuser = new HexChatNormalUser($userid, $userkey, chop($userfile[3]), chop($userfile[4]), chop($userfile[5]), chop($userfile[2]));
            if( chop($userfile[2]) == 2 ) $myuser = new HexChatCoAdminUser($userid, $userkey, chop($userfile[3]), chop($userfile[4]), chop($userfile[5]), chop($userfile[2]));
            if( chop($userfile[2]) == 3 ) $myuser = new HexChatAdminUser($userid, $userkey, chop($userfile[3]), chop($userfile[4]), chop($userfile[5]), chop($userfile[2]));
            return $myuser;
        }

        function change_nick($user, $nick)
        {
            $msg = "<b>".$user->username."</b>".$GLOBALS["CONF_NickChange"]."<b>$nick</b>...";
            $user->username = $nick;
            $this->update_user($user);
            $this->write_system($msg);
        }

        function change_namecolor($user, $color)
        {
            $msg = "<b>".$user->username."</b>".$GLOBALS["CONF_NameColorChange"]."<b>$color</b>";
            $user->namecol = $color;
            $this->update_user($user);
            $this->write_private_system($msg, $user->username, $user->userid);
        }

        function change_textcolor($user, $color)
        {
            $msg = "<b>".$user->username."</b>".$GLOBALS["CONF_TextColorChange"]."<b>$color</b>";
            $user->textcol = $color;
            $this->update_user($user);
            $this->write_private_system($msg, $user->username, $user->userid);
        }

        function update_user($user)
        {
            $userfile = fopen("data/user".$user->userid, "w");
            fputs($userfile, time()."\n");
            fputs($userfile, $user->userkey."\n");
            fputs($userfile, $user->status."\n");
            fputs($userfile, $user->textcol."\n");
            fputs($userfile, $user->namecol."\n");
            fputs($userfile, $user->username."\n");
            fputs($userfile, $GLOBALS["REMOTE_ADDR"]."\n");
            fclose($userfile);
        }
       
        function inactivity() {
        }


        function logout($userid, $username)
        {
                $logout_msg = $username.$GLOBALS["CONF_LogoutMsg"].date("H:i");
                $this->write_system($logout_msg);
                MYSQL_QUERY("UPDATE tinychat_user SET user_lastcontact=0 WHERE user_id=".$userid);
                unlink("data/msg$userid");
                unlink("data/user$userid");
        }

        function change_topic($topic)
        {
            if( ($fp=@fopen("data/topic", "w")) )
            {
                fputs($fp, $topic);
                fclose($fp);
            }
        }

        function specialmsg($msg)
        {
            if( strlen($msg) > 384 ) $msg = substr($msg, 0, 384);
            $orilen = strlen($msg);
            $msg = ereg_replace("http://([a-zA-Z0-9@:%_.~#-\?&]*)", "<a target=_blank href=\"http://\\1\">\\1</a>", $msg);
            $msg = ereg_replace("([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+[.]{1}[a-zA-Z0-9._-]+)","<a href=\"mailto:\\1\">\\1</a>",$msg);
            if( strlen($msg) == $orilen )
            {
                $msg = ereg_replace("\|([^+]+)\|", "<b>\\1</b>", $msg);
                $msg = ereg_replace("_([^+]+)_", "<i>\\1</i>", $msg);
            }
            return $msg;
        }

        function write_public($msg, $ncol, $tcol, $uname)
        {
            $msg = $this->specialmsg($msg);            $besked = "<font color=#".$ncol."><b>".$uname." : </b></font>";
            if( strcasecmp($tcol,$GLOBALS["text_color"]) )
                $besked .= "<font color=#".$tcol.">".$msg."</font><br>\n";
            else
                $besked .= "$msg<br>\n";
            $this->logmsg("message.log", $besked);
            $message = @file("data/globalmsg");
            if( ($fp=@fopen("data/globalmsg", "w")) )
            {
                fputs($fp, $besked);
                for ( $i=0 ; $i<25-1 ; $i++ )
                    fputs($fp, $message[$i]);
                fclose($fp);
            }
            $result = MYSQL_QUERY("SELECT user_id, user_name FROM tinychat_user WHERE user_lastcontact+300>".time());
            if( ($num = mysql_numrows($result)) < 1 )
                return;
            $i=0;
            while( $i < $num )
            {
                $user_id = mysql_result($result, $i,"user_id");
                $message = @file("data/msg$user_id");
                if( ($fp=@fopen("data/msg$user_id", "w")) )
                {
                    fputs($fp, $besked);
                    for ( $j=0 ; $j<25-1 ; $j++ )
                        fputs($fp, $message[$j]);
                    fclose($fp);
                }
                $i++;
            }
        }

        function write_public_action($msg, $uname)
        {
            $besked = "<font color=#".$GLOBALS["action_color"]."><i>".$uname." $msg</i></font><br>\n";
            $this->logmsg("message.log", $besked);
            $message = @file("data/globalmsg");
            if( ($fp=@fopen("data/globalmsg", "w")) )
            {
                fputs($fp, $besked);
                for ( $i=0 ; $i<25-1 ; $i++ )
                    fputs($fp, $message[$i]);
                fclose($fp);
            }
            $result = MYSQL_QUERY("SELECT user_id, user_name FROM tinychat_user WHERE user_lastcontact+300>".time());
            if( ($num = mysql_numrows($result)) < 1 )
                return;
            $i=0;
            while( $i < $num )
            {
                $user_id = mysql_result($result, $i,"user_id");
                $message = @file("data/msg$user_id");
                if( ($fp=@fopen("data/msg$user_id", "w")) )
                {
                    fputs($fp, $besked);
                    for ( $j=0 ; $j<25-1 ; $j++ )
                        fputs($fp, $message[$j]);
                    fclose($fp);
                }
                $i++;
            }
        }

        function kick_user($myuser, $to)
        {
            $userfile = @file("data/user$to");
            if( chop($userfile[2]) >= $myuser->status )
                return $GLOBALS["ERROR_StatusTooLow"];
            @MYSQL_QUERY("UPDATE tinychat_user SET user_lastcontact=0 WHERE user_id=".$to);
            @unlink("data/msg$to");
            @unlink("data/user$to");
            $km = "Kicked : <b>".chop($userfile[5])."</b>";
            if( $myuser->status == 3 )
                $message = $GLOBALS["CONF_KickMsg"]."<b>".$GLOBALS["systemname"]."</b>...";
            else
                $message = $GLOBALS["CONF_KickMsg"]."<b>".$myuser->username."</b>...";
            $this->logmsg("admin.log", $myuser->username." kicked ".chop($userfile[5]));
            @MYSQL_QUERY("INSERT INTO tinychat_postmsg VALUES('', '".chop($userfile[1])."', '$message', ".time().")");
            return $km;
        }

        function ban_user($myuser, $to, $expire)
        {
            $userfile = @file("data/user$to");
            if( chop($userfile[2]) >= $myuser->status )
                return $GLOBALS["ERROR_StatusTooLow"];
            @MYSQL_QUERY("UPDATE tinychat_user SET user_lastcontact=0 WHERE user_id=".$to);
            @unlink("data/msg$to");
            @unlink("data/user$to");
            $km = "Banned : <b>".chop($userfile[5])."</b>";
            if( $myuser->status == 3 )
                $message = $GLOBALS["CONF_BanMsg"]."<b>".$GLOBALS["systemname"]."</b>...";
            else
                $message = $GLOBALS["CONF_BanMsg"]."<b>".$myuser->username."</b>...";
            $this->logmsg("admin.log", $myuser->username." banned ".$chop($userfile[5]));
            @MYSQL_QUERY("INSERT INTO tinychat_postmsg VALUES('', '".chop($userfile[1])."', '$message', ".time().")");
            @MYSQL_QUERY("INSERT INTO tinychat_ban (ban_ip, ban_expire) VALUES('".chop($userfile[6])."',$expire)");
            return $km;
        }

        function get_postmsg($userkey)
        {
            $result = MYSQL_QUERY("SELECT * FROM tinychat_postmsg WHERE userkey='$userkey'");
            if( ($num = mysql_numrows($result)) == 0 )
                return $GLOBALS["ERROR_NotLoggedIn"];
            return stripslashes(mysql_result($result,0,"usermsg"));
        }

        function write_private($msg, $uname, $from, $to)
        {
            $msg = $this->specialmsg($msg);
            $result = MYSQL_QUERY("SELECT user_name FROM tinychat_user WHERE user_id=$to");
            if( ($num = mysql_numrows($result)) < 1 )
                return;
            $toname = mysql_result($result, 0, "user_name");
            $besked = "<font color=#".$GLOBALS["private_color"]."><b>".$uname." (".$GLOBALS["CONF_ToName"]." $toname) : </b>";
            $besked .= "$msg</font><br>\n";
            $message = @file("data/msg$from");
            if( ($fp=@fopen("data/msg$from", "w")) )
            {
                fputs($fp, $besked);
                for ( $j=0 ; $j<25-1 ; $j++ )
                    fputs($fp, $message[$j]);
                fclose($fp);
            }
            $message = @file("data/msg$to");
            if( ($fp=@fopen("data/msg$to", "w")) )
            {
                fputs($fp, $besked);
                for ( $j=0 ; $j<25-1 ; $j++ )
                    fputs($fp, $message[$j]);
                fclose($fp);
            }
        }

        function write_private_system($msg, $uname, $from)
        {
            $besked = "<font color=#".$GLOBALS["private_color"]."><b>".$GLOBALS["systemname"]." (".$GLOBALS["CONF_ToName"]." $uname) : </b>";
            $besked .= "$msg</font><br>\n";
            $message = @file("data/msg$from");
            if( ($fp=@fopen("data/msg$from", "w")) )
            {
                fputs($fp, $besked);
                for ( $j=0 ; $j<25-1 ; $j++ )
                    fputs($fp, $message[$j]);
                fclose($fp);
            }
        }

        function write_system($msg)
        {
            $this->write_public($msg, $GLOBALS["system_color"], $GLOBALS["system_color"], $GLOBALS["systemname"]);
        }
       
        function cleanup()
        {
            $result = MYSQL_QUERY("SELECT user_id, user_name FROM tinychat_user WHERE user_lastcontact+300<".time()." AND user_lastcontact!= 0");
            if( ($num = mysql_numrows($result)) == 0 )
                return;
            $i=0;
            while( $i < $num )
            {
                $user_id = mysql_result($result,$i,"user_id");
                $user_name = mysql_result($result,$i,"user_name");
                $this->logout($user_id, $user_name);
                $i++;
            }       
        }
       
        function display_error($errormsg)
        {
            echo $errormsg;
        }
    }
   
    class HexChatNormalUser
    {
        var $userid;
        var $userkey;
        var $namecol;
        var $textcol;
        var $username;
        var $status;
       
        function HexChatNormalUser($usid, $uskey, $tcol, $ncol, $uname, $ustat)
        {
            $this->userid = $usid;
            $this->namecol = $ncol;
            $this->textcol = $tcol;
            $this->username = $uname;
            $this->userkey = $uskey;
            $this->status = $ustat;
        }

        function docommand($mychat, $msg, $to)
        {
            if( $this->basiccommands($mychat, $msg, $to) )
                return 1;
            return 0;
        }

        function basiccommands($mychat, $msg, $to)
        {
            if( (strpos($msg, "me", 0) == 1) and $msg[0] == '/' )
            {
                $mychat->write_public_action(substr($msg,4), $this->username);
                return 1;
            }
            if( (strpos($msg, "nick", 0) == 1) and $msg[0] == '/' )
            {
                if( strlen($msg) > (24+6) ) $msg = substr($msg, 0, (24+6));
                $mychat->change_nick($this, substr($msg,6));
                return 1;
            }
            if( (strpos($msg, "textcolor", 0) == 1) and $msg[0] == '/' )
            {
                if( strlen($msg) > (8+11) ) $msg = substr($msg, 0, (8+11));
                $mychat->change_textcolor($this, substr($msg,11));
                return 1;
            }
            return 0;
        }
       
        function write($mychat, $to, $msg)
        {
            $msg = stripslashes($msg);
            $msg = htmlentities($msg);
            if( !$this->docommand($mychat, $msg, $to) )
            {
                if( $to == -1 )
                    $mychat->write_public($msg, $this->namecol, $this->textcol, $this->username);
                else
                    $mychat->write_private($msg, $this->username, $this->userid, $to);
            }
            $mychat->cleanup();
            $this->top();
        }

        function topic()
        {
            echo "<html><body bgcolor=#".$GLOBALS["topic_background_color"]." link=#".$GLOBALS["topic_link_color"]." ";
            echo "text=#".$GLOBALS["topic_text_color"]." ";
            echo "vlink=#".$GLOBALS["topic_link_color"]." alink=#".$GLOBALS["topic_link_color"].">";
            echo "<meta http-equiv=\"Refresh\" content=\"".$GLOBALS["CONF_TopicUpdateSpeed"]."; URL=topic.php?ukey=".$this->userid."&skey=".$this->userkey."\">";
            echo "<font face=\"Verdena, Tahoma, Arial\" size=2 color=#".$GLOBALS["topic_text_color"].">";
            @readfile("data/topic");
            echo "</font>";
            echo "</body></html>";
        }
       
        function logout($mychat)
        {
                $logout_msg = $this->username.$GLOBALS["CONF_LogoutMsg"].date("H:i");
                $mychat->write_system($logout_msg);
                MYSQL_QUERY("UPDATE tinychat_user SET user_lastcontact=0 WHERE user_id=".$this->userid);
                unlink("data/msg".$this->userid);
                unlink("data/user".$this->userid);
                $mychat->display_error($GLOBALS["CONF_LoggedOut"]);
        }

        function bund($mychat)
        {
            $fp = @fopen("templates/bund_normal.tmp", "r");
            $file = fread($fp, 8192);
            fclose($fp);
            $file = eregi_replace("USERNAME", $this->username, $file);
            $file = eregi_replace("USERID", $this->userid, $file);
            $file = eregi_replace("USERKEY", $this->userkey, $file);
            $file = eregi_replace("NUMUSERS", $this->get_numusers(), $file);
            $file = eregi_replace("USERLIST", $this->get_userlist(), $file);
            echo $file;
            $mychat->cleanup();
        }

        function top()
        {
            echo "<html><body bgcolor=#".$GLOBALS["background_color"]." link=#".$GLOBALS["link_color"]." ";
            echo "text=#".$GLOBALS["text_color"]." ";
            echo "vlink=#".$GLOBALS["link_color"]." alink=#".$GLOBALS["link_color"].">";
            echo "<meta http-equiv=\"Refresh\" content=\"".$GLOBALS["CONF_MsgUpdateSpeed"]."; URL=top.php?ukey=".$this->userid."&skey=".$this->userkey."\">";
            echo "<font face=\"Verdena, Tahoma, Arial\" size=2 color=#".$GLOBALS["text_color"].">";
            @readfile("data/msg".$this->userid."");
            echo "</font>";
            echo "</body></html>";
        }

        function userlist()
        {
            $result = MYSQL_QUERY("SELECT user_id, user_name FROM tinychat_user WHERE user_lastcontact+300>".time()." AND user_id!=".$this->userid);
            if( ($num = mysql_numrows($result)) == 0 )
                return $users;
            $i=0;
            while( $i<$num )
            {
                $user_id = mysql_result($result, $i,"user_id");
                $user_name = mysql_result($result, $i,"user_name");
                $users .= "<option value=$user_id>$user_name";
                $i++;
            }
            return $users;
        }
       
        function get_userlist()
        {
            $normus = "<option value=-1>".$GLOBALS["CONF_AllName"];
            $normus .= $this->userlist();
            return $normus;
        }

        function get_numusers()
        {
            $result = MYSQL_QUERY("SELECT user_id FROM tinychat_user WHERE user_lastcontact+300>".time());
            if( ($num = mysql_numrows($result)) == 0 )
                return "0";
            return "$num";
        }
       
    }
   
    class HexChatCoAdminUser extends HexChatNormalUser
    {
        function HexChatCoAdminUser($usid, $uskey, $tcol, $ncol, $uname, $ustat)
        {
            $this->HexChatNormalUser($usid, $uskey, $tcol, $ncol, $uname, $ustat);
        }
   
        function bund()
        {
            $fp = @fopen("templates/bund_coadmin.tmp", "r");
            $file = fread($fp, 8192);
            fclose($fp);
            $file = eregi_replace("USERNAME", $this->username, $file);
            $file = eregi_replace("USERID", $this->userid, $file);
            $file = eregi_replace("USERKEY", $this->userkey, $file);
            $file = eregi_replace("NUMUSERS", $this->get_numusers(), $file);
            $file = eregi_replace("USERLIST", $this->get_userlist(), $file);
            echo $file;
        }

        function docommand($mychat, $msg, $to)
        {
            if( $this->basiccommands($mychat, $msg, $to) )
                return 1;
            if( (strpos($msg, "topic", 0) == 1) and $msg[0] == '/' )
            {
                $tm = "<b>".$this->username."</b> ".$GLOBALS["CONF_TopicPubMsg"]." <b>".substr($msg,7)."</b>";
                $mychat->change_topic(substr($msg, 7));
                $mychat->write_system($tm);
                return 1;
            }
            if( (strpos($msg, "kick", 0) == 1) and $msg[0] == '/' && $to>0 )
            {
                $mychat->write_private_system($mychat->kick_user($this, $to), $this->username, $this->userid);
                return 1;
            }
            if( (strpos($msg, "ban", 0) == 1) and $msg[0] == '/' && $to>0 )
            {
                $mychat->write_private_system($mychat->ban_user($this, $to, time()+120), $this->username, $this->userid);
                return 1;
            }
            return 0;
        }

        function write($mychat, $to, $msg)
        {
            $msg = stripslashes($msg);
            $msg = htmlentities($msg);
            if( !$this->docommand($mychat, $msg, $to) )
            {
                if( $to == -1 )
                    $mychat->write_public($msg, $this->namecol, $this->textcol, $this->username);
                else
                    $mychat->write_private($msg, $this->username, $this->userid, $to);
            }
            $mychat->cleanup();
            $this->top();
        }

        function get_userlist()
        {
            $normus = "<option value=-1>".$GLOBALS["CONF_AllName"];
            $normus .= $this->userlist();
            return $normus;
        }
   
    }

    class HexChatAdminUser extends HexChatCoAdminUser
    {
        function HexChatAdminUser($usid, $uskey, $tcol, $ncol, $uname, $ustat)
        {
            $this->HexChatNormalUser($usid, $uskey, $tcol, $ncol, $uname, $ustat);
        }

        function bund()
        {
            $fp = @fopen("templates/bund_admin.tmp", "r");
            $file = fread($fp, 8192);
            fclose($fp);
            $file = eregi_replace("USERNAME", $this->username, $file);
            $file = eregi_replace("USERID", $this->userid, $file);
            $file = eregi_replace("USERKEY", $this->userkey, $file);
            $file = eregi_replace("NUMUSERS", $this->get_numusers(), $file);
            $file = eregi_replace("USERLIST", $this->get_userlist(), $file);
            echo $file;
        }

        function docommand($mychat, $msg, $to)
        {
            if( $this->basiccommands($mychat, $msg, $to) )
                return 1;
            if( (strpos($msg, "topic", 0) == 1) and $msg[0] == '/' )
            {
                $tm = $GLOBALS["CONF_TopicPrivMsg"]." <b>".substr($msg,7)."</b>";
                $mychat->change_topic(substr($msg, 7));
                $mychat->write_private_system($tm, $this->username, $this->userid);
                return 1;
            }
            if( (strpos($msg, "kick", 0) == 1) and $msg[0] == '/' && $to>0 )
            {
                $mychat->write_private_system($mychat->kick_user($this, $to), $this->username, $this->userid);
                return 1;
            }
            if( (strpos($msg, "ban", 0) == 1) and $msg[0] == '/' && $to>0 )
            {
                $mychat->write_private_system($mychat->ban_user($this, $to, time()+900), $this->username, $this->userid);
                return 1;
            }
            if( (strpos($msg, "namecolor", 0) == 1) and $msg[0] == '/' )
            {
                if( strlen($msg) > (8+11) ) $msg = substr($msg, 0, (8+11));
                $mychat->change_namecolor($this, substr($msg,11));
                return 1;
            }
            return 0;
        }

        function write($mychat, $to, $msg)
        {
            $msg = stripslashes($msg);
            $msg = htmlentities($msg);
            if( !$this->docommand($mychat, $msg, $to) )
            {
                if( $to == -1 )
                    $mychat->write_public($msg, $this->namecol, $this->textcol, $this->username);
                elseif( $to == -2 )
                    $mychat->write_system($msg);
                else
                    $mychat->write_private($msg, $this->username, $this->userid, $to);
            }
            $this->top();
        }

        function get_userlist()
        {
            $normus = "<option value=-1>".$GLOBALS["CONF_AllName"];
            $normus .= "<option value=-2>".$GLOBALS["CONF_ChatName"];
            $normus .= $this->userlist();
            return $normus;
        }
   
    }
?>
Avatar billede kelis Nybegynder
08. februar 2007 - 11:10 #1
Hej,
Jeg har før fået hjælp herinde fra, godt nok var de spørgsmål jeg har fået hjælp til før ikke så svære for jer. Men det her spørgsmål om tinychat ser ud til at være mere problematisk for jer end jeg lige havde regnet med, men alle har sine begrænsninger også eksperter;-)

Hilsner
kelis
Avatar billede kelis Nybegynder
08. februar 2007 - 11:50 #2
Hej eksperter,

Så behøver I ikke at lægge jeres hoveder i blød mere, fandt selv ud af det. Til andre der måtte have det samme problem kommer her løsningen.

Det er tabellen i ban.sql og msg.sql det var galt med..

Sådan her ser de oprindelige ud:

CREATE TABLE tinychat_ban
(
  ban_id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
  ban_ip varchar(15),
  ban_expire int,
  PRIMARY KEY (ban_id)
)

CREATE TABLE tinychat_postmsg
(
  msg_id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
  userkey varchar(48),
  usermsg varchar(255),
  seton int,
  PRIMARY KEY (msg_id)
)

Og sådan her skal de se ud:

CREATE TABLE tinychat_ban
(
  ban_id int(10) unsigned NOT NULL auto_increment,
  ban_ip varchar(15),
  ban_expire int,
  PRIMARY KEY (ban_id)
)

CREATE TABLE tinychat_postmsg
(
  msg_id int(10) unsigned NOT NULL auto_increment,
  userkey varchar(48),
  usermsg varchar(255),
  seton int,
  PRIMARY KEY (msg_id)
)

Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester