hola amigos que tal estoy aqui por que tengo un chat open source pero el codigo de la mensajeria no lo entiendo al 100% estoy intentando anclarle un scrip a ver si me dan una manito
aqui esta el codigo de mensajeria, lo marcado en rojo es lo que llevo modificado
Primera parte Código 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;