Foros del Web » Programando para Internet » PHP »

repetir campo!

Estas en el tema de repetir campo! en el foro de PHP en Foros del Web. Hola a todos ! Pues tengo un problema espero puedan ayudarme. Pues resulta que estoy haciendo un sistenmita para regitro de usuarios, en el cual ...
  #1 (permalink)  
Antiguo 19/02/2006, 14:02
Avatar de _mag_  
Fecha de Ingreso: febrero-2006
Ubicación: Mexico :)
Mensajes: 8
Antigüedad: 11 años, 9 meses
Puntos: 0
Sonrisa repetir campo!

Hola a todos !
Pues tengo un problema espero puedan ayudarme.
Pues resulta que estoy haciendo un sistenmita para regitro de usuarios, en el cual el nombre de usuario pues seria el correo electronico ingresado...
El problema radica en lo sig:

Que pasaria si otro usuario llega y pone el mismo correo que otro usuario ya lo hizo, obiamente sabemos que nunca va haber 2 correos =les, pero por si un correo se parece a otro y un usuario se equiboca, entonces habria 2 mismos usuarios talvez = pero tambien diferentes, por que pues serian diferentes los nombres, el problema aqui serian lo usuarios "emails =les".

Como podria hacer para que se verifique si un usuario es = a otro antes de ingresarlo a la base de datos ?
De antemano muchas gracias chikos.
  #2 (permalink)  
Antiguo 19/02/2006, 14:58
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 12 años, 3 meses
Puntos: 2
Antes de ingresar un nuevo nombre de usuario (su email en este caso) siempre debes verificar que ese email ya no exista en la base de datos. Eso lo puedes hacer así:

Código PHP:
<?php
$consulta
=mysql_query("SELECT email FROM usuarios WHERE email='$email_a_ingresar'");
$registro=mysql_fetch_row($consulta);
if(
$registro) { echo "Ese mail ya existe"; }
else
/* Sigues con el proceso de ingreso del nuevo usuario */ }
?>
Suponiendo que $email_a_ingresar tiene el email a comprobar, que la tabla se llama "usuarios" y que el campo donde estan los emails es "email".

Este código deberías ponerlo donde procesas los datos que vienen del formulario de registro, asi te aseguras que no se dejarán pasar registros cuyo email ya exista en la base de datos.

Saludos.
__________________
R4DS en español | R4DS en inglés
  #3 (permalink)  
Antiguo 19/02/2006, 15:07
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 12 años, 7 meses
Puntos: 1
Hola _mag_,

Puedes comprobar si el email ya esta en la base de datos, si existe lanzas un error y terminas el script.

Código PHP:

//comprobar si existe el email que despues
// junto con el password sera necesario para entrar a las paginas protegidas

//recibimos los datos de tu formulario ,suponiendo que el nombre del formulario
// es "email" y que el metodo es post.
$email=$_POST['emal'];

//AQUI conectas a la base de datos 

// hacemos una consulta a la tabla "usuarios" pasandole como condicion que
//busque el email que ha ingresado en el formulario.
$result mysql_query("select * from usuarios where email='$email'");

//comprobamos que la peticion se ha ejecutado
  
if (!$result ){ exit ("No se pudo ejecutar la petición");}

//aqui comprobamos el numero de filas que devulve la peticion anterior, si 
//es mayor de 0 es que SI EXISTE un email en la base de datos y lanzamos un error.
if (mysql_num_rows($result)>){exit ("El email escogido ya existe.");} 
__________________
Ciao y suerte.
  #4 (permalink)  
Antiguo 19/02/2006, 16:09
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
interesante a mi tambien me viene bien para evitar duplicidades. cual de los dos sistemas es mas recomendable. por que ambos son igual de funcionales.

saludos
  #5 (permalink)  
Antiguo 19/02/2006, 17:04
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 12 años, 3 meses
Puntos: 2
Si existe alguna diferencia en tiempo entre ellos es totalmente despreciable.
En el que puse yo se ejecuta la consulta y luego se extrae la 1º fila de la matriz de datos devuelta. Si esa fila tiene datos, significa que ya hay un usuario con ese mail.

En el de Pleniluni0 se ejecuta la consulta y luego se verifica cuantos registros devolvió la misma. Si es mayor que cero (osea 1, ya que mas de 1 es imposible) es porque ese usuario existe.

Puedes usar el que mas te guste o el q mas se adapte a lo que necesites mostrar por pantalla.

Saludos.
__________________
R4DS en español | R4DS en inglés
  #6 (permalink)  
Antiguo 19/02/2006, 17:13
Avatar de _mag_  
Fecha de Ingreso: febrero-2006
Ubicación: Mexico :)
Mensajes: 8
Antigüedad: 11 años, 9 meses
Puntos: 0
Muchas gracias a todos, y asulucione con su ayuda mi problema "preocupacion"...
Continuo entonces :)
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 11:44.