Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

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
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?
1
Puntos
665
Visitas
5
Resp
Por zapikero hace 30 meses
Avanzado Sitio web

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
Por alber hace 30 meses
Administrador

Respuesta #2

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
Por alber hace 30 meses
Administrador

Respuesta #3

Perfecto! solucionado!! como siempre salio al rescate mi amigo alber!!
1
Puntos
Por zapikero hace 30 meses
Avanzado Sitio web

Respuesta #4

Funciona de 10!! pero segun entro al registro, me muesta los mensajes
Email no disponible 
Usuario no disponible
0
Puntos
Por zapikero hace 30 meses
Avanzado Sitio web

Respuesta #5

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
0
Puntos
Por zapikero hace 30 meses
Avanzado Sitio web

Relaccionados

Para comentar Inicia sesión o Registrate