Bonjour,

Novice en développement Web j'apprends petit à petit et j'en suis actuellement à l'apprentissage PHP et MySQL. Je développe un site test pour pratiquer. D'habitude j'arrive à comprendre mes erreurs tout seul mais là, je bloque. Je souhaite tout simplement récupérer des données saisies dans les champs d'un formulaire, pour les enregistrer dans les tables de ma base de donnée. Côté PHPMyAdmin les requêtes aboutissent sans souci. Cependant depuis mon code, j'ai cette erreur :

Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe pr�s de '' � la ligne 1 in C:\wamp64\www\1er_site\contact.php on line 134
Ce qui fait que rien n'arrive dans ma table... J'ai sûrement d'autres petits bugs de second degré mais j'aimerais au moins que ma requête aboutisse et comprendre où est mon erreur. Je m'en remets donc aux expérimentés, si quelqu'un aurait la gentillesse de me dépanner ce serait sympa.

Voici mon code :
contact.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<?php
// Connexion à la bdd
require('connexion_bdd.php');
?>
 
<!DOCTYPE html>
<html lang='fr'>
	<head>
		<meta charset="UTF-8" />
		<link rel="stylesheet" href="style.css" />
        <title> Contact </title>
    </head>    
    <body>
 
        <!--Conteneur principal + header -->
        <div id="bloc_page">
            <?php include('menu.php'); ?>
 
            <!--Formulaire-->
            <section class="contact">
                <form method="post" action="".php>
                    <h4>A quelle date souhaitez-vous réserver ?</h4>
                    <p>
                        <input type="date" name = 'date_resa' id='date_resa' value = "<?php echo $_POST['date_resa']?>"/>
                    </p>
                    <h4>Pour combien de personnes souhaitez-vous réserver ?</h4>  
                    <p>
                        <input type="radio" name="nombre_personne" value="1 à 2"
                        id="1a2"/><label for="1a2">
                            1 à 2 personnes
                        </label><br />
                        <input type="radio" name="nombre_personne" value="3 à 4"
                        id="3a4"/><label for="3a4">
                        3 à 4 personnes
                        </label><br />
                        <input type="radio" name="nombre_personne" value="Plus de 5"
                        id="+de6"/><label for="+de6">
                        Plus de 5 personnes
                        </label><br />
                    </p>
 
                    <fieldset>
                        <legend>Vos coordonnées</legend>
                        <table>
                            <tr>
                                <td>
                                    <label for="nom">Nom</label>
                                </td>
                                <td>
                                    <input type="text" name="nom" id="nom" autofocus required
                                    value = "<?php echo $_POST['nom']?>"/>
                                    <!--autofocus pour charger le curseur directement dans le champs-->
                                    <!--required pour obliger l'utilisateur à compléter le formulaire avant de l'envoyer-->
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <label for="prenom">Prenom</label>    
                                </td>
                                <td>
                                    <input type="text" name="prenom" id="prenom" value = "<?php echo $_POST['prenom']?>" />
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <label for="email">Email</label>
                                </td>
                                <td>
                                    <input type="email" name="email" id="email" value = "<?php echo $_POST['email']?>"/>        
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <label for="telephone">Téléphone</label>
                                </td>
                                <td>
                                    <input type="tel" name="tel" id="tel" value = "<?php echo $_POST['tel']?>" />
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <input  type="submit" value="ENVOYER"/>
                                </td>
                            </tr>
                        </table>
                    </fieldset>
                </form>
            </section>
            <!--Footer-->
            <?php include("footer.php"); ?>
        </div>
    </body>
</html>
 
<!-------------------------------------------P H P------------------------------------------->
 
 
<?php
// Vérification des saisies du formulaire
if
(
    isset($_POST['date_resa']) &&
    isset($_POST['nombre_personne']) &&
    isset($_POST['nom']) &&
    isset($_POST['prenom']) &&
    isset($_POST['email']) &&
    isset($_POST['tel'])
)
{
    // Sécurisation des données
    $date = $_POST['date_resa'];
    $nombre_personne = $_POST['nombre_personne'];
    $nom = addslashes(htmlspecialchars(htmlentities(trim($_POST['nom']))));
    $prenom = addslashes(htmlspecialchars(htmlentities(trim($_POST['prenom']))));
    $email = addslashes(htmlspecialchars(htmlentities(trim($_POST['email']))));
    $tel = addslashes(htmlspecialchars(htmlentities(trim($_POST['tel']))));
 
    // Si tous les champs sont remplis au bon format
    if ($date)
    {
        if ($nombre_personne)
        {
            if ($nom)
            {
                if($prenom)
                {
                    if (preg_match('#^[a-z0-9.-_]+@[a-z0-9.-_]{2,}\.[a-z]{2,4}$#', $email)
                    && (filter_var($email, FILTER_VALIDATE_EMAIL)))
                    {
                        if (preg_match('#^0[1-68]([-. ][0-9]{2}){4}$#', $tel))
                        {
                            // Exécution de la requête pour valider le formulaire
                            $req = $bdd->prepare("INSERT INTO pyculinaire(date_resa, nombre_personne, nom, prenom, email, tel) VALUES(?,?,?,?,?,?");
                            $req->execute(array($date, $nombre_personne, $nom, $prenom, $email, $tel));
                        }
                        else
                        {
                            $message = 'Veuillez rentrer un numéro de téléphone valide';
                        }
                    }
                    else
                    {
                        $message = "Veuillez rentrer une adresse mail au format xxxx@xxx.xx";
                    }
                }    
                else
                {
                    $message = "Veuillez renseigner le champs 'Prénom'";
                }   
            }
            else
            {
                $message = "Veuillez renseigner le champs 'Nom'";
            }
        }
        else
        {
            $message = "Pour combien de personnes souhaitez-vous réserver ?";
        }
    }
    else
    {
        $message = "A quelle date souhaitez-vous réserver ?";
    }
}
 
if(isset($message))
{
    echo '<font color="red">' . $message ;
}
?>
Et voici ma page connexion_bdd.php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
// Connexion à la base de donnée
try
{
    $host = 'localhost';
    $database = 'pysites';
    $pseudo = 'root';
    $password = '';
    $bdd = new PDO('mysql:host='.$host.';dbname='.$database.'', $pseudo, $password);
    $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
catch(PDOException $e)
{
    echo 'La base de donnée n\'est pas disponible pour le moment. <br />';
    echo ''.$e->getMessage().'<br />';
    echo 'Ligne : '.$e->getLine();
}
?>

D'avance merci.