Bonjour,
je travail sur un formulaire de réponse pour un mariage. Ce sont des amis qui m’ont demandé, mais ça fait longtemps que je n’ai pas fait de php.
Donc, les invités recoivent leurs invitations par courriel. Ils cliquent sur un lien, qui les invite à mentionner le nombre d’adultes, d’enfants et s’ils participent ou non.
J’ai déjà leur courriel, nom et prénom dans une bdd. Donc, je veux update la bdd avec les nouvelles informations.
Donc je fais une requête UPDATE ou l’id est celle du courriel reçu.
Or, une fois le formulaire envoyé, les informations ne changent pas. Pourtant, je n’ai aucun message d’erreur et mon code redirige la personne sur la page qu’il est censé allé après le traitement de données.
Donc voici mon formulaire:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <div class="couponreponse"> <div class="bodyreponse"> <h1>Coupon réponse</h1> <h2>Nous espérons une réponse avant le XX Janvier 2018.</h2> <h5><?php echo $affiche['prenom']." "; echo $affiche['nom']; ?></h5> <form method="post" action="process.php"> <input type="radio" name="presence" value="o" checked> Oui, je serais présent avec grand plaisir.<br> <input type="radio" name="presence" value="n"> Non, nous ne pouvons malheureusement pas être là.<br> <span class="enfantsadultes"> <span class="enfants">Nombre d'enfants : <input type="text" name="enfants" value=0 maxlength="1"> </span> <span class="adultes">Nombre d'adultes : <input type="text" name="adultes" value=1 maxlength="1"></span> </span> <h5>Quelques mots pour les mariés :</h5> <textarea name="mots"></textarea> <input type="hidden" name="id" value=<?php echo $_GET['id'];?>> <input type="submit" name="sub" value="Répondre" class="sub"> </form> </div> </div> |
voici mon traitement de donnée de process.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | if ($_POST['presence'] == 'o') { // si l'invité confirme sa présence on débute la sécurité de la bdd $message = ''; // on déclaire la variable pour les mots if (isset($_POST['mots'])) { $message = htmlspecialchars(addslashes($_POST['mots'])); // si on ajoute des mots, on change la variable et sécurise la variable. } $req = $bdd->prepare('UPDATE invite SET presence= oui, enfants= :enfants, adultes= :adultes, confimation= oui, message= :mess WHERE id= :idss'); $req->execute(array( 'enfants' => $_POST['enfants'], 'adultes' => $_POST['adultes'], 'mess' => $message, 'idss' => $_POST['id'] )); header('Location: index.php?error=alldone'); } |
et voici ma BDD
Selon moi, le problème vient de la formulation de la requête.... une faute d’orthographe peut-être ?
En passant, je suis au courant que je suis sujet aux injections ! Je ne suis pas encore rendu là ! Merci de votre aide !
Edit Holosmos (staff) : Correction de balise