Bonjour,
j'était entrain de développer une petite inscription pour mon site et une erreur survient lors que j'essaye de m'inscrire. Pas moyen de trouver d'où celà vient.

<?php
//Si le formulaire a ete soumis
    if(isset($_POST['register'])) {
     //Si tous les champs ont ete remplis
        if(not_empty([ 'pseudo', 'email', 'password', 'password_confirm'])){

            $errors = []; //Contiendra toutes les erreurs, si erreur il y a

            extract($_POST);

            //Validation des donnees saisies par l'utilisateur

            if(mb_strlen(addslashes($pseudo)) < 3){
                $errors[] = "Pseudo trop court! (Minimum 3 caractères)";
            }

            if(! filter_var($email, FILTER_VALIDATE_EMAIL)){
                $errors[] = "Adresse email invalide!";
            }

            if(mb_strlen($password) < 6){
                $errors[] = "Mot de passe trop court! (Minimum 6 caractères)";
            } else {
                if($password != $password_confirm){
                    $errors[] = "Les deux mots de passe ne concordent pas!";
                }
            }

            if(is_already_in_use('pseudo', $pseudo, 'users')){
                $errors[] = "Pseudo déjà utilisé!";
            }

            if(is_already_in_use('email', $email, 'users')){
                $errors[] = "Adresse E-mail déjà utilisé!";
            }
            //Si tout est parfait, on enregistre les donnees en BDD
            //tout en envoyant un mail d'activation a l'utilisateur
            if(count($errors) == 0){

                $q = $db->prepare('INSERT INTO users(pseudo, email, password) VALUES(:pseudo, :email, :password, "default")');
                $q->execute([
                    'pseudo' => $pseudo,
                    'email' => $email,
                    'password' => $password
                ]);

                //Nous informons l'utilisateur pour qu'il verifie sa boite de reception afin d'activer son compte
                set_flash("Félicitation! Vous pouvez maintenant vous connecté!", 'success');
                redirect('/');

            } else {
                save_input_data(); //On stocke les inputs de formulaire pour que les champs soient pre-remplis la next fois
            }

        } else {
            $errors[] = "Veuillez remplir tous les champs!";
            save_input_data(); //On stocke les inputs de formulaire pour que les champs soient pre-remplis la next fois
        }

    } else {
        clear_input_data(); //S'il vient d'arriver fraichement sur la page, il n'y a aucune raison que les
        //champs soient pre-remplis.
    }

?>

Merci

2 réponses


arnich
Réponse acceptée

dans ton insert tu attend le pseudo, email, password et a la fin tu as ajouté la chaine "default". supprime la et cela devrait aller mieux

Yubo
Auteur
Réponse acceptée

Effectivemement, merci beaucoup