Avatar billede zhatten Nybegynder
24. december 2000 - 10:48 Der er 8 kommentarer og
1 løsning

Nu vil jeg have det løst !!!

Jeg for denne fejl, når jeg prøver at logge ind på min bruger i tinychat :


Warning: fopen(\"logs/message.log\",\"a\") - Permission denied in /usr/local/www/whitehatdk/www/zhatten/test/tiny/chatbase.php on line 40

Warning: Supplied argument is not a valid File-Handle resource in /usr/local/www/whitehatdk/www/zhatten/test/tiny/chatbase.php on line 41

Warning: Supplied argument is not a valid File-Handle resource in /usr/local/www/whitehatdk/www/zhatten/test/tiny/chatbase.php on line 42

Warning: Supplied argument is not a valid File-Handle resource in /usr/local/www/whitehatdk/www/zhatten/test/tiny/chatbase.php on line 43

Warning: fopen(\"logs/login.log\",\"a\") - Permission denied in /usr/local/www/whitehatdk/www/zhatten/test/tiny/chatbase.php on line 40

Warning: Supplied argument is not a valid File-Handle resource in /usr/local/www/whitehatdk/www/zhatten/test/tiny/chatbase.php on line 41

Warning: Supplied argument is not a valid File-Handle resource in /usr/local/www/whitehatdk/www/zhatten/test/tiny/chatbase.php on line 42

Warning: Supplied argument is not a valid File-Handle resource in /usr/local/www/whitehatdk/www/zhatten/test/tiny/chatbase.php on line 43


Min chatbase.php ser således ud :

<?
if($HTTP_POST_VARS){
foreach($HTTP_POST_VARS as $Key=>$Value)
{
$$Key = $Value;
}
}

if($HTTP_GET_VARS){
foreach($HTTP_GET_VARS as $Key=>$Value)
{
$$Key = $Value;
}
}

    require(\"configuration.php\");

    mysql_connect(\"localhost\", $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;
            if( !MYSQL_QUERY(\"INSERT INTO tinychat_user (user_name, user_pass, user_status, user_textcol, user_namecol)
                              VALUES(\'$args[0]\', \'$args[1]\', 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());

            $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=\'\".$GLOBALS[\"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().\", user_lastip=\'\".$GLOBALS[\"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 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;
        }
   
    }
?>



- Zhatten
Avatar billede lojmann Nybegynder
24. december 2000 - 10:52 #1
\"logs/meaasges.log\" - har du lavet en CHMOD til 777? Det kunne være at det hjalp :)
Avatar billede lojmann Nybegynder
24. december 2000 - 10:53 #2
Og det samme med \"logs/login.log\"
Avatar billede blood Nybegynder
24. december 2000 - 10:55 #3
hele logs/ mappen + alle filerne i den skal du CHMOD til 777
du skal gører det samme på data/ mappen


det hele står i instalations filen

Følg denne vejledning og du skulle have en køreklar chat :-)

1. Check at du har et sted på nettet hvor du kan køre PHP + MySQL! Det er vigtigt du
har adgang til en MySQL database, da chatten ellers er ubrugelig. Det du skal bruge er:

  * Mysql brugernavn
  * Mysql password til brugernavnet
  * Mysql database som brugeren har adgang til

Hvis du har et webhotel eller andet, så skal du normalt kontakte din udbyder for at
oprette den slags. Det er ikke altid dette sker automatisk og det vil NORMALT ALDRIG være
samme brugernavn og password som du bruger til din FTP. Derfor, gå aldrig ud fra at det
\"har du sikkert\". Vær sikker før du går igang.

2. Opret et bibliotek på din webserver der fx hedder chat og kopier alle filerne ind
i det bibliotek. Selvfølgelig ikke de to .txt filer :)

3. Sæt rettighederne på data og logs til 777 (ikke nødvendigt på en NT-server). Dette
er nødvendigt fordi chatten skriver og læser i disse biblioteker.

4. I roden af chat/ ligger der en fil der hedder configuration.php - Den retter du til
så den passer til dine behov. I første omgang skal du kun ændre i bunden af den, hvor
der står noget med database. Her taster du brugernavn + pass til din mysqlbruger ind + angiver
hvilken database du har adgang til med den bruger.

5. Pakket med ud ligger der et bibliotekt der hedder install/. Inde i det ligger der en fil der
hedder install.php. Denne kører du fra din browser og trykker på knappen. Hvis alt går godt
skulle den skrive DONE i slutningen og ikke komme med fejlmeddelser.

6. Under logs/ og data/ ligger der en fil der hedder .htaccess - Den skal sørge for at
ingen udefra har adgang til at læse eller se hvad der ligger i disse to biblioteker. Det er
ekstremt vigtigt at dette virker. Lad os sige din hjemmeside er www.minchat.dk og du har lagt
tinychat under chat/... Så *SKAL* www.minchat.dk/chat/logs give et popupvindue hvor du
bliver bedt om brugernavn og password. Det samme med www.minchat.dk/chat/data/

Hvis du ikke ser det popupvindue er der noget galt og så anbefaler jeg på det kraftigste at
du løser problemet eller undlader at benytte chatten. Virker det ikke, så kontakt din udbyder
og spørg hvordan .htaccess skal sættes op på dit site!

7. Nu skulle det hele være klar til brug. Kald login.php (eller omdøb denne til index.php) og
opret en bruger.

8. Hvis alt kører, slet da biblioteket install/ da dette ikke skal benyttes mere.

---------

Chatten virker, men den mangler en del finpudsning. Dette er jeg alt for doven til at gøre,
så du må selv igang :-) Denne chat blev lavet som hjælp til nybegyndere, så de kan se en
mulig løsning på hvordan man laver en simpel chat i php. Se chatten som et fundament og ikke
det færdige hus. Huset må du selv bygge, jeg har blot leveret stenene :-)

Jeg vil dog meget kraftigt understrege, at jeg *IKKE* yder nogen som helst support til
chatten. Den er leveret \"as is\" og der bliver ikke lavet bugfixes, ændringer eller noget
som helst.

Kommentarer kan sendes til tl@coolchat.dk






Avatar billede zhatten Nybegynder
24. december 2000 - 10:56 #4
Det vil sige sig der er fejl i disse linier :

$logf = fopen(\"logs/$logfile\", \"a\");
            fputs($logf, date(\"d/m - H:i : \"));
            fputs($logf, \"$msg\\n\");
            fclose($logf);


Sig til hvis du skal bruge mere info.


- Zhatten
Avatar billede ramlev Nybegynder
24. december 2000 - 10:57 #5
logs/message.log
logs/login.log

det den skriver er at du ikke har rettigheder på serveren til at ændre på de 2 filer, så du skal enten via telnet, ftpprogram eller windows commander,
oprette forbindelse til serveren, og :
chmod 777 message.log
chmod 777 login.log

i windowscommander skriver du det bare i cmd-prompten når du har forbindelse til serveren.
cuteftp kan du gøre det somehow ved at højreklikke på filnavnet så mener jeg der er en mulighed der hedder noget med file-attrib, attributes, file-access eller i den stil.

hvis du får forbindelse via telnet, kan du når du er i rigtige DIR, skrive chmod 777 message.log
chmod 777 login.log

så skulle det vel virke.
Avatar billede zhatten Nybegynder
24. december 2000 - 10:59 #6
lojmann :) Danke
Avatar billede blood Nybegynder
24. december 2000 - 10:59 #7
Der er ikke fejl i chatbase filen

grunden til den fejl er det er fordi du ikke har sat rettighederne på dit webhotel regtigt
skal du have hjælp til det?

hvilket program bruger du til at uploade??
Avatar billede lojmann Nybegynder
24. december 2000 - 10:59 #8
Mht. filerne, så skulle det være nog at lave en CHMOD på mappen logs samt de filer der er i den, en CHMOD til 777 :)
Avatar billede netserver Nybegynder
14. december 2001 - 09:48 #9
Kender en deer kan hjælpe han hedder dipz du kan få hans icq nummer vis du Siger Ok til det her svar
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