Bonjour,

Voila je rencontre un petit problème avec mon code.

Je suis actuellement en train d'apprendre le developpement web. Et je me suis donné pour mission de developper un site en Php
où je peux partagerai mes connaissance en conceptions de systèmes mécanique.

Voici le code :

Le but de ce code est tous simplement récupérer les variables entrée dans le forumaire pour l'envoyer dans la base de donnée.

Ainsi les donné que je dois récuperer sont les suivantes:

La formation =>
$_POST['Formation'] =
Le présnom => $_POST['Prenom']
Le nom => $_POST['Nom']
Le pseudo => $_POST['Pseudo']
Le sexe => $_POST['Sexe']
La date de naissance => $_POST['DateDeNaissance']
L'adresse mail => $_POST['AdresseMail_1']
Le mot de passe => $_POST['MotDePasse_1']
Et un code promotion => $_POST['PromoMwandzani']

Le problème se présente à la ligne de code 97.

     <?php require_once '../Fonctions.php' ?> 

        <?php

      if(!empty($_POST)){

            $errors=array();

                if(empty($_POST['Prenom'])){

                    $errors['Prenom']="Vous n'avez pas saisi votre prénom";

                }

                if(empty($_POST['Nom'])){

                    $errors['Nom']="Vous n'avez pas saisi votre nom";

                }

                if(empty($_POST['Pseudo']) or !preg_match('/^[a-zA-Z0-9_]+$/', $_POST['Pseudo'])){

                    $errors['Pseudo']="Vous n'avez pas saisi votre pseudo";

                }

                if(empty($_POST['DateDeNaissance'])){

                    $errors['DateDeNaissance']="Vous n'avez pas saisi votre date de naissance";

                }

                if(empty($_POST['AdresseMail_1'])){

                    $errors['AdresseMail_1']="Vous n'avez pas saisi votre adresse mail";

                }

                if(empty($_POST['AdresseMail_2']) or !filter_var($_POST['AdresseMail_2'],FILTER_VALIDATE_EMAIL)){

                    $errors['AdresseMail_2']="Vous n'avez pas confirmer votre adresse mail";

                }

                if(empty($_POST['MotDePasse_1']) or $_POST['MotDePasse_1'] != $_POST['MotDePasse_2'])
                {

                    $errors['MotDePasse_1']="Vous n'avez pas saisi votre mot de passe";

                }

              debug ($errors);

                if($_POST['MotDePasse_1'] !== $_POST['MotDePasse_2'])
                {

                    $errors['ConfirmationMp']="Vos 2 mots de passe ne sont pas identique";

                }

                if(empty($_POST['MotDePasse_2'])){

                    $errors['MotDePasse_2']="Vous n'avez pas confirmé votre mot de passe";

                }

                if(empty($_POST['Promo'])){

                    $errors['Promo']="Vous n'avez pas saisie votre mot code Promo ";

                }

           var_dump($errors);

        }

        if (empty($errors)){

        require_once '../db.php';

       $req = $pdo -> prepare("INSERT INTO inscrits SET Formation = ?, Prenom = ?, Nom = ?, Pseudo = ?, Sexe = ?, DateDeNaissance = ?, AdresseMail_1 = ?, MotDePasse_1 = ?, Promo = ?");

        $MotDePasse_1 = password_hash($_POST['MotDePasse_1'], PASSWORD_BCRYPT);

        $req->execute([$_POST['Formation']], [$_POST['Prenom']], [$_POST['Nom']], [$_POST['Pseudo']], [$_POST['Sexe']],[$_POST['DateDeNaissance']], [$_POST['AdresseMail_1']], $MotDePasse_1,[$_POST['Promo']]);

       die("Votre compte à était créé avec succès !");

        }
 ?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Page d'inscription</title>
    </head>
    <body>

        <p>Inscrivez-vous</p>
        <form action="" method="POST">
            <table>
                <tr>
                    <td >
                        A quelle formation vous inscrivez-vous ?
                    </td>
                    <td >
                        <select name="Formation">
                            <option value="mathematiques">Mathématiques</option>
                            <option value="conception_mecanique">Conception de systèmes mécaniques</option>
                        </select>
                    </td>
                </tr>

                <tr>
                    <td>
                        <label for="Prenom">Prénom :</label>
                    </td>
                    <td>
                        <input type="text" name="Prenom" id="Prenom" placeholder="Prénom">
                    </td>
                </tr>
                <tr>
                    <td>
                        <label for="Nom">Nom :</label>
                    </td>
                    <td>
                        <input type="text" name="Nom" id="Nom" placeholder="Nom">
                    </td>
                </tr>
                <tr>
                    <td>
                        <label for="Pseudo">Pseudo :</label>
                    </td>
                    <td>
                        <input type="text" name="Pseudo" id="Pseudo" placeholder="Pseudo">
                    </td>
                </tr>
                <tr>
                    <td>
                        <label for="Sexe">Sexe :</label>
                    </td>
                    <td>
                        Femme<input type="radio" name="Sexe" value="Femme">
                        Homme<input type="radio" name="Sexe" value="Homme">
                    </td>
                </tr>
                <tr>
                    <td>
                        <label for="DateDeNaissance">Date de naissance :</label>
                    </td>
                    <td>
                        <input type="date" name="DateDeNaissance" id="DateDeNaissance">
                    </td>
                </tr>
                <tr>
                    <td>
                        <label for="AdresseMail_1">Adresse mail :</label>
                    </td>
                    <td>
                        <input type="email" name="AdresseMail_1" id="email" placeholder="Contact@contact.com">
                    </td>
                </tr>
                <tr>
                    <td>
                        <label for="AdresseMail_2">Confirmer votre  adresse mail :</label>
                    </td>
                    <td >
                        <input type="email" name="AdresseMail_2" id="AdresseMail_2" placeholder="Contact@contact.com">
                    </td>
                </tr>
                <tr>
                    <td>
                        <label for="MotDePasse_1">Choisisez votre code secret :</label>
                    </td>
                    <td>
                        <input type="password" name="MotDePasse_1" id="MotDePasse_1" placeholder="Votre de code secret">
                    </td>
                </tr>
                <tr>
                    <td>
                        <label for="MotDePasse_1">Confirmer votre code secret :</label>
                    </td>
                    <td >
                        <input type="password" name="MotDePasse_2" id="MotDePasse_2" placeholder="Votre de code secret">
                    </td>
                </tr>

                <tr>
                    <td>

                    </td>
                    <td >

                    </td>
                </tr>
                <tr>
                    <td>
                        <input type="submit" value="Cliquez ici pour nous demander le code Promo" name="DemandeCodePromo"/> 
                    </td>
                </tr>
                <tr>
                    <td>
                        <label for="Promo">Entrez votre code promotionel :</label>
                    </td>
                    <td>
                        <input type="number" name="Promo" id="Promo" placeholder="Votre promo">
                    </td>
                </tr>
            </table>
        <input type="submit" value="M'inscrire" name="ValiderInscription"/>     
        </form>
    </body>
</html>

Pour information je suis novice en developpement et je viens tout juste de commencer.
Et pour ce programme j'ai suivie le tuto
https://www.youtube.com/watch?v=YNbPMm08jcw

Je veux que le execute prenne en compte les 9 entrées et les envoie dans la base données

Décrivez ici ce que vous cherchez à obtenir

Or j'obtiens ce message : Warning: PDOStatement::execute() expects at most 1 parameter, 9 given....

Un grand merci !

Je suis aussi à la recherche d'un passionné qui fera de moi une personne capable de débrouillé tout seul pour le minimum.
J'ai déjà le plan du site et je suis prêt à payer en échange des conseils.
Le but c'est que je fasse le code moi-même et la personne aura juste à jeter un coup d'oeil.

Un grand merci !

3 réponses


Carouge10
Réponse acceptée

Salut,
Tu construit dans ton execute un array pour chaque élément, alors qu'il faut un array pour l'ensemble des éléments

$bdd->execute([$_post['toto'], $_post['tata'], ..... ]);
Warzik
Réponse acceptée

N'hésites pas à mettre ton sujet en résolu si c'est bon :)

Devdeb22
Auteur

Un grand, grand merci Carouge10.

Merci