File: /home/asjudine/www/chatasjudinet/mensaje.php
<?php
// Archivo para enviar los mensajes nuevos a la
// capa de mensajes
include 'configuracion.php';
include 'conexion.php';
unset($usuario);
$ahora = time();
if(substr($_GET['texto'],0,1) == '/'){
$comandos = split(' ',substr($_GET['texto'],1,strlen($_GET['texto'])));
$texto = '';
}
if(isset($_COOKIE["ident"])){
$sql = "SELECT nombre FROM c_usuarios WHERE cookie = ".$_COOKIE["ident"];
$result = mysql_query($sql,$db);
if(mysql_num_rows($result))$usuario = mysql_result($result,0);
}
if(isset($usuario)){
if(isset($comandos) && ($comandos[0] == 'logout')){
setcookie ("ident","");
$sql = "DELETE FROM c_usuarios WHERE nombre = '$usuario'";
mysql_query($sql,$db);
for($i=1;$i<count($comandos);$i++)$texto .= $comandos[$i].' ';
mysql_query("INSERT INTO c_mensajes (de,texto,time,color,para) VALUES ('','/logout $usuario $texto',".time().",'#FFFFFF','*')",$db);
}
} else {
if(isset($comandos) && ($comandos[0] == 'login')){
if(!ereg("^[a-zA-Z0-9_]{4,12}$",$comandos[1])){
$loginError = 'El nombre de usuario no es válido';
} else {
$sql = "SELECT * FROM c_usuarios WHERE nombre LIKE '".$comandos[1]."'";
$q = mysql_query($sql,$db);
if(!mysql_num_rows($q)){
$r1 = rand(100,999);
$r2 = rand(100,999);
$random = $r1.$r2;
setcookie ("ident","$random");
mysql_query("INSERT INTO c_usuarios (nombre,time,cookie) VALUES ('".$comandos[1]."','".$ahora."',$random)",$db);
$sql = "INSERT INTO c_mensajes (de,texto,time,color,para) VALUES ('','/login ".$comandos[1]."',$ahora,'#FFFFFF','*')";
mysql_query($sql,$db);
} else {
$loginError = 'El nombre de usuario esta ocupado';
}
}
}
}
?><html>
<head>
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<script languaje="javascript"><!--
<?php
if(isset($comandos)){
switch ($comandos[0]){
case 'login':
if(isset($usuario))echo " parent.am('Ya estas conectado cómo $usuario');\n";
else {
if(isset($loginError)){
echo " parent.am('$loginError');\n";
echo " parent.mn('/login ".$comandos[1]."');\n";
}
else {
echo " parent.am('Acabas de iniciar sesion cómo ".$comandos[1]."');\n";
echo " parent.st();\n";
echo " u = new Array(";
$sql="SELECT * FROM c_usuarios ORDER BY nombre";
$result=mysql_query($sql,$db);
$temp = 0;
if(mysql_num_rows($result))while ($row=mysql_fetch_array($result)){
if($temp++)echo ",";
echo "'".$row['nombre']."'";
}
echo ");\n";
echo " parent.ul(u);\n";
}
}
break;
case 'logout':
if(isset($usuario)){
echo " parent.am('Has sido desconectado del sistema');\n";
echo " parent.ul();\n";
echo " parent.sp();\n";
} else echo " parent.am('Para conectarte utiliza <a href=# onclick=\"mn("/login nombre")\">/login nombre</a>');\n";
break;
case 'clear':
echo " parent.cl();\n";
break;
case 'time':
echo " parent.am('Son las ".date("h:i:s")."');\n";
break;
case 'smilies':
echo " parent.am('Los smilies disponibles són:<br> <a href=# onclick=\"mn(":)")\">Sonrisa</a><br> <a href=# onclick=\"mn(":(")\">Triste</a><br> <a href=# onclick=\"mn(":\'(")\">Llora</a><br> <a href=# onclick=\"mn(":D")\">Carcajada</a><br> <a href=# onclick=\"mn(":O")\">Sorprendido</a><br> <a href=# onclick=\"mn(":P")\">Saca la lengua</a>');\n";
break;
case 'msg':
if(isset($usuario)){
for($i=2;$i<count($comandos);$i++)$texto .= $comandos[$i].' ';
$sql = "INSERT INTO c_mensajes (texto,time,color,para,de) VALUES ('".htmlspecialchars(htmlspecialchars($texto))."',".time().",'".$_GET['color']."','".$comandos[1]."','$usuario')";
mysql_query($sql,$db);
echo " parent.mn('/msg ".$comandos[1]." ');\n";
} else echo " parent.am('Para conectarte utiliza <a href=# onclick=\"mn("/login nombre")\">/login nombre</a>');\n";
break;
case 'names':
if(isset($usuario)){
$sql="SELECT * FROM c_usuarios";
$result=mysql_query($sql,$db);
if(mysql_num_rows($result))while ($row=mysql_fetch_array($result))$lista .= '<br> <a href=# onclick=to(this)>'.$row['nombre'].'</a>';
$mensaje = 'Lista de usuarios conectados:'.$lista;
echo " parent.am('$mensaje');\n";
} else echo " parent.am('Para conectarte utiliza <a href=# onclick=\"mn("/login nombre")\">/login nombre</a>');\n";
break;
case 'whois':
if(isset($usuario)){
$sql = "SELECT nombre FROM c_usuarios WHERE nombre = '".$comandos[1]."'";
$result = mysql_query($sql,$db);
if(mysql_num_rows($result)){
$mensaje = 'El usuario '.$comandos[1].' esta conectado';
$url = 'script.php?t='.$ahora;
} else {
$mensaje = 'El usuario '.$comandos[1].' no esta conectado';
$url = 'script.php?t='.$ahora;
}
echo " parent.am('$mensaje');\n";
} else echo " parent.am('Para conectarte utiliza <a href=# onclick=\"mn("/login nombre")\">/login nombre</a>');\n";
break;
case 'kick':
if(isset($usuario)){
if($comandos[2] == pwd){
$sql = "DELETE FROM c_usuarios WHERE nombre = '".$comandos[1]."'";
$mensaje = '';
mysql_query($sql,$db);
$sql = "INSERT INTO c_mensajes (texto,time,color,para) VALUES ('/logout ".$comandos[1]." baneado',".time().",'#FFFFFF','*')";
mysql_query($sql,$db);
$url = 'script.php';
} else echo " parent.am('La contraseña de administrador no es correcta');\n";
} else echo " parent.am('Para conectarte utiliza <a href=# onclick=\"mn("/login nombre")\">/login nombre</a>');\n";
break;
case 'help':
if(!isset($comandos[1]))echo " parent.am('Lista de comandos del chat:<br> <a href=# onclick=\"mn("/help clear")\">/clear</a><br> <a href=# onclick=\"mn("/help help")\">/help [comando]</a><br> <a href=# onclick=\"mn("/help kick")\">/kick nombre contraseña</a><br> <a href=# onclick=\"mn("/help login")\">/login nombre</a><br> <a href=# onclick=\"mn("/help logout")\">/logout [mensaje]</a><br> <a href=# onclick=\"mn("/help msg")\">/msg nombre mensaje</a><br> <a href=# onclick=\"mn("/help names")\">/names</a><br> <a href=# onclick=\"mn("/help smilies")\">/smilies</a><br> <a href=# onclick=\"mn("/help time")\">/time</a><br> <a href=# onclick=\"mn("/help whois")\">/whois nombre</a>');\n";
else switch ($comandos[1]){
case 'smilies':
echo " parent.am('Ayuda del comando smilies<br> <a href=# onclick=\"mn("/smilies")\">/smilies</a><br> Muestra la lísta de iconos de emoción disponible');\n";
break;
case 'clear':
echo " parent.am('Ayuda del comando clear<br> <a href=# onclick=\"mn("/clear")\">/clear</a><br> Limpia la pantalla de mensajes');\n";
break;
case 'help':
echo " parent.am('Ayuda del comando help<br> <a href=# onclick=\"mn("/help [comando]")\">/help [comando]</a><br> Muestra la ayuda del comando [comando] o la lista de comandos si no se especifica [comando]');\n";
break;
case 'kick':
echo " parent.am('Ayuda del comando kick<br> <a href=# onclick=\"mn("/kick nombre contraseña")\">/kick nombre contraseña</a><br> Desconecta al usuario nombre siempre y cuando se haya dado correctamente la contraseña de administrador');\n";
break;
case 'login':
echo " parent.am('Ayuda del comando login<br> <a href=# onclick=\"mn("/login nombre")\">/login nombre</a><br> Conecta al chat como nombre');\n";
break;
case 'logout':
echo " parent.am('Ayuda del comando logout<br> <a href=# onclick=\"mn("/logout [mensaje]")\">/logout [mensaje]</a><br> Desconecta al chat dejando el mensaje [mensaje] si se especifica');\n";
break;
case 'names':
echo " parent.am('Ayuda del comando names<br> <a href=# onclick=\"mn("/names")\">/names</a><br> Devuelve la lista de usuarios conectados al chat');\n";
break;
case 'msg':
echo " parent.am('Ayuda del comando msg<br> <a href=# onclick=\"mn("/msg nombre mensaje")\">/msg nombre mensaje</a><br> Envia mensaje al usuario nombre');\n";
break;
case 'time':
echo " parent.am('Ayuda del comando time<br> <a href=# onclick=\"mn("/time")\">/time</a><br> Devuelve la hora del servidor');\n";
break;
case 'whois':
echo " parent.am('Ayuda del comando whois<br> <a href=# onclick=\"mn("/whois nombre")\">/whois nombre</a><br> Devuelve informacion del usuario nombre');\n";
break;
default:
echo " parent.am('No hay ayuda para el comando ".$comandos[1]."');\n";
break;
}
break;
default:
echo " parent.am('Para ver una lista de comandos utiliza <a href=# onclick=\"mn("/help")\">/help</a>');\n";
}
} else {
if(isset($usuario)){
$sql = "INSERT INTO c_mensajes (texto,time,color,para,de) VALUES ('".htmlspecialchars($_GET['texto'])."',".time().",'".$_GET['color']."','*','$usuario')";
mysql_query($sql,$db);
} else echo " parent.am('Para conectarte utiliza <a href=# onclick=\"mn("/login nombre")\">/login nombre</a>');\n";
}
?>
--></script>
</head>
</html>