Foros del Web » Programando para Internet » PHP »

error al comprobar la validez de un usuario escrito y al registro y con php y ajax

Estas en el tema de error al comprobar la validez de un usuario escrito y al registro y con php y ajax en el foro de PHP en Foros del Web. Bueno, saludos a todos, lo que pasa es lo siguiente, primero estoy realizando una validez de un nombre de usuario escrito en un formulario para ...
  #1 (permalink)  
Antiguo 24/05/2012, 11:48
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 10 meses
Puntos: 41
Pregunta error al comprobar la validez de un usuario escrito y al registro y con php y ajax

Bueno, saludos a todos, lo que pasa es lo siguiente, primero estoy realizando una validez de un nombre de usuario escrito en un formulario para que el cliente que maneje el formulario no tenga que llenar todos los campos para que le diga error el usuario ya existe esa parte la estoy haciendo con ajax... pero digamos que cuando el llena los campos (eso quiere decir que ya comprobo si existe el usuario) y voy a enviar los datos del formulario a la BD con php... me manada error... pues es como si al enviar los datos me estubiera realizando es la validez del usuario y no la sentencia registrar en php que esta prevista... pero lo raro es que algunas veces me sale y cuando actualizo me sale... algo que no puedo entender... si no me explico bien diganme... pero les voy a dejar el codigo...

newuser.php
Código Javascript:
Ver original
  1. <?php  
  2.     if(isset($_POST['save']) && $_POST['save'] == 'Save'){
  3.         /* Incluimos la pagina donde se conecta a la DB de MySql. */
  4.         include 'connection.php';
  5.         /* Se establecen dos parametros para la funcion encriptar. */
  6.         function encriptar($cadena, $clave){
  7.             $cifrado = MCRYPT_RIJNDAEL_256;
  8.             $modo = MCRYPT_MODE_ECB;
  9.             return mcrypt_encrypt($cifrado, $clave, $cadena, $modo, mcrypt_create_iv(mcrypt_get_iv_size($cifrado, $modo), MCRYPT_RAND));
  10.         }
  11.         /* Se establecen dos parametros para la funcion desencriptar. */
  12.         function desencriptar($cadena, $clave){
  13.             $cifrado = MCRYPT_RIJNDAEL_256;
  14.             $modo = MCRYPT_MODE_ECB;
  15.             return mcrypt_decrypt($cifrado, $clave, $cadena, $modo, mcrypt_create_iv(mcrypt_get_iv_size($cifrado, $modo), MCRYPT_RAND));
  16.         }
  17.         /* Pasamos los datos recogidos por el metodo post en otras variables. */
  18.         $username = $_REQUEST['username'];
  19.         $password = $_REQUEST['password'];
  20.         /* Pasamos a encriptar con la funcion "base64_encode". */
  21.         $valorEncriptado = base64_encode(encriptar($username, $password));
  22.         /* Pasamos a desencriptar con la funcion "base64_decode". */
  23.         $valorOriginal = desencriptar(base64_decode($valorEncriptado), $password);     
  24.         $fecha = date("Y-m-d");
  25.         $estado = "Activo";    
  26.         /* Metodo para subir el archivo al servidor. */
  27.         $tipo = $_FILES["userfile"]['type'];
  28.         $type = substr($tipo, (strpos($tipo,"/"))+1);
  29.         $types = array("jpeg","gif","png");            
  30.         $destino = "images/photos/";
  31.         if(in_array($type, $types)){       
  32.             if(isset($_FILES['userfile'])){        
  33.                 $file = $_FILES['userfile']['name'];
  34.                 $temp   = $_FILES['userfile']['tmp_name'];         
  35.                 // subir imagen al servidor
  36.                 if(move_uploaded_file($temp, $destino.$file)){
  37.                     $foto = $file;
  38.                 }      
  39.             }          
  40.         }else{
  41.             header('Location: newuser.php?type="formato"');
  42.         }
  43.         $query = "INSERT INTO usuario (cedula, foto, nombre, apellido, sexo, telefono, email, direccion, ciudad, provincia, pais, username, password, rango, sueldo, aporte, fecha_U, estado_U) VALUES ('$_REQUEST[cedula]','$foto','$_REQUEST[nombre]','$_REQUEST[apellido]','$_REQUEST[sexo]','$_REQUEST[telefono]','$_REQUEST[email]','$_REQUEST[direccion]','$_REQUEST[ciudad]','$_REQUEST[provincia]','$_REQUEST[pais]','$valorOriginal','$valorEncriptado','$_REQUEST[rango]','$_REQUEST[sueldo]','$_REQUEST[cuota]','$fecha','$estado')";               
  44.         $q = mysql_query($query, $link);
  45.         if(!$q){
  46.             header('Location: newuser.php?newr="no"');
  47.         }else{
  48.             header('Location: newuser.php?new="si"');
  49.         }  
  50.         /* Por ultimo cerramos la conexion de la BD. */
  51.         mysql_close($link);
  52.     }  
  53. ?>
  #2 (permalink)  
Antiguo 24/05/2012, 11:53
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 10 meses
Puntos: 41
Respuesta: error al comprobar la validez de un usuario escrito y al registro y con ph

newuser.php
Código Javascript:
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. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <meta http-equiv="X-UA-Compatible" content="IE=7" />
  5. <META name="description" content="">
  6. <META name="classification" content="hosting colombia">
  7. <META name="robots" content="ALL" >
  8. <meta name="author" content="Deivis Andres Herrera Julio">
  9. <meta name="copyright" content="Copyright 2012, programasoft.com/deivis">
  10. <meta name="content-language" content="es">
  11. <meta name="revisit-after" content="1 Days" />
  12. <meta name="googlebot" content="ALL" />
  13. <meta name="classification" content="software" />
  14. <!-- Le fav and touch icons -->
  15. <link rel="shortcut icon" href="images/logo.png">
  16. <link rel="apple-touch-icon" href="images/logo.png">
  17. <link rel="apple-touch-icon" sizes="72x72" href="images/logo.png">
  18. <link rel="apple-touch-icon" sizes="114x114" href="images/logo.png">
  19. <!-- Le styles -->
  20. <!-- Validar usuario (AJAX), se valida si existe cuando este escribiendo en el input. -->
  21. <script language="javascript" src="js/ajax.validar.js" type="text/javascript"></script>
  22. <!-- Validar usuario (AJAX), se valida si existe cuando este escribiendo en el input. -->
  23. <script language="javascript" src="js/disable.js" type="text/javascript"></script><!-- Style inhabilitar el botón derecho del mouse -->
  24. <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script><!-- tooltip estilo Facebook -->
  25. <script type="text/javascript" src="js/jquery.tipsy.js"></script><!-- tooltip estilo Facebook -->
  26. <!-- para permitir numero en los campos text -->
  27. <script>
  28. function validar(e) {
  29.     tecla=(document.all) ? e.keyCode : e.which;
  30.     if(tecla<48 || tecla>57)
  31.         return false;
  32. }
  33. </script>
  34. <!-- Fin para permitir numero en los campos text -->
  35. <!-- tooltip estilo Facebook -->
  36. <script type='text/javascript'>
  37.     $(function() {
  38.         $('#focus-example [title]').tipsy({trigger: 'focus', gravity: 'w'});
  39.     });
  40. </script>
  41. <!-- Fin tooltip estilo Facebook -->
  42. <style type="text/css">
  43. #userfile{  
  44.     padding:12px;  
  45.     font:bold 12px Arial, Helvetica, sans-serif;
  46.     text-align:left;  
  47.     background:#f2f2f2;  
  48.     color:#3366cc;  
  49.     border:1px solid #ccc;  
  50.     width:400px;
  51.     display:block;  
  52.     -moz-border-radius:5px;
  53.     -webkit-border-radius:5px;       
  54.     text-decoration:none
  55. }
  56. #select{     
  57.     font:bold 15px Arial, Helvetica, sans-serif;
  58.     text-align:left;      
  59.     border:1px solid #ccc;  
  60.     height:33px;         
  61.     -moz-border-radius:5px;
  62.     -webkit-border-radius:5px; 
  63. }  
  64. </style>
  65. <head>
  66. <title>New User</title>
  67. <style type="text/css" media="all">
  68.     @import url("css/style.css");
  69.     @import url("css/jquery.wysiwyg.css");
  70.     @import url("css/facebox.css");
  71.     @import url("css/visualize.css");
  72.     @import url("css/date_input.css");
  73. </style>
  74. </head>
  75. <body>
  76. <div class="block">
  77.     <div class="block_head">
  78.         <div class="bheadl"></div>        
  79.         <h2>Registrar: Cuenta Usuario</h2>
  80.         <ul class="tabs">
  81.             <li class="active"><a href="listusuario.php">Listar</a></li>
  82.             <li class="active"><a href="panel.php">Panel</a></li>
  83.             <li></li>
  84.         </ul>              
  85.     </div>          
  86.     <div class="block_content tab_content" id="new">
  87.     <?php
  88.         /* Solo se mostrara si hay dato dentro de el metodo GET. */
  89.         if(isset($_GET['new'])){
  90.             echo '<div class="message success">Se ha guardado correctamente</div>';
  91.         }      
  92.         if(isset($_GET['type'])){
  93.             echo '<div class="message error">';
  94.             echo '<span class="strong">ERROR!</span> Solo imagenes jpg, png, gif.';
  95.             echo '</div>';
  96.         }
  97.         if(isset($_GET['newr'])){
  98.             echo '<div class="message error">';
  99.             echo '<span class="strong">ERROR!</span> La cedula &oacute; el usuario ya existen, registre otro.';
  100.             echo '</div>';
  101.         }
  102.     ?>           
  103.         <form method="post" action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" id="formulario">
  104.         <div style="float:left; width:450px" id="focus-example" class="example">
  105.             <label>Cedula</label><span class="strong" id="error" style="position:relative;visibility:hidden;color:#FF0000">ERROR! La cedula de este usuario ya existe.</span><br />
  106.             <input type="text" name="cedula" id="cedula" size="20" class="text required" required="required" onChange="return autentica();" onkeypress="return validar(event)" title="Igrese su numero de cedula"><br />
  107.            
  108.             <label>Nombre</label><br />
  109.             <input type="text" name="nombre" size="20" class="text required" required="required" title="Nombre completo" ><br />
  110.            
  111.             <label>Apellidos</label><br />
  112.             <input type="text" name="apellido"  size="20" class="text required" required="required" title="Apellido completo"><br />
  113.            
  114.             <label>Sexo</label><br />
  115.             <select class="styled" name="sexo" id="select" title="Seleccione su sexo">
  116.                 <option></option>
  117.                 <option value="Masculino"> Masculino </option>
  118.                 <option value="Femenino"> Femenino </option>               
  119.                 <option selected="selected"> Selecciona... </option>
  120.             </select><br />      
  121.            
  122.             <label>Telefono</label><br />
  123.             <input type="text" name="telefono"  size="20" class="text required" required="required" onkeypress="return validar(event)" title="Telefono &oacute; Celular"><br />
  124.            
  125.             <label>E-Mail</label><br />
  126.             <input type="text" name="email" size="20" class="text required" required="required" title="Ingrese su E-mail"><br />
  127.            
  128.             <label>Direcci&oacute;n</label><br />
  129.             <input type="text" name="direccion" size="20" class="text required" required="required" title="Direccion de vivienda"><br />
  130.            
  131.             <label>Ciudad</label><br />
  132.             <input type="text" name="ciudad" size="20" class="text required" required="required" title="Ciudad de origen"><br />
  133.                                                            
  134.         </div>     
  135.         <div style="float:left; width:450px; margin-left:50px" id="focus-example" class="example">
  136.             <label>Provincia</label><br />
  137.             <input type="text" name="provincia" size="20" class="text required" required="required" title="Provincia de su ciudad"><br />
  138.            
  139.             <label>Pais:</label><br />
  140.                 <select name="pais" class="styled" id="select" title="Pais de origen">
  141.                     <option selected> Por favor Seleccione </option>
  142.                     <option value="United States"> United States </option>
  143.                     <option value="Abkhazia"> Abkhazia </option>
  144.                     <option value="Afghanistan"> Afghanistan </option>
  145.                     <option value="Albania"> Albania </option>                  
  146.                     <option value="Zambia"> Zambia </option>
  147.                     <option value="Zimbabwe"> Zimbabwe </option>
  148.                     <option value="other"> Otro </option>
  149.                 </select><br />
  150.                        
  151.             <label>Usuario</label><br />
  152.             <input type="text" name="username" size="20" class="text required" required="required" title="Ingrese su username"><br />
  153.  
  154.             <label>Contrase&ntilde;a</label><br />
  155.             <input type="password" name="password" size="20" class="text required" required="required" title="Ingrese su password">
  156.            
  157.             <label>Sueldo</label><br />
  158.             <input type="text" name="sueldo" size="20" class="text required" required="required" onkeypress="return validar(event)" title="Ingre el sueldo que se gana"><br />
  159.            
  160.             <label>Rango</label><br />
  161.             <select class="styled" name="rango" id="select" onchange="if(this.value=='Socio'){document.getElementById('cuota').disabled= false}else{document.getElementById('cuota').disabled = true}" title="Tipo de rango al que pertence">
  162.                 <option></option>
  163.                 <option value="Administrador"> Administrador </option>
  164.                 <option value="Contadora"> Contadora </option>
  165.                 <option value="Secretaria"> Secretaria </option>
  166.                 <option value="Socio"> Socio </option>
  167.                 <option selected="selected"> Selecciona... </option>
  168.             </select><br />
  169.            
  170.             <label>Valor de Aporte</label><br />
  171.             <input type="text" name="cuota" size="5" maxlength="2" class="text required" id="cuota" disabled="disabled" required="required" onkeypress="return validar(event)" title="Hasta el 10% de su sueldo"><br />
  172.            
  173.             <label>Foto Perfil</label><br />
  174.             <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
  175.             <input name="userfile" type="file" class="box" id="userfile">
  176.         </div>                                       
  177.         <p>
  178.            <input type="submit" class="submit mid" name="save" value="Save" />
  179.            <input type="reset" class="submit mid" value="Delete" />
  180.         </p>              
  181.         </form>                
  182.     </div>    
  183.     <div class="bendl"></div>
  184.     <div class="bendr"></div>
  185. </div>
  186. </body>
  187. </html>

Esta parte va con la otra php...

esta script o ajax es la que me ayuda ha realizar la validez de la cedula cuando escribe en el campo...
Código Javascript:
Ver original
  1. <script language="javascript" src="js/ajax.validar.js" type="text/javascript"></script>

Y aqui es para llamar la funcion del ajax: onChange="return autentica();"
Código Javascript:
Ver original
  1. <label>Cedula</label><span class="strong" id="error" style="position:relative;visibility:hidden;color:#FF0000">ERROR! La cedula de este usuario ya existe.</span><br />
  2.             <input type="text" name="cedula" id="cedula" size="20" class="text required" required="required" onChange="return autentica();" onkeypress="return validar(event)" title="Igrese su numero de cedula">
  #3 (permalink)  
Antiguo 24/05/2012, 11:55
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 10 meses
Puntos: 41
Respuesta: error al comprobar la validez de un usuario escrito y al registro y con ph

ajax.validar.js

Código Javascript:
Ver original
  1. // Validar usuario usando AJAX, donde se validara si existe cuando este escribiendo en el input.
  2. var req;
  3. var respuesta;
  4.  
  5. function leer_doc(url) {
  6.  
  7.  req = false;
  8.  
  9.  // Llama objeto XMLHttpRequest
  10.  if (window.XMLHttpRequest) {
  11.    req = new XMLHttpRequest();
  12.    if (req.overrideMimeType) {
  13.      req.overrideMimeType('text/xml');
  14.    }
  15.  
  16.  // Si no funciona intenta utiliar el objeto IE/Windows ActiveX
  17.  } else if (window.ActiveXObject) {
  18.    req = new ActiveXObject("Microsoft.XMLHTTP");
  19.  }
  20.  
  21.  if(req!=null){
  22.    req.onreadystatechange = procesarRespuesta;
  23.    req.open('GET', url, true);
  24.    req.send(null);
  25.  }
  26.  
  27. }
  28.  
  29. function autentica(){
  30.  cedula = document.getElementById("cedula").value;
  31.  url = "existeuser.php?cedula=" + cedula;
  32.  leer_doc(url);
  33. }
  34.  
  35. function procesarRespuesta(){
  36.  
  37.  respuesta = req.responseXML;
  38.  var existe = respuesta.getElementsByTagName('existe').item(0).firstChild.data;
  39.    if (existe=="true")
  40.     document.getElementById("error").style.visibility = "visible";
  41.    else
  42.     document.getElementById("error").style.visibility = "hidden";
  43. }

y de este me manda para el php que hace la consulta... existeuser.php
  #4 (permalink)  
Antiguo 24/05/2012, 11:58
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 10 meses
Puntos: 41
Respuesta: error al comprobar la validez de un usuario escrito y al registro y con ph

existeuser.php

Código Javascript:
Ver original
  1. <?php
  2.     /* Incluimos la pagina donde se conecta a la DB de MySql. */
  3.     include 'connection.php';
  4.     if(isset($_GET['cedula'])){
  5.         $cedula = $_GET['cedula'];
  6.         header('Content-type: text/xml');
  7.         $sql = mysql_query("SELECT cedula FROM usuario WHERE cedula = '$cedula'", $link) or die(mysql_error());
  8.         $row = mysql_fetch_array($sql);
  9.         if($cedula != $row['cedula']){
  10.             echo("<?xml version=\"1.0\" ?><existe>false</existe>");  
  11.         }else{
  12.             echo("<?xml version=\"1.0\" ?><existe>true</existe>");
  13.         }      
  14.     }  
  15. ?>

y eso es todo.... entonces lo que quiero saber es porque cuando compruebo si existe la cédula o no... y si es valida... cuando voy a registrar me sale error.... es como si estuviera realizando la consulta que la de registrar.... como si se estubiera consultando el formulario....

espero y me puedan ayudar...

Etiquetas: ajax, escrito, formulario, mysql, registro, validez, variables, usuarios
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 07:31.