recientemente he conseguido crear un registro de usuarios (
![sonrisota](http://static.forosdelweb.com/fdwtheme/images/smilies/xD.png)
¿Cómo evito que se cree la cuenta si la contraseña es < 6?
Solo me muestra el error, pero me crea la cuenta.
register.php
![](http://i57.tinypic.com/acuywk.png)
PHPMyAdmin
![](http://i57.tinypic.com/14o6dn9.png)
Os dejo cómo tengo estructurada la(s) páginas.
registro.php (donde está el formulario)
Código HTML:
<form method="POST" action="register.php" accept-charset="utf-8"> <label for="signup_email">Email</label> <input type="email" name="signup_email" value="" id="signup_email" maxlength="50" size="30" required* /> <label for="signup_password">Contraseña (debe contener más de 6 carácteres)</label> <input type="password" name="signup_password" value="" id="signup_password" maxlength="25" size="30"*required /> <label for="signup_confirm_password">Confirmar Contraseña</label> <input type="password" name="confirm_password" value="" id="signup_confirm_password" maxlength="25" size="30" required /> <input type="submit" name="signup_submit" value="Registrarse" class="btn"> </form>
Código PHP:
<body>
<?php
// Carga la configuración
$config = parse_ini_file('config.ini');
// Conexión con los datos del 'config.ini'
$connection = mysqli_connect('localhost',$config['username'],$config['password'],$config['dbname']);
// Si la conexión falla, aparece el error
if($connection === false) {
return mysqli_connect_error();
}
// Leer los datos del formulario
$email = $_POST["signup_email"];
$password = $_POST["signup_password"];
// Realiza la validación de la contraseña
$error_message = "";
if (strlen($password) < 6) {
$error_message = "La contraseña es demasiado corta. Por favor, introduzca al menos 6 caracteres";
}
else if ( $password != $_POST["signup_confirm_password"]) {
$error_message = "Las contraseñas no coinciden. Por favor, inténtelo de nuevo";
};
if ( ! filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error_message = "Por favor, compruebe la dirección de email introducida";
};
// Genera una clave aleatoria
function generate_random_key() {
$chars = "abcdefghijklmnopqrstuvwxyz0123456789";
$new_key = "";
for ($i = 0; $i < 32; $i++) {
$new_key .= $chars[rand(0,35)];
}
return $new_key;
}
$random_key = generate_random_key();
// Inserta los datos en la base
$stm = $connection->prepare("insert into usuarios (email,password,activation_key,validated) " . "values ( ? , ? , ? , 0 )");
$stm->bind_param("sss",$email,$password,$random_key);
if (!$stm->execute()) {
// La inserción puede fallar si el usuario ya existía en la base de datos
$usuario_mal = "Error, el usuario con el email ".$email." ya existe";
} else {
$usuario_ok = "El usuario ha sido creado con el email ".$email;
}
$connection->close();
?>
<hr>
<p><?php echo $error_message ?>
<br>
<p><?php echo $usuario_ok ?></p>
<p><?php echo $usuario_mal ?></p>
</body>
Gracias muchas.