Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema con generador de códigos

Estas en el tema de Problema con generador de códigos en el foro de Frameworks JS en Foros del Web. tengo un verificador de codigos generados aleatoriamente que me lo econtre en la red. Cuando lo probe individualmente funciona perfectamente pero ahora lo implemente en ...
  #1 (permalink)  
Antiguo 28/10/2009, 08:16
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Problema con generador de códigos

tengo un verificador de codigos generados aleatoriamente que me lo econtre en la red. Cuando lo probe individualmente funciona perfectamente pero ahora lo implemente en mi pagina pero pasa este problema.
1.-
Cuando pongo comprobar no ahy ningun problema me sale el mensaje:
http://img251.imageshack.us/img251/753/46995162.jpg

2.- Pero cuando realizo un busqueda y ese numero esta libre repite dos veces el forma asi:
http://img210.imageshack.us/img210/1945/56235236.jpg

3.- Y cuando encuentra el numero lo mismo pasa asi:
http://img42.imageshack.us/img42/1679/24664366.jpg

Este es mi codigo la verdar no entiendo pq repite mi forma.
Código php:
Ver original
  1. <title>UNO SOLO</title>
  2. <script type="text/javascript">
  3. function nuevoAjax()
  4. {
  5.     /* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
  6.     lo que se puede copiar tal como esta aqui */
  7.     var xmlhttp=false;
  8.     try
  9.     {
  10.         // Creacion del objeto AJAX para navegadores no IE
  11.         xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  12.     }
  13.     catch(e)
  14.     {
  15.         try
  16.         {
  17.             // Creacion del objet AJAX para IE
  18.             xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  19.         }
  20.         catch(E) { xmlhttp=false; }
  21.     }
  22.     if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); }
  23.  
  24.     return xmlhttp;
  25. }
  26.  
  27. function eliminaEspacios(cadena)
  28. {
  29.     // Funcion equivalente a trim en PHP
  30.     var x=0, y=cadena.length-1;
  31.     while(cadena.charAt(x)==" ") x++;  
  32.     while(cadena.charAt(y)==" ") y--;  
  33.     return cadena.substr(x, y-x+1);
  34. }
  35.  
  36. function validaIngreso(valor)
  37. {
  38.     /* Funcion encargada de validar lo ingresado por el usuario. Se devuelve TRUE en caso de ser
  39.     valido, FALSE en caso contrario */
  40.     var reg=/(^[a-zA-Z0-9.@ ]{4,40}$)/;
  41.     if(reg.test(valor)) return true;
  42.     else return false;
  43. }
  44.  
  45. function nuevoEvento(evento)
  46. {
  47.     // Obtengo el div donde se mostraran las advertencias y errores
  48.     var divMensaje=document.getElementById("error");
  49.  
  50.     /* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
  51.     distintas variables */ 
  52.     if(evento=="ingreso")
  53.     {
  54.         var input=document.getElementById("ingreso");
  55.         // Boton presionado
  56.         var boton=document.getElementById("botonIngreso");
  57.         // Valor ingresado por el usuario
  58.         var valor=input.value;
  59.         // Texto a colocar en el input mientras se esta cargando la respuesta del servidor
  60.         var textoAccion="Ingresando...";
  61.     }
  62.     else
  63.     {
  64.         var input=document.getElementById("verificacion");
  65.         // Boton presionado
  66.         var boton=document.getElementById("botonVerificacion");
  67.         // Valor ingresado por el usuario
  68.         var valor=input.value;
  69.         // Texto a colocar en el input mientras se esta cargando la respuesta del servidor
  70.         var textoAccion="Comprobando...";
  71.     }
  72.     // Elimino espacios por delante y detras de lo ingresado por el usuario
  73.     valor=eliminaEspacios(valor);
  74.     // Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
  75.     if(!validaIngreso(valor))
  76.     {
  77.         divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
  78.     }
  79.     else
  80.     {
  81.         // Deshabilito inputs y botones para evitar dobles ingresos
  82.         boton.disabled=true; input.disabled=true;
  83.         input.value=textoAccion;
  84.        
  85.         // Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
  86.         var ajax=nuevoAjax();
  87.         ajax.open("POST", "index.php?mod=ajax&pag=proceso", true);
  88.         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  89.         ajax.send(evento+"="+valor);
  90.        
  91.         ajax.onreadystatechange=function()
  92.         {
  93.             if (ajax.readyState==4)
  94.             {
  95.                 // Habilito nuevamente botones e inputs
  96.                 input.value="";
  97.                 boton.disabled=false; input.disabled=false;
  98.                 // Muestro el mensaje enviado desde el servidor
  99.                 divMensaje.innerHTML=ajax.responseText;
  100.             }
  101.         }
  102.     }
  103. }
  104. </script>
  105. </head>
  106. <body>
  107.             <?php
  108.             include 'conectar.php';
  109.            
  110.             function validaIngreso($valor)
  111.             {
  112.                 // Funcion utilizada para validar el dato a ingresar recibido por POST
  113.                 if(eregi("^[a-zA-Z0-9.@ ]{4,40}$", $valor)) return TRUE;
  114.                 else return FALSE;
  115.             }
  116.            
  117.             function verificaExistencia($apodo)
  118.             {
  119.                 /* Funcion encargada de verificar la existencia del apodo recibido en base de datos.
  120.                 Devuelve TRUE si el apodo existe, FALSE de lo contrario */
  121.                 $consulta=mysql_query("SELECT id FROM jugadores WHERE registro_fbf='$apodo'") or die(mysql_error());
  122.                 $registro=mysql_fetch_row($consulta);
  123.                
  124.                 if(!empty($registro)) return TRUE;
  125.                 else return FALSE;
  126.             }
  127.            
  128.             if(isset($_POST["ingreso"]))
  129.             {
  130.                 // Quito espacios en blanco al comienzo y fin de la cadena
  131.                 $valor=trim($_POST["ingreso"]);
  132.                 // Si el valor recibido es valido...
  133.                 if(validaIngreso($valor))
  134.                 {
  135.                     conectar();
  136.                    
  137.                     $consulta=mysql_query("SELECT COUNT(*) FROM jugadores") or die(mysql_error());
  138.                     $registro=mysql_fetch_row($consulta);
  139.            
  140.                     // Verifico que la base de datos no rebase los 600 registros (numero arbitrario)
  141.                     if($registro[0]>=600) { echo "Hay demasiados registros en la Base de Datos"; die(); }
  142.                    
  143.                     // Si el apodo ya existe en base de datos...
  144.                     if(verificaExistencia($valor)) echo "Tu apodo ya existe en la base de datos";
  145.                     else
  146.                     {
  147.                         // Ingreso el nuevo apodo
  148.                         mysql_query("INSERT INTO jugadores (apodo) VALUES ('$valor')") or die(mysql_error());
  149.                         echo "Tu apodo ha sido ingresado";
  150.                     }
  151.                     desconectar();
  152.                 }
  153.             }
  154.             elseif(isset($_POST["verificacion"]))
  155.             {
  156.                 // Quito espacios en blanco al comienzo y fin de la cadena
  157.                 $valor=trim($_POST["verificacion"]);
  158.                 // Si el valor recibido es valido...
  159.                 if(validaIngreso($valor))
  160.                 {
  161.                     Conectarse();
  162.                     // Si el apodo ya existe en base de datos...
  163.                     if(verificaExistencia($valor)) echo "El registro ya existe Chequea bien aver";
  164.                     else echo "Numero generado  disponible";
  165.                     desconectar();
  166.                 }
  167.             }
  168.             ?>
  169.  
  170.  
  171. <center>
  172.             <form name="forma" action="index.php?mod=ajax&pag=proceso" method="post">
  173.             <div id="demo" style="width:600px;">
  174.                 <div id="demoDer">
  175.                     <input type="text" id="verificacion" name="verificacion">
  176.                     <button type="button" id="botonVerificacion" onclick="nuevoEvento('verificacion')">Comprobar</button>
  177.                 </div>
  178.                 <div id="demoIzq">
  179.                    
  180.                 </div>
  181.                 <div class="mensaje" id="error"></div>
  182.             </div>
  183.             </form>
  184.         </center>  
  185. </body>
  186.  
  187. </html>

Y este es mi pq cobtrolador:
Código php:
Ver original
  1. <?php
  2.     $pagina = $_GET['pag'];
  3.    
  4.     switch($pagina) {
  5.         case 'vista':
  6.        
  7.             include('modulos/ajax/vistas/uno.html.php');
  8.        
  9.         break;
  10.         case 'proceso':
  11.            include('modulos/ajax/vistas/uno.html.php');
  12.        
  13.         break;
  14.      
  15.     }
  16. ?>

Alguien podria decirme q es lo que esta pasando y como debp proceder a lo solucion muchas gracias??
  #2 (permalink)  
Antiguo 28/10/2009, 08:28
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Una pequeña guia por favor ????

hola ...

esta línea:

ajax.open("POST", "index.php?mod=ajax&pag=proceso", true);

llama a tu página index.php .... como se llama la página donde tienes todos estos resultados ???? si es index, lo que te recomiendo es que todo el proceso de búsqueda lo hagas en una página extra, ejemplo procesa.php, y el resultado lo muestres en la página index.php pero en el DIV correspondiente .... espero te sirva .. salu2 ...
__________________
-----------------------------------
Éxitos !!! .. joao
  #3 (permalink)  
Antiguo 28/10/2009, 08:34
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Una pequeña guia por favor ????

Exacto en primera instancia hice eso la parte del proceso lo hacia en un script aparte asi:
Código php:
Ver original
  1. <?php
  2. include 'conexion.php';
  3.  
  4. function validaIngreso($valor)
  5. {
  6.     // Funcion utilizada para validar el dato a ingresar recibido por POST
  7.     if(eregi("^[a-zA-Z0-9.@ ]{4,40}$", $valor)) return TRUE;
  8.     else return FALSE;
  9. }
  10.  
  11. function verificaExistencia($apodo)
  12. {
  13.     /* Funcion encargada de verificar la existencia del apodo recibido en base de datos.
  14.     Devuelve TRUE si el apodo existe, FALSE de lo contrario */
  15.     $consulta=mysql_query("SELECT id FROM jugadores WHERE registro_fbf='$apodo'") or die(mysql_error());
  16.     $registro=mysql_fetch_row($consulta);
  17.    
  18.     if(!empty($registro)) return TRUE;
  19.     else return FALSE;
  20. }
  21.  
  22. if(isset($_POST["ingreso"]))
  23. {
  24.     // Quito espacios en blanco al comienzo y fin de la cadena
  25.     $valor=trim($_POST["ingreso"]);
  26.     // Si el valor recibido es valido...
  27.     if(validaIngreso($valor))
  28.     {
  29.         conectar();
  30.        
  31.         $consulta=mysql_query("SELECT COUNT(*) FROM jugadores") or die(mysql_error());
  32.         $registro=mysql_fetch_row($consulta);
  33.  
  34.         // Verifico que la base de datos no rebase los 600 registros (numero arbitrario)
  35.         if($registro[0]>=600) { echo "Hay demasiados registros en la Base de Datos"; die(); }
  36.        
  37.         // Si el apodo ya existe en base de datos...
  38.         if(verificaExistencia($valor)) echo "Tu apodo ya existe en la base de datos";
  39.         else
  40.         {
  41.             // Ingreso el nuevo apodo
  42.             mysql_query("INSERT INTO jugadores (apodo) VALUES ('$valor')") or die(mysql_error());
  43.             echo "Tu apodo ha sido ingresado";
  44.         }
  45.         desconectar();
  46.     }
  47. }
  48. elseif(isset($_POST["verificacion"]))
  49. {
  50.     // Quito espacios en blanco al comienzo y fin de la cadena
  51.     $valor=trim($_POST["verificacion"]);
  52.     // Si el valor recibido es valido...
  53.     if(validaIngreso($valor))
  54.     {
  55.         conectar();
  56.         // Si el apodo ya existe en base de datos...
  57.         if(verificaExistencia($valor)) echo "El registro ya existe Chequea bien aver";
  58.         else echo "Apodo disponible";
  59.         desconectar();
  60.     }
  61. }
  62. ?>

Y en el form a esta parte llamaba asi:

ajax.open("POST", index.php?mod=ajax&pag=proceso", true);

Y en mi controlador asi:
Código php:
Ver original
  1. switch($pagina) {
  2.         case 'vista':
  3.         // if(!empty($_SESSION['usuario_id'])||($_SESSION['usuario_nivel']==3)||($_SESSION['usuario_nivel']==2)){
  4.             include('modulos/ajax/vistas/uno.html.php');
  5.         //} else {
  6.         //   echo "<center> Usted no tiene permisos para acceder </center>";
  7.         //}
  8.         break;
  9.         case 'proceso':
  10.            include('modulos/ajax/vistas/proceso.php');

Pero es lo mismo me sigue repitiendo ??


Estoy haciendo la prueba en un solo fuera de mi sistema esto y resulta que lleve todos los archivos en uno solo que se llama uno.html.php
y el problema es el mismo:
Código php:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>UNO SOLO</title>
  6. <script type="text/javascript">
  7. function nuevoAjax()
  8. {
  9.     /* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
  10.     lo que se puede copiar tal como esta aqui */
  11.     var xmlhttp=false;
  12.     try
  13.     {
  14.         // Creacion del objeto AJAX para navegadores no IE
  15.         xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  16.     }
  17.     catch(e)
  18.     {
  19.         try
  20.         {
  21.             // Creacion del objet AJAX para IE
  22.             xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  23.         }
  24.         catch(E) { xmlhttp=false; }
  25.     }
  26.     if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); }
  27.  
  28.     return xmlhttp;
  29. }
  30.  
  31. function eliminaEspacios(cadena)
  32. {
  33.     // Funcion equivalente a trim en PHP
  34.     var x=0, y=cadena.length-1;
  35.     while(cadena.charAt(x)==" ") x++;  
  36.     while(cadena.charAt(y)==" ") y--;  
  37.     return cadena.substr(x, y-x+1);
  38. }
  39.  
  40. function validaIngreso(valor)
  41. {
  42.     /* Funcion encargada de validar lo ingresado por el usuario. Se devuelve TRUE en caso de ser
  43.     valido, FALSE en caso contrario */
  44.     var reg=/(^[a-zA-Z0-9.@ ]{4,40}$)/;
  45.     if(reg.test(valor)) return true;
  46.     else return false;
  47. }
  48.  
  49. function nuevoEvento(evento)
  50. {
  51.     // Obtengo el div donde se mostraran las advertencias y errores
  52.     var divMensaje=document.getElementById("error");
  53.  
  54.     /* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
  55.     distintas variables */ 
  56.     if(evento=="ingreso")
  57.     {
  58.         var input=document.getElementById("ingreso");
  59.         // Boton presionado
  60.         var boton=document.getElementById("botonIngreso");
  61.         // Valor ingresado por el usuario
  62.         var valor=input.value;
  63.         // Texto a colocar en el input mientras se esta cargando la respuesta del servidor
  64.         var textoAccion="Ingresando...";
  65.     }
  66.     else
  67.     {
  68.         var input=document.getElementById("verificacion");
  69.         // Boton presionado
  70.         var boton=document.getElementById("botonVerificacion");
  71.         // Valor ingresado por el usuario
  72.         var valor=input.value;
  73.         // Texto a colocar en el input mientras se esta cargando la respuesta del servidor
  74.         var textoAccion="Comprobando...";
  75.     }
  76.     // Elimino espacios por delante y detras de lo ingresado por el usuario
  77.     valor=eliminaEspacios(valor);
  78.     // Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
  79.     if(!validaIngreso(valor))
  80.     {
  81.         divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
  82.     }
  83.     else
  84.     {
  85.         // Deshabilito inputs y botones para evitar dobles ingresos
  86.         boton.disabled=true; input.disabled=true;
  87.         input.value=textoAccion;
  88.        
  89.         // Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
  90.         var ajax=nuevoAjax();
  91.         ajax.open("POST", "uno.html.php", true);
  92.         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  93.         ajax.send(evento+"="+valor);
  94.        
  95.         ajax.onreadystatechange=function()
  96.         {
  97.             if (ajax.readyState==4)
  98.             {
  99.                 // Habilito nuevamente botones e inputs
  100.                 input.value="";
  101.                 boton.disabled=false; input.disabled=false;
  102.                 // Muestro el mensaje enviado desde el servidor
  103.                 divMensaje.innerHTML=ajax.responseText;
  104.             }
  105.         }
  106.     }
  107. }
  108. </script>
  109. </head>
  110. <?php
  111. include 'conexion.php';
  112.  
  113. function validaIngreso($valor)
  114. {
  115.     // Funcion utilizada para validar el dato a ingresar recibido por POST
  116.     if(eregi("^[a-zA-Z0-9.@ ]{4,40}$", $valor)) return TRUE;
  117.     else return FALSE;
  118. }
  119.  
  120. function verificaExistencia($apodo)
  121. {
  122.     /* Funcion encargada de verificar la existencia del apodo recibido en base de datos.
  123.     Devuelve TRUE si el apodo existe, FALSE de lo contrario */
  124.     $consulta=mysql_query("SELECT id FROM jugadores WHERE registro_fbf='$apodo'") or die(mysql_error());
  125.     $registro=mysql_fetch_row($consulta);
  126.    
  127.     if(!empty($registro)) return TRUE;
  128.     else return FALSE;
  129. }
  130.  
  131. if(isset($_POST["ingreso"]))
  132. {
  133.     // Quito espacios en blanco al comienzo y fin de la cadena
  134.     $valor=trim($_POST["ingreso"]);
  135.     // Si el valor recibido es valido...
  136.     if(validaIngreso($valor))
  137.     {
  138.         conectar();
  139.        
  140.         $consulta=mysql_query("SELECT COUNT(*) FROM jugadores") or die(mysql_error());
  141.         $registro=mysql_fetch_row($consulta);
  142.  
  143.         // Verifico que la base de datos no rebase los 600 registros (numero arbitrario)
  144.         if($registro[0]>=600) { echo "Hay demasiados registros en la Base de Datos"; die(); }
  145.        
  146.         // Si el apodo ya existe en base de datos...
  147.         if(verificaExistencia($valor)) echo "Tu apodo ya existe en la base de datos";
  148.         else
  149.         {
  150.             // Ingreso el nuevo apodo
  151.             mysql_query("INSERT INTO jugadores (apodo) VALUES ('$valor')") or die(mysql_error());
  152.             echo "Tu apodo ha sido ingresado";
  153.         }
  154.         desconectar();
  155.     }
  156. }
  157. elseif(isset($_POST["verificacion"]))
  158. {
  159.     // Quito espacios en blanco al comienzo y fin de la cadena
  160.     $valor=trim($_POST["verificacion"]);
  161.     // Si el valor recibido es valido...
  162.     if(validaIngreso($valor))
  163.     {
  164.         conectar();
  165.         // Si el apodo ya existe en base de datos...
  166.         if(verificaExistencia($valor)) echo "El registro ya existe Chequea bien aver";
  167.         else echo "Apodo disponible";
  168.         desconectar();
  169.     }
  170. }
  171. ?>
  172. <body>
  173. <center>
  174.            
  175.             <div id="demo" style="width:600px;" align="center">
  176.            
  177.                     <input type="text" id="verificacion">
  178.                     <button type="button" id="botonVerificacion" onclick="nuevoEvento('verificacion')">Comprobar</button>
  179.            
  180.            
  181.                    
  182.            
  183.                 <div class="mensaje" id="error"></div>
  184.             </div>
  185. </center>          
  186. </body>
  187.  
  188. </html>


Creo q el porblema paso por aqui :
var ajax=nuevoAjax();
ajax.open("POST", "uno.html.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send(evento+"="+valor);

Cuando llama de nuevo vuelve a cargar creo no se que dicen ??

Última edición por vili86; 28/10/2009 a las 08:39 Razón: Falta de codigo
  #4 (permalink)  
Antiguo 28/10/2009, 08:38
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Una pequeña guia por favor ????

podrías poner arriba de tus códigos a qué página pertenecen ellos ?? es que no me queda claro quien es index y quien es otra página ...
__________________
-----------------------------------
Éxitos !!! .. joao
  #5 (permalink)  
Antiguo 28/10/2009, 08:46
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Una pequeña guia por favor ????

Disculpa joaowizard y gracias por tu ayuda pero creo q posteaste cuando envie este ultimo post por hacer la prueba lleve fuera de mi pagina este script y pase todos mis script en uno solo que se llama uno.html.php que ya lo posteo arriba y el problema es el mismo creo que el problema no es la estructura MVC de mis paginas sino el llamado de esta funcion:
var ajax=nuevoAjax();
ajax.open("POST", "uno.html.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send(evento+"="+valor);

http://img42.imageshack.us/img42/6717/26063840.jpg

Creo que eses el problema ??? gracias por tu ayuda
  #6 (permalink)  
Antiguo 28/10/2009, 08:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a AJAX
  #7 (permalink)  
Antiguo 28/10/2009, 09:17
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Problema con generador de códigos

index.php
Código:
function nuevoAjax()
{ 
/* Crea el objeto AJAX*/
	var xmlhttp=false; 
	try 
	{ 
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch(e)
	{ 
		try
		{ 
			// Creacion del objet AJAX para IE 
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch(E) { xmlhttp=false; }
	}
	if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 

	return xmlhttp; 
}

function eliminaEspacios(cadena)
{
	// Funcion equivalente a trim en PHP
	var x=0, y=cadena.length-1;
	while(cadena.charAt(x)==" ") x++;	
	while(cadena.charAt(y)==" ") y--;	
	return cadena.substr(x, y-x+1);
}

function validaIngreso(valor)
{
	/* Funcion encargada de validar lo ingresado por el usuario. Se devuelve TRUE en caso de ser 
	valido, FALSE en caso contrario */
	var reg=/(^[a-zA-Z0-9.@ ]{4,40}$)/;
	if(reg.test(valor)) return true;
	else return false;
}

function nuevoEvento(evento)
{
	// Obtengo el div donde se mostraran las advertencias y errores
	var divMensaje=document.getElementById("error");

	/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
	distintas variables */	
	if(evento=="ingreso")
	{
		var input=document.getElementById("ingreso");
		// Boton presionado
		var boton=document.getElementById("botonIngreso");
		// Valor ingresado por el usuario
		var valor=input.value;
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Ingresando...";
	}
	else
	{
		var input=document.getElementById("verificacion");
		// Boton presionado
		var boton=document.getElementById("botonVerificacion");
		// Valor ingresado por el usuario
		var valor=input.value;
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Comprobando...";
	}
	// Elimino espacios por delante y detras de lo ingresado por el usuario
	valor=eliminaEspacios(valor);
	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
	if(!validaIngreso(valor)) 
	{
		divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
	}
	else
	{
		// Deshabilito inputs y botones para evitar dobles ingresos
		boton.disabled=true; input.disabled=true;
		input.value=textoAccion;
		
		// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
		var ajax=nuevoAjax();
		ajax.open("POST", "comprobar_disponibilidad_de_apodo_proceso.php", true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(evento+"="+valor);
		
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{
				// Habilito nuevamente botones e inputs
				input.value="";
				boton.disabled=false; input.disabled=false;
				// Muestro el mensaje enviado desde el servidor
				divMensaje.innerHTML=ajax.responseText;
			}
		}
	}
}


...sigue tu código HTML...

acá llamas a tu función en el form de esta misma página:

<input type="text" id="verificacion">
button type="button" id="botonVerificacion" onclick="nuevoEvento('verificacion')">Comprobar</button>
comprobar_disponibilidad_de_apodo_proceso.php
Código PHP:
<?php
include '../include/conexion.php';

function 
validaIngreso($valor)
{
    
// Funcion utilizada para validar el dato a ingresar recibido por POST
    
if(eregi("^[a-zA-Z0-9.@ ]{4,40}$"$valor)) return TRUE;
    else return 
FALSE;
}

function 
verificaExistencia($apodo)
{
/* Funcion encargada de verificar la existencia del apodo recibido en base de datos. Devuelve TRUE si el apodo existe, FALSE de lo contrario */
    
$consulta=mysql_query("SELECT * FROM usuarios WHERE nick='$apodo'") or die(mysql_error());
    
$registro=mysql_fetch_row($consulta);
    
    if(!empty(
$registro)) return TRUE;
    else return 
FALSE;
}

if(isset(
$_POST["verificacion"]))
{
    
// Quito espacios en blanco al comienzo y fin de la cadena
    
$valor=trim($_POST["verificacion"]);
    
// Si el valor recibido es valido...
    
if(validaIngreso($valor))
    {
        
//conectar();
        // Si el apodo ya existe en base de datos...
        
if(verificaExistencia($valor)) echo "El nick: <strong>".$valor."</strong> ya existe en la base de datos, elija otro";
        else echo 
"El nick: <strong>".$valor."</strong> esta disponible";
        
//desconectar();
    
}
}
?>
Este lo he probado y funciona de maravillas ... es el mismo ejemplo tuyo ...
__________________
-----------------------------------
Éxitos !!! .. joao
  #8 (permalink)  
Antiguo 28/10/2009, 10:08
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con generador de códigos

Gracias joaowizard pero para sacarme de duda el problema era en ajax o en el if-else del codigo php

Muchas Gracias se agradece amista
  #9 (permalink)  
Antiguo 28/10/2009, 10:32
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Problema con generador de códigos

pienso que "el problema" es que llamabas en la misma página tu ajax y por esos e cargaba 2 veces ... además, no entendí muy bien como tenías distribuidos los archivos ni cuantos eran .. es por eso que te envié todo unificado y en solo 2 arcihvos .. :) ..un salu2!!
__________________
-----------------------------------
Éxitos !!! .. joao
  #10 (permalink)  
Antiguo 28/10/2009, 11:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con generador de códigos

Me da verguenza decirte esto pero es el mismo error ahora implementado en mi pagina:
http://img405.imageshack.us/img405/4347/50067883.jpg


Para que tengas una idea de como esta estructura mi sistema mira esto:

http://img405.imageshack.us/img405/6406/30691134.jpg

Y en mi index principal llamo asi:
Código php:
Ver original
  1. </head>
  2. <body>
  3. <?php include('cabecera.php');?>
  4. <?php
  5.             $modulo = $_GET['mod'];
  6.             if (!empty($modulo)) {
  7.                 $ruta = 'modulos/' . $modulo . '/'.$modulo.'.ctrl.php';
  8.                 if (file_exists($ruta)) {
  9.                     include($ruta);
  10.                 } else {
  11.                     echo "ERROR 404: No existe el archivo";
  12.                 }
  13.             } else {
  14.               ?>
  15.                 <table align="center" width="850" height="400" border="0">
  16.                 <tr>
  17.                 <td>
  18.                 <table>
  19.                 <tr>
  20.                      <td width="123">
  21.                        <h3 align="center" class="Estilo2">Noticias Breves</h3>
  22.                         <div align="center">
  23.                           <?php  include('modulos/noticias/vistas/scroll.html.php');?> 
  24.                        </div></td>
  25.                      <td width="711">
  26.                         <div align="center">
  27.                         <?php include('cuerpo.php'); ?>
  28.                         </div>
  29.                     </td>
  30.                 </tr>

Perdon por la molestias
  #11 (permalink)  
Antiguo 28/10/2009, 14:24
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con generador de códigos

YA LO RESOLVI joaowizard EL PROBLEMA PARA QUE NO REPITA DOS VECES ERA ESTO
ajax.open("POST", "modulos/ajax/vistas/comprobar_disponibilidad_de_apodo_proceso.php", true);

NADA MAS MUCHAS GRACIAS POR SU TIEMPO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:15.