Foros del Web » Programando para Internet » PHP »

Codigo de registro de usuarios

Estas en el tema de Codigo de registro de usuarios en el foro de PHP en Foros del Web. Hola gente, tengo un problemita, el siguiente codigo es el codigo de un formulario para registrar un nuevo usuario.......y cada vez que intento registrar un ...
  #1 (permalink)  
Antiguo 06/11/2004, 14:22
Avatar de ManOPlas  
Fecha de Ingreso: noviembre-2003
Mensajes: 49
Antigüedad: 20 años, 4 meses
Puntos: 0
Codigo de registro de usuarios

Hola gente, tengo un problemita, el siguiente codigo es el codigo de un formulario para registrar un nuevo usuario.......y cada vez que intento registrar un usuario me esta tirando "Lo sentimos, el nombre de usuario que ud. intenta registrar ya existe.", y no tengo ni idea de porque me tira eso si el usuario que intento registrar no existe en la base de datos. Bueno aca esta el codigo, fijense si hay algo que hice mal :S, gracias.

<?php
$admin = "0";
echo " <html>
<head>
<title>Nuevo usuario</title>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>

<body>
<form name=form1 method=post action=?accion=nuevo>
<p>
Nombre de usuario:
<br>
<input type=text name=usuario>
<br>
<br>
Contrase&ntilde;a:
<br>
<input type=password name=password>
<br>
<br>
Correo electronico:<br>
<input type=text name=email>
<br>
<br>
Ocupacion:
<br>
<input type=text name=ocupacion>
<br>
<br>
<input type=checkbox name=boletin value=checkbox checked>
Deseo recibir boletin de OMEP en mi casilla de correo.</p>
<p align=left>
<input type=submit name=Submit value=Aceptar >
</p>
</form>
</body>
</html>" ;
?>
<?php
include ("config.php");
if ($accion == "nuevo"){
$sql = "SELECT * FROM users WHERE usr='$usuario'";
if(mysql_query($sql)){
print "Lo sentimos, el nombre de usuario que ud. intenta registrar ya existe.";
exit;
}else{
if (!ereg("^[^@]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,}$", $email)){
$msg = "Tu correo electrónico no existe o esta mal escrito.";
print "$msg";
exit;
}
if($boletin==true) {
$sql = "INSERT INTO users (usr,pwd,ocu,email,boletin,adm) VALUES ('$usuario','$password','$ocupacion','$email','$em ail','$admin')";
} elseif ($boletin == false) {
$sql = "INSERT INTO users (usr,pwd,ocu,email,adm,boletin) VALUES ('$usuario','$password','$ocupacion','$email','$ad min','')";
}
$resp = mysql_query($sql);
print "El registro fue satisfactorio, ya puedes acceder a tu cuenta $usuario ";
print "<a href=index.php>Ingresar</a>";
}
}
?>


Saludos.
__________________
Salu2 :D
  #2 (permalink)  
Antiguo 06/11/2004, 15:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Te sucede por què haces:

if ($accion == "nuevo"){
$sql = "SELECT * FROM users WHERE usr='$usuario'";
if(mysql_query($sql)){
print "Lo sentimos, el nombre de usuario que ud. intenta registrar ya existe.";
exit;


ahí dices... "si se ejecuta la consulta correctamente .. muestra el mensaje" .. Y de eso no se trata sino de que veas el resultado de esa consulta . no de que si se ejecutó bien o no ...

Debes usar la función:

mysql_num_rows() o bien SQL con su COUNT() ...

Con esa funciòn cuentas el numero de registros que te arrojó tu consulta .. ya sabes que si el resultado es 1 .. ese usuario existe .. y si es cero . .no existe (a su vez no debería existir ninguno repetido .. )

www.php.net/mysql_num_rows

Un saludo,
  #3 (permalink)  
Antiguo 06/11/2004, 18:18
Avatar de ManOPlas  
Fecha de Ingreso: noviembre-2003
Mensajes: 49
Antigüedad: 20 años, 4 meses
Puntos: 0
ahaa muchas gracias ya me andaaa!!!

Saludos
__________________
Salu2 :D
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 00:36.