Foros del Web » Programando para Internet » PHP »

problema con validacion

Estas en el tema de problema con validacion en el foro de PHP en Foros del Web. Hola tengo un problema a la hora d validar un nombre y un email, cuando lo guarda por primera vez lo hace corecctamente, pero cuando ...
  #1 (permalink)  
Antiguo 18/09/2008, 14:57
 
Fecha de Ingreso: agosto-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
problema con validacion

Hola tengo un problema a la hora d validar un nombre y un email, cuando lo guarda por primera vez lo hace corecctamente, pero cuando le doy un nombre distinto pero el mismo email, manda un aviso que ese Email ya esta registrado, pero lo Graba dentro de la tabla, cuando no deberia grabarlo...

este es el codigo:

Código PHP:
<? 
session_start
();
$usuario="admin";
$huesped="localhost";
$clave="shield";
$db="gente";

$nombre $_POST['nombre'];
$email $_POST['email'];

//Funcion para conectar al servidor apache y Mysql
$conexion=mysql_connect("$huesped","$usuario","$clave")
or die (
"NO SE PUDO CONECTAR AL SERVIDOR");

//Funcion para seleccionar la BASE DE DATOS
mysql_select_db($db,$conexion)
or die (
"NO SE PUDO SELECCIONAR LA BASE DE DATOS");


$query="SELECT * FROM prospectos WHERE email='$email'";

$existe=mysql_query($query)
or die(
"NO SE PUDO EJECUTAR LA CONSULTA");

if(
mysql_num_rows($existe)>0)
{

echo 
"El usuario ya existe en la BD <br/>";



else {

mysql_free_result($existe);

}

$query="INSERT INTO prospectos (nombre, email) VALUES ('$nombre','$email')";

mysql_select_db($db,$conexion)
or die (
"NO SE PUDO SELECCIONAR LA BASE DE DATOS");

mysql_query($query);

if(
mysql_affected_rows($conexion))
{



//echo "Usuario introducido correctamente";

} else {

echo 
"Error introduciendo el usuario";




}
?>
alguna ayuda o sugerencia??? no quiero k se duplique de nuevo el Email
  #2 (permalink)  
Antiguo 18/09/2008, 15:06
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: problema con validacion

Creo que el error lo tienes aqui:
$query="SELECT * FROM prospectos WHERE email='$email'";
Creo que el codigo correcto seria:
$query="SELECT * FROM prospectos WHERE email!='$email'";
  #3 (permalink)  
Antiguo 18/09/2008, 15:12
 
Fecha de Ingreso: agosto-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: problema con validacion

ya lo probel con el codigo k me diste... y me hace lo mismo... ademas al hacer por primera vez guardar los datos me manda a decir que ese mail ya esta registrado cuando aun no hay nada
  #4 (permalink)  
Antiguo 18/09/2008, 15:15
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: problema con validacion

Que tal phx1981, prueba este código
Código PHP:
<? 
session_start
();
$usuario="admin";
$huesped="localhost";
$clave="shield";
$db="gente";

$nombre $_POST['nombre'];
$email $_POST['email'];

//Funcion para conectar al servidor apache y Mysql
$conexion=mysql_connect("$huesped","$usuario","$clave")
or die (
"NO SE PUDO CONECTAR AL SERVIDOR");

//Funcion para seleccionar la BASE DE DATOS
mysql_select_db($db,$conexion)
or die (
"NO SE PUDO SELECCIONAR LA BASE DE DATOS");


$query="SELECT * FROM prospectos WHERE email='$email'";

$existe=mysql_query($query)
or die(
"NO SE PUDO EJECUTAR LA CONSULTA");

if(
mysql_num_rows($existe)>0)
{

echo 
"El usuario ya existe en la BD <br/>";



else {

mysql_free_result($existe);

$query="INSERT INTO prospectos (nombre, email) VALUES ('$nombre','$email')";

mysql_select_db($db,$conexion)
or die (
"NO SE PUDO SELECCIONAR LA BASE DE DATOS");

mysql_query($query);

if(
mysql_affected_rows($conexion))
{



//echo "Usuario introducido correctamente";

} else {

echo 
"Error introduciendo el usuario";




}
}


?>
Espero que te sirva. Saludos...
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #5 (permalink)  
Antiguo 18/09/2008, 15:21
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: problema con validacion

Prueba esto:

Código PHP:
if(mysql_num_rows($existe)>0


echo 
"El usuario ya existe en la BD <br/>"

}  

else { 

mysql_free_result($existe); 

// Mete la consulta dentro del else
$query="INSERT INTO prospectos (nombre, email) VALUES ('$nombre','$email')"
mysql_select_db($db,$conexion
or die (
"NO SE PUDO SELECCIONAR LA BASE DE DATOS"); 

mysql_query($query); 


saludos
  #6 (permalink)  
Antiguo 18/09/2008, 15:21
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: problema con validacion

Bueno otra cosa, creo que en esta linea
$existe=mysql_query($query) deberia estar asi -> $existe=mysql_query($query, $conexion) ,
Ya que estas usando esa variable que tiene el valor a la llamada de mysql_connect, la cual debes poner en todas las mysql_query como segundo parametro como haces con la consulta Insert mas abajo del script, otra cosa, la consulta de insert tiene que estar dentro del else del condicional puesto arriba

Última edición por Francisco01; 18/09/2008 a las 15:28
  #7 (permalink)  
Antiguo 18/09/2008, 15:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: problema con validacion

Gracias por su ayuda... ya me funciona ahora.... son unos Masters ustedes... apenas estoy empezando en esto del PHP
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 08:52.