1
I found a very good chat for my forum
X7 chat(see for yourself)
This chat can be connected with the xoops_database to recieve info on user/password and fill this info into its own database.
To 'do' this it uses an 'aut' file
le="color: #000000">
<?php <?PHP /////////////////////////////////////////////////////////////// // // X7 Chat Version 2.0.0 // Released July 27, 2005 // Copyright (c) 2004-2005 By the X7 Group // Website: http://www.x7chat.com // // This program is free software. You may // modify and/or redistribute it under the // terms of the included license as written // and published by the X7 Group. // // By using this software you agree to the // terms and conditions set forth in the // enclosed file "license.txt". If you did // not recieve the file "license.txt" please // visit our website and obtain an official // copy of X7 Chat. // // Removing this copyright and/or any other // X7 Group or X7 Chat copyright from any // of the files included in this distribution // is forbidden and doing so will terminate // your right to use this software. // ////////////////////////////////////////////////////////////////EOH ?><?PHP // For XOOPS 2.2.4 // This file holds data on authentication $auth_ucookie = "X7C2U"; $auth_pcookie = "X7C2P"; $auth_register_link = "../register.php"; $auth_disable_guest = true; // Get the XOOPS config file $xoopsOption['nocommon'] = 1; require("../mainfile.php"); // Make a database connection to the XOOPS database $xoopsdb = new x7chat_db(XOOPS_DB_HOST,XOOPS_DB_USER,XOOPS_DB_PASS,XOOPS_DB_NAME); $table_prefix = XOOPS_DB_PREFIX."_"; if(isset($_COOKIE["PHPSESSID"])){ $cvalue = $_COOKIE["PHPSESSID"]; $q = $xoopsdb->DoQuery("SELECT sess_data FROM {$table_prefix}session WHERE sess_id='$cvalue'"); $cinfo = $xoopsdb->Do_Fetch_Row($q); if($cinfo[0] != ""){ // Get user ID eregi("^xoopsUserId|[^;]*",$cinfo[0],$match); $match[0] = eregi_replace("xoopsUserID|","",$match[0]); $suid = unserialize($match[0]); // changed uname to loginname $q = $xoopsdb->DoQuery("SELECT loginname,pass FROM {$table_prefix}users WHERE uid='$suid'"); $xoopsname = $xoopsdb->Do_Fetch_Row($q); $_COOKIE['X7C2U'] = $xoopsname[0]; $_COOKIE['X7C2P'] = $xoopsname[1]; } } function auth_encrypt($data){ return md5($data); } function auth_getpass($auth_ucookie){ GLOBAL $xoopsdb,$table_prefix,$txt,$db,$g_default_settings,$prefix,$x7c; // Changed uname in loginname $query = $xoopsdb->DoQuery("SELECT pass FROM {$table_prefix}users WHERE loginname='$_COOKIE[$auth_ucookie]'"); $password = $xoopsdb->Do_Fetch_Row($query); // Check if they have an X7 Chat account if($password[0] != ""){ $query = $db->DoQuery("SELECT * FROM {$prefix}users WHERE username='$_COOKIE[$auth_ucookie]'"); $row = $db->Do_Fetch_Row($query); if($row[0] == ""){ // Create an X7 Chat account for them. $time = time(); $ip = $_SERVER['REMOTE_ADDR']; $db->DoQuery("INSERT INTO {$prefix}users (id,username,password,status,user_group,time,settings,hideemail,ip) VALUES('0','$_COOKIE[$auth_ucookie]','$password[0]','$txt[150]','{$x7c->settings['usergroup_default']}','$time','{$g_default_settings}','0','$ip')"); } } return $password[0]; } function change_pass($user,$newpass){ // GLOBAL $table_prefix,$xoopsdb; // $newpass = auth_encrypt($newpass); // changed uname in loginname // $query = $xoopsdb->DoQuery("UPDATE {$table_prefix}users SET pass='$newpass' WHERE loginname='$user'"); } ?>Now all is wel, with exception of users that autologin to my site, they can't get into the chat because of a fatal error.
Now I wonder if it's possible to turn this chat into a module, so there is no need for authorisation of a user?