Partage
  • Partager sur Facebook
  • Partager sur Twitter

Warning: PDOStatement::execute(): SQLSTATE[HY000]:

    22 novembre 2020 à 4:13:08

    Bien le bonjour :D

    Je suis débutant, j'essaie de m'améliorer et pour ce faire j'ai crée un site qui fonctionne assez bien niveau login, mais via l'inscription sa coince, et je ne comprend vraiment pas pourquoi.

    ps: J'accepte la critique si jamais mon code est mal conçu ou travail de cochon ^^

    Et merci d'avance.

    Warning: PDOStatement::execute(): SQLSTATE[HY000]: General error: 1364 Field 'nom' doesn't have a default value in C:\Users\Thomas\Desktop\site perso\tomtombook\pages\inscription.php on line 26


    <?php
    
    global $db;
    
    
    if (isset($_SESSION['membre'])) {
        header("Location:index.php?page=dashboard");
    }
    
    if (isset($_POST['inscription'])) {
        if(empty($_POST['pseudo']) || !preg_match('/[a-zA-Z0-9]+/', $_POST['pseudo'])){
            $errorinscription = 'Votre pseudo doit être une chaine de caractères (alphanumérique) !'; 
    }elseif(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
        $errorinscription = 'Votre pseudo doit être une chaine de caractères (alphanumérique) !'; 
    }elseif(empty($_POST['password1']) || $_POST['password1'] != $_POST['password2']){
        $errorinscription = "Rentrer un mot de passe valide";
    }elseif(empty($_POST['age']) || !preg_match('/^[1-9][0-9]{0,15}$/', $_POST['age'])){
        $errorinscription = 'Veuillez indiqué votre âge';
    }elseif(empty($_POST['nom']) || !preg_match('/[a-zA-Z0-9]+/', $_POST['nom'])){
        $errorinscription = 'Votre nom doit être une chaine de caractères (alphanumérique) !';
    }elseif(empty($_POST['prenom']) || !preg_match('/[a-zA-Z0-9]+/', $_POST['prenom'])){
        $errorinscription = 'Votre prénom doit être une chaine de caractères (alphanumérique) !';
    }
    else{
        $password = password_hash($_POST['password1'], PASSWORD_DEFAULT);
        $requete = $db->prepare('INSERT INTO users(pseudo, email, password, age, nom, prenom)
        VALUES(:pseudo, :email, :password, :age, :nom, :prenom)');
    
        $requete->bindValue(':pseudo', $_POST['pseudo']);
        $requete->bindValue(':email', $_POST['email']);
        $requete->bindValue(':password', $password);
        $requete->bindValue(':age', $_POST['age']);
        $requete->bindValue(':nom', $_POST['nom']);
        $requete->bindValue(':prenom', $_POST['prenom']);
        
    
        $requete->execute();
    
        $errorinscription = 'Vous êtes bien inscris';
    
    }
    
    }
    
    
    ?>

    -
    Edité par ThomasBailleux1 22 novembre 2020 à 16:33:01

    • Partager sur Facebook
    • Partager sur Twitter
      22 novembre 2020 à 8:58:55

      Bonjour, 

      L'erreur dit que ton champ "nom" n'a pas de valeur par défaut et n'accepte pas "null" donc il faut le renseigner à l'insert

      et ton code est illisible, insère le avec le bouton < /> de ce forum plutôt qu'avec une image

      -
      Edité par Aurélien10! 22 novembre 2020 à 8:59:13

      • Partager sur Facebook
      • Partager sur Twitter
        22 novembre 2020 à 11:30:39

        Ou l'autoriser à être NULL (virer la contrainte NOT NULL sur la colonne).

        Ce qui, vu que cette information ne semble pas demandée à l'inscription, me paraît plus adapté (si optionnellement renseigné via édition du profil). Sachant que le même problème va se poser j'imagine pour d'autres colonnes (prenom, age, image, etc)

        -
        Edité par julp 22 novembre 2020 à 11:31:24

        • Partager sur Facebook
        • Partager sur Twitter
          22 novembre 2020 à 14:13:53 - Message modéré pour le motif suivant : La demande de l'équipe de modération a été honorée


          Pas d'aide concernant le code par MP, le forum est là pour ça :)

            22 novembre 2020 à 16:33:16

            Désolé, merci pour votre aide, j'ai réussi :D
            • Partager sur Facebook
            • Partager sur Twitter
              22 novembre 2020 à 18:02:53

              super, tu peux passer le sujet en résolu, merci
              • Partager sur Facebook
              • Partager sur Twitter

              Warning: PDOStatement::execute(): SQLSTATE[HY000]:

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown