Duda al comprobar usuario y email
Buenas!! aqui vuelvo a consultar otro de mis trasteos que me estan volviendo loco.
en el registro de usuarios, estoy intentando validar si el usuario/nombre existe ya en la base de datos, y esto lo consegui, pero no se como hacer para que tambien compruebe el email.
Aqui los codigos
en el registro de usuarios, estoy intentando validar si el usuario/nombre existe ya en la base de datos, y esto lo consegui, pero no se como hacer para que tambien compruebe el email.
Aqui los codigos
mysql_select_db($database_conexion, $conexion); $query_datosregistro = sprintf ("SELECT nombre FROM usuarios WHERE nombre=%s", GetSQLValueString($_POST['nombre'], "text")); $datosregistro = mysql_query($query_datosregistro, $conexion) or die(mysql_error()); $row_datosregistrob = mysql_fetch_assoc($datosregistro); $totalRows_datosregistro = mysql_num_rows($datosregistro); if ($totalRows_datosregistro==0){ //AQUI ME HACE LA INSERCION DE DATOS SI EL USUARIO NO EXISTE if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $insertSQL = sprintf("INSERT INTO usuarios (nombre, password, email, rango) VALUES (%s, %s, %s, %s)", GetSQLValueString($_POST['nombre'], "text"), GetSQLValueString(md5($_POST['password']), "text"), GetSQLValueString($_POST['email'], "text"), GetSQLValueString(1, "int")); mysql_select_db($database_conexion, $conexion); $Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error()); $para= $emailadmin; $titulo = 'Nuevo Usuario en' .$nombreweb; $mensaje = 'Hola!' .$_POST['nombre']. 'se acaba de registrar en '.$nombreweb; $cabeceras = 'From: no_contestar@todoroma.info' . "\r\n" . 'Reply-To: no_contestar@todoroma.info' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($para, $titulo, $mensaje, $cabeceras); $insertGoTo = "login.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); } } //AQUI ME MUESTRA EL ERROR COMO QUE ESTA REGISTRADO else { $mostrar = "ERROR! Este Usuario ya esta registrado" ; }Alguien sabe por donde puedo tirar?
Respuesta #1
hola! mas o menos usando lo que ya tienes puedes consultar el otro campo y despues en la condición comprobar los dos, te dejo un ejemplo basandome en lo que tienes:
$validarnombre=0; $validaremail=0; mysql_select_db($database_conexion, $conexion); $query_datosregistro = sprintf ("SELECT nombre FROM usuarios WHERE nombre=%s", GetSQLValueString($_POST['nombre'], "text")); $datosregistro = mysql_query($query_datosregistro, $conexion) or die(mysql_error()); $totalRows_datosregistro = mysql_num_rows($datosregistro); if($totalRows_datosregistro!=0) $validarnombre=1; echo 'Nombre no disponible'; mysql_free_result($datosregistro); mysql_select_db($database_conexion, $conexion); $query_datosregistro2 = sprintf ("SELECT email FROM usuarios WHERE nombre=%s", GetSQLValueString($_POST['email'], "text")); $datosregistro2 = mysql_query($query_datosregistro2, $conexion) or die(mysql_error()); $totalRows_datosregistro2 = mysql_num_rows($datosregistro2); if($totalRows_datosregistro2!=0) $validaremail=1; echo 'Email no disponible'; mysql_free_result($datosregistro2); if($validarnombre==1 && $validaremail==1) { //Insertar usuario en labase de datos }
1
Puntos
Puntos
Por alber hace 102 meses
Administrador
Respuesta #2
Funciona de 10!! pero segun entro al registro, me muesta los mensajes
Email no disponible
Usuario no disponible
Respuesta #3
Vale, probando todo bien, no me hace el registro igualmente, este o no en la base de datos.
y lo dicho, segun entras sigue apareciendo lo de usuario y email no disponible
y lo dicho, segun entras sigue apareciendo lo de usuario y email no disponible
Respuesta #4
al final te vamos a hacer el script completo zapi!! jaja...
<?php $validarnombre=0; $validaremail=0; mysql_select_db($database_conexion, $conexion); $query_datosregistro = sprintf ("SELECT nombre FROM usuarios WHERE nombre=%s", GetSQLValueString($_POST['nombre'], "text")); $datosregistro = mysql_query($query_datosregistro, $conexion) or die(mysql_error()); $totalRows_datosregistro = mysql_num_rows($datosregistro); if($totalRows_datosregistro!=0) $validarnombre=1; mysql_free_result($datosregistro); mysql_select_db($database_conexion, $conexion); $query_datosregistro2 = sprintf ("SELECT email FROM usuarios WHERE email=%s", GetSQLValueString($_POST['email'], "text")); $datosregistro2 = mysql_query($query_datosregistro2, $conexion) or die(mysql_error()); $totalRows_datosregistro2 = mysql_num_rows($datosregistro2); if($totalRows_datosregistro2!=0) $validaremail=1; mysql_free_result($datosregistro2); if($validarnombre==1 && $validaremail==0) { echo 'Nombre no disponible'; } else if($validarnombre==0 && $validaremail==1) { echo 'Email no disponible'; } else if($validarnombre==1 && $validaremail==1) { echo 'Nombre y email no disponible'; } else { //Insertar usuario } ?>con eso deberías de sacarlo ;)
1
Puntos
Puntos
Por alber hace 102 meses
Administrador