Foros del Web » Programando para Internet » PHP »

Validar si usuario existe en base datos

Estas en el tema de Validar si usuario existe en base datos en el foro de PHP en Foros del Web. Hola, me ha surgido un problema, o mas que nada una duda, tengo un script php llamado "registro.php" el cual sirve para que el usuario ...
  #1 (permalink)  
Antiguo 31/12/2010, 09:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Validar si usuario existe en base datos

Hola, me ha surgido un problema, o mas que nada una duda, tengo un script php llamado "registro.php" el cual sirve para que el usuario se registre, ese formulario lo valido con javascript, consta de 4 campos, usuario, pass, nombre, e-mail, si se desea enviar el formulario y hay campos vacíos o el correo no es correcto envía un alert la función javascript especificando que deben de cambiar dichos campos, una vez que el formulario es enviado correctamente lo envio a "registrarse.php" en el cual realiza la conexión a la base de datos, recibo los parámetros y realizo el query correspondiente para la inserción de un nuevo usuario si se ingreso correctamente utilizo un header para volver al index ya con el usuario registrado (estoy utilizando sesiones), ahora la duda es: si pasan como parámetro un nombre de usuario ya existente, en la página "registrarse.php" podría mostrar un letrero que el usuario ya existe, pero lo que yo quiero es saber si se puede regresar a la página "registro.php" y mostrar por ejemplo un alert especificando que el usuario ya existe, será posible? Disculpen pero aún soy algo novato en esto de PHP, muchas gracias. Saludos!!
  #2 (permalink)  
Antiguo 31/12/2010, 11:09
 
Fecha de Ingreso: noviembre-2010
Ubicación: laudio
Mensajes: 61
Antigüedad: 9 años, 1 mes
Puntos: 1
Respuesta: Validar si usuario existe en base datos

Si lo puedes hacer claro. Yo estoy haciendo el proyecto fin de carrera y tengo cosas de ese estilo. El caso es que cuando haya 1 error en alguno de los campos, metes la informacion que quieras en $_SESSION y haces header("Location: registro.php");. En la paginade registro.php tienes que controlar cuando la llamas desde cada sitio (desde el menu principal, desde la pagina que gestiona el formulario...), para así mostrar errores o no.
Sinceramente, a mi no me mola usar los alert de javascript, yo soy más partidario de hacer en CSS una clase "ERROR" para los campos del formulario que contienen errores.

Un tip, nunca guardes contraseñas en $_SESSION, todo lo que quieras menos eso.

Seguro que te funciona lo que te he comentado, ya que a mi me funcionó (me partí la cabeza unos cuantos días para hacer lo que te propones).

Saludos!!!
  #3 (permalink)  
Antiguo 31/12/2010, 12:06
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 7 meses
Puntos: 461
Respuesta: Validar si usuario existe en base datos

Pues te explico brevemente, esta bien que hagas las validaciones en el cliente con javascript, pero tambien debes de hacer validaciones en el servidor es decir en PHP ya que ahorita el javascript se desactiva con pocos clicks, ahora vamos a tu consulta, sencillamente antes de hacer el insert a la base de datos haces una consulta preguntando por ese usuario si existe, haces al iguaql que cuando lo registras regresas a la pagina y le pasas un session que indique que el usuario ya existe, sino existe sencillamente lo inserta como lo vienes haciendo, de poder hacer algo siempre digo que se puede el echo es investigar,probar e intentar hacerlo, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #4 (permalink)  
Antiguo 31/12/2010, 12:45
Avatar de andres_aquino  
Fecha de Ingreso: septiembre-2010
Ubicación: $("#place").html("FDW");
Mensajes: 138
Antigüedad: 9 años, 2 meses
Puntos: 24
Información Respuesta: Validar si usuario existe en base datos

Te recomiendo algo sencillo de hacer y sin muchas complicaciones. Al comprobar que el nombre de usuario ingresado existe en la base de datos, utiliza la función header() de la siguiente manera:

Código PHP:
header("Location: registro.php?error=usuarioexistente"); 
Entonces en algún lugar del código de tu script registro.php, preguntas por medio del método GET si has recibido la clave error con el valor usuarioexistente y luego lanza un texto indicando el error que ha surgido. El código sería el siguiente:


Código HTML:
Ver original
  1.     <title>Registro de usuarios</title>
  2. </head>
  3.  
  4. <form method="post" action="registrarse.php">
  5.     ...
  6. </form>
  7.  
  8. <?php if (@$_GET['error'] == "usuarioexistente") : ?>
  9. <div class="error">
  10.     <strong>El usuario ingresado (<?php echo $_SESSION['nombreusuario']; ?>) ya ha sido registrado previamente</strong>
  11. </div>
  12. <?php endif; ?>
  13.  
  14. </body>
  15. </html>

Espero te sirva de ayuda.
Saludos
__________________
Te sirvió mi ayuda? +1 ;D
Andy Aquino - @aquiandres
  #5 (permalink)  
Antiguo 31/12/2010, 17:42
 
Fecha de Ingreso: noviembre-2010
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Validar si usuario existe en base datos

Muchas gracias a todos por su ayuda, me da gusto ver que comparten distintas soluciones para asi poder aprender mas rapidamente php, al final opte por usar la sugerencia de andres_aquino y me funcionó a la perfección , muchas gracias.

Saludos!!
  #6 (permalink)  
Antiguo 31/12/2010, 17:49
Avatar de andres_aquino  
Fecha de Ingreso: septiembre-2010
Ubicación: $("#place").html("FDW");
Mensajes: 138
Antigüedad: 9 años, 2 meses
Puntos: 24
Respuesta: Validar si usuario existe en base datos

Excelente exper, ya sabes que cuando necesites ayuda, aquí en FWD podrás encontrar una buena cantidad de gente que siempre estará disponible para ayudar a los demás!
__________________
Te sirvió mi ayuda? +1 ;D
Andy Aquino - @aquiandres

Etiquetas: existe, 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 05:47.