Formulaire php

martial81000 Messages postés 1 Date d'inscription samedi 20 janvier 2024 Statut Membre Dernière intervention 20 janvier 2024 - Modifié le 20 janv. 2024 à 20:45
 Martial81000 - 20 janv. 2024 à 22:35

Bonjour; je suis debutant en PHP, et à 61 ans je me lance.

Je voudrais savoir si mon code est bon car je ne peux le tester actuellement.

Merci de votre compréhension à tous.

Cdlt Martial

MON FORM DANS LE HTML

   <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'])) {
 
    // ENTETE DE L'E_MAIL
    $email_to = "***@***";
    $email_subject = "E_mail en provenance de votre site";
 
    function died($error) {
        // AFFICHAGE DES ERREURS
        echo "Désolé, mais des erreurs ont été détectées.<br /><br />";
        echo "Ces erreurs apparaissent ci-dessous.<br /><br />";
        echo $error."<br /><br />";
        echo "Merci de bien vouloir les corriger.<br /><br />";
        die();
    }
 
 
    // SI LES DONNEES ATTENDUES EXISTENT
     if(!isset($_POST['nom']) ||
        !isset($_POST['prenom']) ||
        !isset($_POST['email']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['commentaire'])) {
        died(
'Désolé, votre formulaire semble poser des problèmes!!!<br />';

    }
 
     
 
    $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 valide!!!<br />';
    }
   
      // CARACTERES ALPHANUMERIQUES + 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 valide!!!<br />';
    }
   
    if(!preg_match($string_exp,$prenom)) {
      $error_message .= 
'Le prénom que vous avez entré ne semble pas valide!!!<br />';
    }
   
    if(strlen($commentaire) < 2) {
      $error_message .= 
'Le commentaire que vous avez entré ne semble pas valide!!!<br />';
    }
   
    if(strlen($error_message) > 0) {
      died($error_message);
    }
 

    $email_message  = "<html><body>";
    $email_message .= "<img src="https://13semaines.com/assets/img/logo-5.png" alt="Logo">";
    $email_message .= "<p>Contenu du mail</p>";
    $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";
    $email_message .= "</body></html>

  // CREATION MAIL HEADERS
   $headers = "From: .$email."\r\n";
   <!-- $headers = 'From: texte <'.$email.">\r\n".  (mettre cette ligne si la ligne du dessus ne marche pas) -->
   $headers .= "Reply-To: .$email."\r\n";
   $headers .= "MIME-Version: 1.0\r\n";
   $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
   $headers .= "X-Mailer: PHP/" . phpversion();
    mail($email_to, $email_subject, $email_message, $headers);
    ?>
     
    // MESSAGE AVEC SUCCES
     
    Merci de m'avoir contacté, votre mail m'est bien parvenu: Je vous recontacterai très bientôt!!!.
     
    <?php

    }

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
20 janv. 2024 à 21:20

Bonjour,

Après une rapide lecture je ne vois pas d'anomalie dans ce code.

Toutefois, je te recommande d'appliquer les conseils donnés ici https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

(concernant la récupération "propre" des variables AVANT de les utiliser ainsi que l'ordre du code ( en prenant l'habitude de placer le maximum de code php AVANT le code html )

Reviens nous voir lorsque tu auras modifié ton code, l'avoir testé et si tu rencontres des soucis...

PS: A l'avenir, merci de poster dans le bon forum 'PHP'  et d'utiliser le bouton prévue pour poster du code (icone se trouvant dans la barre de menu lorsque tu rédiges un message)


0
Martial81000
20 janv. 2024 à 22:35

Merci pour ta réponse!!! Je vais essayer d appliquer au mieux tes conseils. ???? et essayer de m améliorer.

0