Partage
  • Partager sur Facebook
  • Partager sur Twitter

Connexion à une base de données

Enregistrer un formulaire dans une base de données

    27 juillet 2017 à 13:50:06

    bonjour a tous. je voulais solliciter votre aide pour un code que j'ai écrit qui a pour but d'enregistrer un formulaire d'inscription dans une base de données. voici le code et cela ne passe pas:  

    <?php
    
        //connexion à la base de données
    try
    {
      $bdd = new PDO("mysql:host=localhost;dbname=Developer", "root", "DonaYao");
    }
      catch (Exception $e)
        {
            die('Erreur de connexion: ' . $e->getMessage());
        }
    
           
        //envoi du formaulaire
    if (isset ($_POST['enregistrer']))
    
    {
    
        $pseudo=htmlspecialchars($_POST['pseudo']);
        $nom=htmlspecialchars($_POST['nom']);
        $prenom=htmlspecialchars($_POST['prenom']);
        $mail=htmlspecialchars($_POST['mail']);
        $code=sha1($_POST['mdp']);
        $rcode=sha1($_POST['mdp2']);
        $sexe=htmlspecialchars($_POST['sex']);
        $tel=htmlspecialchars($_POST['num']);
        $lieunaiss=htmlspecialchars($_POST['lieunaiss']);
        $jour=htmlspecialchars($_POST['jour']);
        $mois=htmlspecialchars($_POST['mois']);
        $annee=htmlspecialchars($_POST['annee']);
        if(isset($_POST['annee']) && isset($_POST['mois']) && isset($_POST['jour'])
        && checkdate($_POST['jour'], $_POST['mois'], $_POST['annee'])) {
         //création de la date
        $date = $_POST['jour'].'/'.$_POST['mois'].'/'.$_POST['annee'];
        }
        //}
        //$lieunaiss=htmlspecialchars($_POST['lieunaiss']);
       
      //vérification du remplissage de tous les champs
        if (!empty($_POST['pseudo']) AND !empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['mail']) AND !empty($_POST['mdp']))
            {
        //taille du pseudo
                if (strlen($pseudo)>=6)
                {
          //pseudo double dans la base de données
                    $req = $bdd -> prepare("SELECT * FROM membres WHERE pseudo = ?");
                    $req -> execute(array($pseudo));
                    $pseudoexist = $req -> rowCount();
                    if($pseudoexist == 0)
                    {
            //validité de l'email
                        if(filter_var($mail, FILTER_VALIDATE_EMAIL))
                        {
              //mail double dans la base de données
                            $req1 = $bdd -> prepare("SELECT * FROM membres WHERE mail = ?");
                            $req1 -> execute(array($mail));
                            $pseudoexist1 = $req1 -> rowCount();
                            if($pseudoexist1 == 0)
                            {
                //taille du mot de passe et égalité
                                if (strlen($code)>=8)
                                {
                                    if ($code == $rcode)
                                    {
                        //Enregistrement du formulaire dans la base de données
                                        $membre = $bdd -> prepare("INSERT INTO membres(pseudo, nom, prenom, mail, mdp, sexe, Dnaissance, Lnaissance, telephone)
                                            VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)");
                                        $membre->execute(array($pseudo, $nom, $prenom, $mail, $code, $sexe, $date, $lieunaiss, $tel ));
                                   
                                        $erreur = "Votre compte a été créer avec succès !";
                                        //header("location: inscription2.php");
                                    }
                                    else
                                    {
                                        $erreur = "Les mots de passe ne sont pas identiques";
                                    }
                                }
                                else
                                {
                                    $erreur = "le mot de passe doit contenir 8 caractères minimum !";
                                }
                            }
                            else
                            {
                                $ereur= "Ce mail existe déja";
                            }
                        }
                        else
                        {
                        $erreur = "Votre adresse email n'est pas valide !";
                        }
    
                    }
                    else
                    {
                        $erreur1 = "Ce pseudo existe déja !";
    
                    }
    
                }
                else
                {
                    $erreur = "pseudo trop court !";
                }
    
            }
            else
            {
                $erreur = "veuillez remplir tous les champs !";
            }
    
       
    }   
     ?>
    
    
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="css/bootstrap.css">
    <link rel="stylesheet" href="css/bootstrap-theme.css">
    <link rel="stylesheet" href="style.css" />
    <script src="js/bootstrap.js"></script>
    
    <title>OPEN DEV</title>
    </head>
    
    <body class="my_background">
    
        <form method="POST" action="">
    
    <div class="container">
    
    <div class="row">
    <div class="col-md-offset-2 col-md-8">
    <h1> Inscription <br/> <small> Merci de renseigner vos informations </small></h1>
    </div>
    </div>
    
    
    <div class="row">
    <div class="col-md-offset-2 col-md-3">
    <div class="form-group">
    <label for="pseudo">Pseudo</label>
    <input type="text" class="form-control" name="pseudo" placeholder="Votre pseudo">
    </div>
    </div>
    <div class="col-md-offset-1 col-md-3">
    <div class="form-group">
    <label for="nom">Nom</label>
    <input type="text" class="form-control" name="nom" placeholder="Votre nom">
    </div>
    </div>
    </div>
    
    <div class="row">
    <div class="col-md-offset-2 col-md-3">
    <div class="form-group">
    <label for="prenom">Prénom(s)</label>
    <input type="text" class="form-control" name="prenom" placeholder="Votre prénom(s)">
    </div>
    </div>
    <div class="col-md-offset-1 col-md-3">
    <div class="form-group">
    <label for="mail">Email</label>
    <input type="text" class="form-control" name="mail" placeholder="Votre adresse mail">
    </div>
    </div>
    </div>
    
    <div class="row">
    <div class="col-md-offset-2 col-md-3">
    <div class="form-group">
    <label for="Password">Mot de passe</label>
    <input type="password" class="form-control" id="password" name="mdp" placeholder="Mot de passe">
    </div>
    </div>
    <div class="col-md-offset-1 col-md-3">
    <div class="form-group">
    <label for="Vpassword">Vérification mot de passe</label>
    <input type="password" class="form-control" id="vpassword" name="mdp2" placeholder="Vérification mot de passe">
    </div>
    </div>
    </div>
    
    <div class="row">
    <div class="col-md-offset-2 col-md-3">
    <div class="form-group">
    <label for="sex">Sexe</label><br>
    <select name="sex">
        <option>Masculin</option>
        <option>Féminin</option>
    </select>
    </div>
    </div>
    <div class="col-md-offset-1 col-md-3">
    <div class="form-group">
    <label for="date_naissance">Date de naissance : </label><br/>
      <select name="jour">
      <option value="0"><?php
          for ($i = 1; $i <= 31; $i++)
          {
            echo '<option value="' . $i . '">' . $i . '</option>';
          }
        ?></option>
       
    </select>
     
     <select name="mois" size="1">
    <option value="01">Janvier</option><option value="02">Février</option><option value="03">Mars</option><option value="04">Avril</option><option value="05">Mai</option><option value="06">Juin</option><option value="07">Juillet</option><option value="08">Août</option><option value="09">Septembre</option><option value="10">Octobre</option><option value="11">Novembre</option><option value="12">Décembre</option></select>
     
    <select name="annee">
      <option value="0"><?php
          for ($i = 2007; $i >= 1960; $i--)
          {
            echo '<option value="' . $i . '">' . $i . '</option>';
          }
        ?></option>
       
    </select>
    </div>
    </div>
    </div>
    
    <div class="row">
    <div class="col-md-offset-2 col-md-3">
    <div class="form-group">
    <label for="lieunaiss">Lieu de naissance</label><br>
    <select name="lieunaiss">
        <option>Abidjan</option>
        <option>Yamoussoukro</option>
        <option>Bouaké</option>
        <option>Toumodi</option>
        <option>Gagnoa</option>
        <option>Daloa</option>
        <option>Bouaflé</option>
        <option>Ouragahio</option>
        <option>Guibéroua</option>
        <option>Sinfra</option>
        <option>Soubré</option>
        <option>Tiassalé</option>
        <option>Boundiali</option>
    </select>
    </div>
    </div>
    
    <div class="col-md-offset-1 col-md-3">
    <div class="form-group">
    <label for="num">Numéro</label>
    <input type="text" class="form-control" name="num" placeholder="Votre numéro">
    </div>
    </div>
    
    
    </form>
    
    <br/>
    <div class="row">
    <div class="col-md-offset-5 col-md-1">
    <input type="submit" class="btn btn-primary" name="enregistrer" value="Enregistrer"></input>
    </div>
    </div>
           
            <?php
    
                if (isset($erreur)) {
                    echo "<font color='red'>" . $erreur . "</font>";
                }
    
             ?>
           
    </div>
    </body>
    </html>


    pouvez vous me donner un coup de main??

    • Partager sur Facebook
    • Partager sur Twitter
    Developer in change
      27 juillet 2017 à 13:55:38

      Salut,

      1) pas d'activation des exceptions PDO => pas d'erreur, => tout va bien (voir ma signature)

      Active les exception + relance + trouve l'erreur affichée.

      2) htmlspecialchars se fait à l'affichage, => n'a rien à faire là où il est appelé

      3) pas besoin de variables intermédiaires (sauf pour la date et encore tu peux concaténer à la volée)

      ++

      • Partager sur Facebook
      • Partager sur Twitter

      Connexion à une base de données

      × 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