Ver Mensaje Individual
  #6 (permalink)  
Antiguo 20/11/2011, 21:28
Avatar de arcanisgk122
arcanisgk122
 
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 14 años, 5 meses
Puntos: 28
Respuesta: problema chat php+mysql agregar comando a PHPWebChat

bueno les traigo parte del codigo:

aki esta donde yo hago la la parte para ejecutar un roll de que va de 1 a 18:


Código PHP:
Ver original
  1. case 'roll':
  2.         $rolll= mt_rand(1,18);
  3.         mysql_query("INSERT INTO c_mensajes (de,texto,time,color,para) VALUES ('$usuario','/Roll de ".$usuario." ha sacado: ".$rolll." ',".time().",'#FFFFFF','*')",$db);
  4.         echo "  parent.am('Roll de $usuario ha sacado: $rolll');\n";
  5.         break;

esto para que funcione lo tube que poner en un case: ahora fuera del case esta el siguiente codigo:

Código PHP:
Ver original
  1. header('Content-Type: text/html; charset=UTF-8');
  2. // Archivo para enviar los mensajes nuevos a la
  3. // capa de mensajes
  4.  
  5. include 'configuracion.php';
  6. include 'conexion.php';
  7.  
  8. unset($usuario);
  9. $ahora = time();
  10. if(substr($_GET['texto'],0,1) == '/'){
  11.     $comandos = split(' ',substr($_GET['texto'],1,strlen($_GET['texto'])));
  12.     $texto = '';
  13. }
  14. if(isset($_COOKIE["ident"])){
  15.     $sql = "SELECT nombre FROM c_usuarios WHERE cookie = ".$_COOKIE["ident"];
  16.     $result = mysql_query($sql,$db);
  17.     if(mysql_num_rows($result))$usuario = mysql_result($result,0);
  18. }
  19. if(isset($usuario)){
  20.     if(isset($comandos) && ($comandos[0] == 'logout')){
  21.     setcookie ("ident","");
  22.     $sql = "DELETE FROM c_usuarios WHERE nombre = '$usuario'";
  23.     mysql_query($sql,$db);
  24.     for($i=1;$i<count($comandos);$i++)$texto .= $comandos[$i].' ';
  25.     mysql_query("INSERT INTO c_mensajes (de,texto,time,color,para) VALUES ('','/logout $usuario $texto',".time().",'#FFFFFF','*')",$db);
  26.     }
  27. } else {
  28.     if(isset($comandos) && ($comandos[0] == 'login')){
  29.     if(!ereg("^[a-zA-Z0-9_]{4,12}$",$comandos[1])){
  30.         $loginError = 'El nombre de usuario no es válido';
  31.     } else {
  32.         $sql = "SELECT * FROM c_usuarios WHERE nombre LIKE '".$comandos[1]."'";
  33.         $q = mysql_query($sql,$db);
  34.         if(!mysql_num_rows($q)){
  35.         $r1 = rand(100,999);
  36.         $r2 = rand(100,999);
  37.         $random = $r1.$r2;
  38.         setcookie ("ident","$random");
  39.         mysql_query("INSERT INTO c_usuarios (nombre,time,cookie) VALUES ('".$comandos[1]."','".$ahora."',$random)",$db);
  40.         $sql = "INSERT INTO c_mensajes (de,texto,time,color,para) VALUES ('','/login ".$comandos[1]."',$ahora,'#FFFFFF','*')";
  41.         mysql_query($sql,$db);
  42.         } else {
  43.         $loginError = 'El nombre de usuario esta ocupado';
  44.         }
  45.     }
  46.     }
  47. }

hay otro codigo php llamado script que muestra tambien muestramensajes:


Código PHP:
Ver original
  1. if(isset($_COOKIE["ident"])){
  2.   $sql = "SELECT nombre FROM c_usuarios WHERE cookie = ".$_COOKIE["ident"];
  3.   $result = mysql_query($sql,$db);
  4.   if(mysql_num_rows($result))$usuario = mysql_result($result,0);
  5.   if($usuario == ''){
  6.     setcookie ("ident","");
  7.   } else {
  8.     $sql = "UPDATE c_usuarios SET time = $ahora WHERE nombre = '$usuario'";
  9.     mysql_query($sql, $db);
  10.   }
  11. }
  12. ?><html>
  13.   <head>
  14.     <meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
  15.     <script languaje="javascript"><!--
  16.     <?php
  17. if(!isset($_GET['t'])){
  18.   $_GET['t'] = time();
  19. };
  20. if(!isset($_GET['l']))
  21.   $sql="SELECT * FROM c_mensajes WHERE time > ".$_GET['t']." AND ( para = '*' OR para = '$usuario' ) ORDER BY id";
  22. else {
  23.   $last = $_GET['l'];
  24.   $sql="SELECT * FROM c_mensajes WHERE id > ".$_GET['l']." AND ( para = '*' OR para = '$usuario') ORDER BY id";
  25. }
  26. $result=mysql_query($sql, $db);
  27. $haymensaje = 0;
  28. if( mysql_num_rows($result))while($row=mysql_fetch_array($result)){
  29.   if(substr($row['texto'],0,1) == '/'){
  30.     $comandos = split(' ',substr($row['texto'],1,strlen($row['texto'])));
  31.   }
  32.   if($row['id']){
  33.       $last = $row['id'];
  34.       $haymensaje  = 1;
  35.   }
  36.   if(!isset($comandos)){
  37.     $row['texto'] = addslashes ( $row['texto'] );
  38.     $row['texto'] = str_replace (':)','<img src="images/smilies/smile.gif" align="middle">',$row['texto']);
  39.     $row['texto'] = str_replace (':(','<img src="images/smilies/triste.gif" align="middle">',$row['texto']);
  40.     $row['texto'] = str_replace (':O','<img src="images/smilies/sorpresa.gif" align="middle">',$row['texto']);
  41.     $row['texto'] = str_replace (':P','<img src="images/smilies/lengua.gif" align="middle">',$row['texto']);
  42.     $row['texto'] = str_replace (':\\\'(','<img src="images/smilies/llora.gif" align="middle">',$row['texto']);
  43.     $row['texto'] = str_replace (':D','<img src="images/smilies/risa.gif" align="middle">',$row['texto']);
  44.     if($row['para'] != $usuario)echo "  parent.ms('".$row['de']."','".$row['color']."','".$row['texto']."');\n";
  45.     else echo " parent.mp('".$row['de']."','".$row['color']."','".$row['texto']."');\n";
  46.   }
  47.   else {
  48.     switch ($comandos[0]){
  49.       case 'logout':
  50.         $texto = '';
  51.         for($i=2;$i<count($comandos);$i++)$texto .= $comandos[$i].' ';
  52.         echo "  parent.am('".$comandos[1]." acaba de abandonar el chat ( $texto)');\n";
  53.         echo "  u = new Array(";
  54.         $sql="SELECT * FROM c_usuarios ORDER BY nombre";
  55.         $result=mysql_query($sql,$db);
  56.         $temp = 0;
  57.         if(mysql_num_rows($result))while ($row=mysql_fetch_array($result)){
  58.           if($temp++)echo ",";
  59.           echo "'".$row['nombre']."'";
  60.         }
  61.         echo ");\n";
  62.         echo "  parent.ul(u);\n";
  63.         break;
  64.       case 'login':
  65.         if($comandos[1] != $usuario)echo "  parent.am('".$comandos[1]." acaba de entrar en el chat');\n";
  66.         echo "  u = new Array(";
  67.         $sql="SELECT * FROM c_usuarios ORDER BY nombre";
  68.         $result=mysql_query($sql,$db);
  69.         $temp = 0;
  70.         if(mysql_num_rows($result))while ($row=mysql_fetch_array($result)){
  71.           if($temp++)echo ",";
  72.           echo "'".$row['nombre']."'";
  73.         }
  74.         echo ");\n";
  75.         echo "  parent.ul(u);\n";
  76.         break;
  77.     }
  78.   }
  79. }
  80. if($haymensaje)echo "   window.focus();\n";
  81. echo "  window.setTimeout(\"document.location='script.php?t=";
  82. echo $ahora;
  83. if(isset($last))echo '&l='.$last;
  84. echo '\'",'.segundos."000);\n";
  85. ?>
  86.      --></script>
  87.   </head>
  88. </html>
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB