[TUTORIAL :: SISTEMA DE REGISTRO DE USUARIOS :: PARTE 13]Es posible que el visitante teclee mal la contraseña al registrarse. En ese caso, no podrá logearse, pues creerá haberla escrito bien y al cometer el error no sabrá cuál es la contraseña que puso.
Para evitar eso, suele añadirse un segundo recuadro en el formulario de registro, en el que se vuelve a pedir la contraseña por segunda vez.
Para añadir esta función, por un lado hemos de retocar el formulario del archivo formulario.php para añadir ese otro campo. Y por otro lado, hemos de añadir algunas líneas en el archivo registro.php con las que compararemos si las dos contraseñas son idénticas en ambos recuadros.
El archivo
formulario.php ha de quedar así (aprovechamos la ocasión para añadir las modificaciones que nos propone SurKaiser. Gracias desde aquí!):
<?php
//incluimos configuracion.php con los datos de conexión
include_once('configuracion.php');
//Creamos el formulario de registro
echo '
<form action="registro.php" method="POST" />
Nick: <input type="text" name="nick" size="25" /><br />
Contraseña: <input type="password" name="password" size="40" /><br />
Repite la contraseña: <input type="password" name="password2" size="40" /><br />
E-mail: <input type="text" name="email" size="60" /><br />
<input type="submit" name="submit" value="Registrar" />
</form>
';
// Damos la opción de volver a la página de login si no desea registrarse
echo '<br /><a href="login.php">Login</a>';
?>
Y el archivo
registro.php de este otro modo:
<?php
//incluimos configuracion.php con los datos de conexión
include_once('configuracion.php');
//Comprobamos que la password y password2 son iguales, sino, volvemos a registro.php
if($_POST[password] != $_POST[password2])
{
echo 'Las passwords no son iguales';
}
else if(($_POST[nick] == '') or ($_POST[password] == '') ) //Comprobamos que los campos nick y password no están en blanco
{
Header("Location: formulario.php"); // si están en blanco enviarmos al registro de nuevo
}
else
{
//cuantos usuarios hay ya con ese nick?
$cuantosnicks=mysql_query("SELECT nick FROM ".$tabla." WHERE nick='".$_POST["nick"]."' ");
//cuantos usuarios hay ya con ese email?
$cuantosemails=mysql_query("SELECT email FROM ".$tabla." WHERE email='".$_POST["email"]."' ");
$nickrepetido = mysql_num_rows($cuantosnicks);
$emailrepetido = mysql_num_rows($cuantosemails);
if($nickrepetido >= 1)
{
echo 'El nick propuesto ya estaba registrado. Escoge otro.';
// damos la opcion de registrarse de nuevo
echo '<br /><a href="formulario.php">Quieres intentarlo con otro nick?</a>';
}
else if($emailrepetido >= 1)
{
echo 'El email propuesto ya estaba registrado. Escoge otro.';
// damos la opcion de registrarse de nuevo
echo '<br /><a href="formulario.php">Quieres intentarlo con otro email?</a>';
}
else
{
//introducimos el nuevo registro en la tabla users
mysql_query("INSERT INTO $tabla (nick,password,email) values ('$_POST[nick]','$_POST[password]','$_POST[email]') ");
echo 'Usuario registrado con éxito';
// damos la opcion de logerase
echo '<br /><a href="login.php">Quieres logearte?</a>';
}
mysql_free_result($cuantosnicks); //liberamos memoria
mysql_free_result($cuantosemails); //liberamos memoria
}
?>
Tomando igualmente nota de los comentarios de los compañeros, sustituiremos la línea
include('configuracion.php');
por
include_once('configuracion.php');
en todos los archivos que llevamos hasta el momento.