Effacer le champ de formulaire après la soumission réussie du formulaire php

Résolu/Fermé
BideAugusta Messages postés 6 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 24 décembre 2021 - Modifié le 9 nov. 2021 à 18:42
BideAugusta Messages postés 6 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 24 décembre 2021 - 10 nov. 2021 à 11:56
Bonsoir. Vous allez bien j'espère.

Besoin d'aide.
J'ai créé un formulaire de contact qui marche bien mais après envoie du message, les champs de formulaire ne se vide pas. Veuillez m'aider en fonction de mon code.

Voici le code :
                               

                            <?php
/*---------------------------------------------------------------*/
/*
                                                                       
*/
/*---------------------------------------------------------------*/?>
     <form name="contact_form" method="post" action="">
    <table width="500">
    <tr>
     <td valign="top">
      <label for="nom">Nom *</label>
     </td>
     <td valign="top">
      <input  type="text" name="nom" maxlength="50" size="30" value="<?php if (
isset($_POST['nom'])) echo htmlspecialchars($_POST['nom']);?>">
     </td>
    </tr>
    <tr>
     <td valign="top">
      <label for="prenom">Prénom *</label>
     </td>
     <td valign="top">
      <input  type="text" name="prenom" maxlength="50" size="30" value="<?php if
 (isset($_POST['prenom'])) echo htmlspecialchars($_POST['prenom']);?>">
     </td>
    </tr>
    <tr>
     <td valign="top">
      <label for="email">Email Addresse *</label>
     </td>
     <td valign="top">
      <input  type="text" name="email" maxlength="80" size="30" value="<?php if 
(isset($_POST['email'])) echo htmlspecialchars($_POST['email']);?>">
     </td>
    </tr>
    <tr>
     <td valign="top">
      <label for="telephone">Téléphone</label>
     </td>
     <td valign="top">
      <input  type="text" name="telephone" maxlength="30" size="30" value="
<?php if (isset($_POST['telephone'])) echo htmlspecialchars($_POST['telephone'])
;?>">
     </td>
    </tr>
    <tr>
     <td valign="top">
      <label for="commentaire">Commentaire *</label>
     </td>
     <td valign="top">
      <textarea  name="commentaire" cols="28" rows="10"><?php if (isset($_POST[
'commentaire'])) echo htmlspecialchars($_POST['commentaire']);?></textarea>
     </td>
    </tr>
    <tr>
     <td colspan="2" style="text-align:center">
      <input type="submit" value=" Envoyer ">
     </td>
    </tr>
    </table>
    </form>

<?php
if(isset($_POST['email'])) {
 
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "contact@goldenbanq.site";
    $email_subject = "Le sujet de votre email";
 
    function died($error) {
        // your error code can go here
        echo 
"Nous sommes désolés, mais des erreurs ont été détectées dans le" .
" formulaire que vous avez envoyé. ";
        echo "Ces erreurs apparaissent ci-dessous.<br /><br />";
        echo $error."<br /><br />";
        echo "Merci de corriger ces erreurs.<br /><br />";
        die();
    }
 
 
    // si la validation des données attendues existe
     if(!isset($_POST['nom']) ||
        !isset($_POST['prenom']) ||
        !isset($_POST['email']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['commentaire'])) {
        died(
'Nous sommes désolés, mais le formulaire que vous avez soumis semble poser' .
' problème.');
    }
 
     
 
    $nom = $_POST['nom']; // required
    $prenom = $_POST['prenom']; // required
    $email = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $commentaire = $_POST['commentaire']; // required
 
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
 
    if(!preg_match($email_exp,$email)) {
      $error_message .= 
'L\'adresse e-mail que vous avez entrée ne semble pas être valide.<br />';
    }
   
      // Prend les caractères alphanumériques + le point et le tiret 6
      $string_exp = "/^[A-Za-z0-9 .'-]+$/";
   
    if(!preg_match($string_exp,$nom)) {
      $error_message .= 
'Le nom que vous avez entré ne semble pas être valide.<br />';
    }
   
    if(!preg_match($string_exp,$prenom)) {
      $error_message .= 
'Le prénom que vous avez entré ne semble pas être valide.<br />';
    }
   
    if(strlen($commentaire) < 2) {
      $error_message .= 
'Le commentaire que vous avez entré ne semble pas être valide.<br />';
    }
   
    if(strlen($error_message) > 0) {
      died($error_message);
    }
 
    $email_message = "Détail.\n\n";
    $email_message .= "Nom: ".$nom."\n";
    $email_message .= "Prenom: ".$prenom."\n";
    $email_message .= "Email: ".$email."\n";
    $email_message .= "Telephone: ".$telephone."\n";
    $email_message .= "Commentaire: ".$commentaire."\n";
 
    // create email headers
    $headers = 'From: '.$email."\r\n".
    'Reply-To: '.$email."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    mail($email_to, $email_subject, $email_message, $headers);
    ?>
     
    <!-- mettez ici votre propre message de succès en html -->
     
    Merci de nous avoir contacter. Nous vous contacterons très bientôt.
     
    <?php

    }

?>
                            


Merci beaucoup d'avance

3 réponses

lugdanum Messages postés 116 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 4 novembre 2024 41
9 nov. 2021 à 18:53
Hello

Je n'ai regardé que le début mais je peux te dire que déjà avec
<?php if (isset($_POST['nom'])) echo htmlspecialchars($_POST['nom']);?>


Tu indiques que si la variable "nom" qui a été POSTée lors de l'envoi du formulaire if (isset($_POST['nom']) et bien présente, l'afficher dans le formulaire echo htmlspecialchars($_POST['nom'])... et idem pour les autres champs.

Du coup comme ça vite fait enlève ça déjà.

<input  type="text" name="nom" maxlength="50" size="30" value="Nom">


@+

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Ma réponse t'a un peu aidé ? Si oui, un petit merci... Merci.
0
BideAugusta Messages postés 6 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 24 décembre 2021
10 nov. 2021 à 11:32
Merci beaucoup beaucoup.

Maintenant ma préoccupation est de savoir comment sécuriser les inputs si j'enlève ce code, où mettre le htmlspécialchars ?

Merci beaucoup d'avance.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
10 nov. 2021 à 11:52
Bonjour,

La fonction htmlspecialchars permet de convertir les caractères spéciaux en entités html lorsqu'on affiche une variable dans un document html (
echo htmlspecialchars($_POST['nom']);
).
Suite à la suppression proposée par lugdanum, puisque la variable n'est plus affichée dans le document html, il n'est donc pas nécessaire d'utiliser htmlspecialchars.
0
BideAugusta Messages postés 6 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 24 décembre 2021
10 nov. 2021 à 11:56
Merci beaucoup mon frère. Merci infiniment.
0