Hasta ahi todo bien, problema ahora es que se loguea pero los mensajes no estan siendo vistos, ya revise las tablas y todo y nada, no funciona, necesito en realidad ayuda con esto... aca les copio el codigo php.... saludos..
si quieren ver... pueden ingresar a http://www.cieloextremo.com/clabChat.swf presionando control + backspace logueense con el usuario: extremo contraseña = 123456
<?php
//ClabServer, versión 0.85 31 de May 2005
class ClabServer{
/*********************** ATENCIÓN ***********************/
/*** AQUI DEBES CAMBIAR ESTO, POR EL NOMBRE DE LA BASE DE DATOS ***/
/*** DONDE TIENES LAS TABLAS DEL CLABSERVER, ES MUY IMPORTANTE ***/
var $_dbase = "cieloext_mamb1";
function ClabServer(){
$this->methodTable = array(
"getMensajes" => array(
"description" => "Devuelve los mensajes de determinada sala al cliente",
"access" => "remote",
"arguments" => array("id","usuario","timestamp", "room")
),
"getUsuarios" => array(
"description" => "Devuelve una lista de los usuarios en una sala",
"access" => "remote",
"arguments" => array("room")
),
"getConectados" => array(
"description" => "Devuelve la cantidad de usuarios conectados en todas las salas.",
"access" => "remote"
),
"enviar" => array(
"description" => "Envia un mensaje al servidor",
"access" => "remote",
"arguments" => array("tipo","mensaje","usuario","room","nick")
),
"login" => array(
"description" => "Registra un usuario como usuario registrado o como anonimo",
"access" => "remote",
"arguments" => array("usuario","password","anonimo")
),
"entrar" => array(
"description" => "Inserta al usuario en la lista de usuarios de una sala",
"access" => "remote",
"arguments" => array("id","nick","room")
),
"salir" => array(
"description" => "Elimina al usuario de la lista de usuarios de una sala",
"access" => "remote",
"arguments" => array("id","nick","room")
),
"clean" => array(
"description" => "Saca de la lista de usuarios activos ... a los inactivos LOL",
"access" => "remote"
)
);
}
/* getUsuarios */
// Devuelve un recordset con la lista de usuarios actuales de determinado Room
function getUsuarios($room){
$sql = "SELECT r.IDUsuario,r.nick, u.username as Nick FROM tblRooms r, mos_users u WHERE (r.IDRoom=$room AND r.IDUsuario = u.ID) OR (r.IDRoom=$room AND r.IDUsuario = -1 AND u.ID = 0) ORDER BY r.IDUsuario DESC";
return plugClab($sql,$this->_dbase);
}
/* getMensajes */
// Devuelve los mensajes de un determinado timestamp
function getMensajes($id, $usuario, $timestamp, $room){
if($id<0){
$sql="UPDATE `tblRooms` SET `TimePrint` = ".getStamp(0)." WHERE `IDUsuario` = '".$id."' AND `IDRoom` = '".$room."' AND nick='".$usuario."' LIMIT 1 ;";
} else {
$sql="UPDATE `tblRooms` SET `TimePrint` = ".getStamp(0)." WHERE `IDUsuario` = '".$id."' AND `IDRoom` = '".$room."' LIMIT 1 ;";
}
plugClab($sql,$this->_dbase);
$sql = "SELECT m.Tipo,m.Mensaje,m.IDUsuario,u.username as Nick,m.TimePrint,m.nick FROM tblMensajes m,mos_users u
WHERE
(
(m.IDRoom=".$room." AND u.ID = m.IDUsuario)
OR
(m.IDRoom=".$room." AND m.IDUsuario = -1 AND u.ID = 0)
)
AND
m.TimePrint>". $timestamp ."
ORDER BY m.TimePrint DESC";
if($timestamp){
$sql .= " LIMIT 10";
} else {
$sql .= " LIMIT 1";
}
$mensaje = plugClab($sql,$this->_dbase);
return $mensaje;
}
/* enviar */
// Envia un mensaje de cualquier tipo a la base de datos
function enviar($tipo,$mensaje,$usuario,$room,$nick){
$mensaje = utf8_encode($mensaje);
$sql = "INSERT INTO `tblMensajes` ( `IDMensaje` , `TimePrint` , `Tipo` , `Mensaje` , `IDUsuario` , `IDRoom` , `nick` ) "
. " VALUES ( '', ".getStamp(0)." , '".$tipo."', '".$mensaje."', '".$usuario."', '".$room."', '".$nick."' );";
plugClab($sql,$this->_dbase);
}
/* login */
// Inicia la sesión de un usuario en el servidor (Regitrado o anonimo)
function login($usuario,$password,$anonimo){
$password=md5($password);
//Las posibles respuestas son
/* 0: Clave incorrecta
1: OK
2: Nombre de usuario anonimo ya tomado
3: Nombre de usuario anonimo registrado en DB
4: Nombre de usuario registrado inexistente en DB
*/
$respuesta = 1;
if($anonimo){
//Chequeo de respuesta tipo 2
$sql = "SELECT COUNT(*) FROM tblRooms WHERE nick='".$usuario."'";
$resultado = mysql_fetch_array(plugClab($sql,$this->_dbase));
if($resultado[0]){
$respuesta = 2;
}
//Chequeo de respuesta tipo 3
$sql = "SELECT COUNT(*) FROM mos_users WHERE username='".$usuario."'";
$resultado = mysql_fetch_array(plugClab($sql,$this->_dbase));
if($resultado[0]){
$respuesta = 3;
}
} else {
//Chequeo de respuesta tipo 0
$sql = "SELECT COUNT(*) FROM mos_users WHERE username='".$usuario."' AND Password='".$password."'";
$resultado = mysql_fetch_array(plugClab($sql,$this->_dbase));
if(!$resultado[0]){
$respuesta = array(0,0);
} else {
$respuesta = array(1,plugClab("SELECT IDUsuario FROM mos_users WHERE username='".$usuario."' AND Password='".$password."'",$this->_dbase));
}
//Chequeo de respuesta tipo 4
$sql = "SELECT COUNT(*) FROM mos_users WHERE username='".$usuario."'";
$resultado = mysql_fetch_array(plugClab($sql,$this->_dbase));
if(!$resultado[0]){
$respuesta = array(4,0);
}
}
return $respuesta;
}
/* getConectados */
// Devuelve la cantidad de usuarios conectados al momento
function getConectados(){
$sql = "SELECT COUNT(*) FROM tblRooms";
$resultado = mysql_fetch_array(plugClab($sql,$this->_dbase));
return ($resultado[0]);
}
/* entrar */
// Inserta al usuario en la lista de usuarios de una sala
function entrar($id,$nick,$room){
//PENDIENTE
$this->enviar(2,"",$id,$room,$nick);
if($id<0){
$sql = "SELECT COUNT(*) FROM tblRooms WHERE IDUsuario=-1 AND IDRoom=".$room." AND nick='".$nick."'";
} else {
$sql = "SELECT COUNT(*) FROM tblRooms WHERE IDUsuario=".$id." AND IDRoom=".$room;
}
$resultado = mysql_fetch_array(plugClab($sql,$this->_dbase));
if(!$resultado[0]){
//Insertar en Rooms
$sql = "INSERT INTO `tblRooms` ( `IDUsuario` , `IDRoom` , `nick` , `TimePrint` ) "
. "VALUES ("
."'".$id."', '".$room."', '".$nick."', ". getStamp(0)
. ");";
plugClab($sql,$this->_dbase);
}
}
/* salir */
// ¿Realmente tengo que explicarla?
// Bueno, elimina de una sala especifica a un usuario
// Y envia el mensaje de salida y tal
function salir($id,$nick,$room){
$sql = "DELETE FROM tblRooms"
." WHERE IDUsuario = '".$id."' AND IDRoom = '".$room."' AND nick = '".$nick."' "
." LIMIT 1";
plugClab($sql, $this->_dbase);
$this->enviar(3,"",$id,$room,$nick);
}
/* clean */
//Saca de la lista de usuarios activos ... a los inactivos LOL
function clean(){
$sql = "SELECT * FROM tblRooms WHERE TimePrint<".getStamp(30);
$lista = plugClab($sql,$this->_dbase);
if(mysql_num_rows($lista)){
while($usuario = mysql_fetch_assoc($lista)){
$sql = "DELETE FROM tblRooms "
." WHERE IDUsuario = '".$usuario["IDUsuario"]."' AND IDRoom = '".$usuario["IDRoom"]."' AND nick = '".$usuario["nick"]."' "
." LIMIT 1";
plugClab($sql,$this->_dbase);
$this->enviar(3,"",$usuario["IDUsuario"],$usuario["IDRoom"],$usuario["nick"]);
}
}
}
}
//Conecta a la base de datos (Util, no?)
function plugClab($consulta,$db){
/********************************** ATENCIÓN *******************************/
/* AQUI TIENES QUE MODIFICAR LOS DATOS PARA QUE SE CONECTE A TU BASE DE DATOS */
/* Y A TU SERVIDOR MYSQL */
$user = "******";
$pass = "********";
$server = "localhost";
//Conecta a la base de datos
$dbh=mysql_connect($server,$user,$pass) or die ('I cannot connect to the database because: ' . mysql_error());
//Selecciona la base de datos
mysql_select_db ($db);
//Guarda el resultado de la consulta en un identificador (Puntero)
$resultado=mysql_query($consulta,$dbh);
mysql_close($dbh);
//Retorna lo obtenido
return $resultado;
}
//Devuelve el timestamp actual menos N segundos
function getStamp($n){
return doubleval(date("YmdHis",mktime(date("H"),date("i"),date("s")-$n,date("m"),date("d"),date("Y"))));
}
?>
si alguien sabe como ayudarme please .....
