IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoi de formulaire HTML + PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité de passage
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Octobre 2025
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2025
    Messages : 7
    Par défaut Envoi de formulaire HTML + PHP
    bonjour, j'ai un soucis apparemment de code pour l'envoi de mail : j'ai fait un formulaire, HTML et PHP or quand je fais l'envoi cela ne fonctionne pas j'ai contacter OVH qui m'a renvoyé ici pour une aide. le code d'essai d'envoi de mail fonctionne, mais pas mon formulaire.

    voici le code test qui fonctionne qui montre que l'envoi de mail fonctionne :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $to = 'pison.jessica@gmail.com';  // Ton adresse mail de test
    $subject = 'Test';
    $message = 'Ceci est un test';
    $headers = 'From: <a href="mailto:site.cowboy.rhythm33@cowboyrhythmgironde.com">site.cowboy.rhythm33@cowboyrhythmgironde.com</a>' . "\r\n" .
               'Reply-To: <a href="mailto:site.cowboy.rhythm33@cowboyrhythmgironde.com">site.cowboy.rhythm33@cowboyrhythmgironde.com</a>' . "\r\n" .
               'X-Mailer: PHP/' . phpversion();
     
    if (mail($to, $subject, $message, $headers)) {
        echo 'Mail envoyé avec succès';
    } else {
        echo 'Échec de l\'envoi du mail';
    }
    ?>



    Mon Code HTML : nom du fichier : support.html

    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <meta charset="UTF-8">
      <title>Contact / Support</title>
      <style>
        body {
          font-family: Arial, sans-serif;
          background-color: #fff;
          padding: 40px;
        }
        form {
          max-width: 400px;
          margin: 0 auto;
          display: flex;
          flex-direction: column;
        }
        label {
          margin-bottom: 5px;
          font-weight: bold;
        }
        input[type="text"],
        input[type="email"],
        textarea {
          width: 100%;
          padding: 10px;
          font-size: 1em;
          border: 1px solid #ccc;
          border-radius: 4px;
          margin-bottom: 20px;
          box-sizing: border-box;
        }
        textarea {
          resize: vertical;
          min-height: 120px;
        }
        button {
          padding: 12px;
          font-size: 1em;
          background-color: #007BFF;
          color: white;
          border: none;
          border-radius: 4px;
          cursor: pointer;
        }
        button:hover {
          background-color: #0056b3;
        }
      </style>
    </head>
    <body>
     
      <h1 style="text-align: center;">Formulaire de contact</h1>
     
      <form action="send_mail.php" method="POST">
        <label for="name">Nom :</label>
        <input type="text" id="name" name="name" required>
     
        <label for="email">Email :</label>
        <input type="email" id="email" name="email" required>
     
        <label for="message">Message :</label>
        <textarea id="message" name="message" required></textarea>
     
        <button type="submit">Envoyer</button>
      </form>
     
    </body>
    </html>




    code PHP : nom du fichier : send_mail.php

    Code php : 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
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
     
    if ($_SERVER["REQUEST_METHOD"] === "POST") {
     
        $name    = htmlspecialchars(trim($_POST["name"] ?? ''));
        $email   = filter_var(trim($_POST["email"] ?? ''), FILTER_SANITIZE_EMAIL);
        $message = htmlspecialchars(trim($_POST["message"] ?? ''));
     
        if (empty($name) || empty($email) || empty($message)) {
            echo "Tous les champs sont obligatoires.";
            exit;
        }
     
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            echo "Adresse email invalide.";
            exit;
        }
     
        $to      = "site.cowboy.rhythm33@cowboyrhythmgironde.com";
        $subject = "Nouveau message du formulaire de contact";
        $body    = "Nom : $name\n";
        $body   .= "Email : $email\n\n";
        $body   .= "Message :\n$message\n";
     
        $headers = "From: <a href="mailto:site.cowboy.rhythm33@cowboyrhythmgironde.com">site.cowboy.rhythm33@cowboyrhythmgironde.com</a>\r\n";
        $headers .= "Reply-To: $email\r\n";
        $headers .= "Content-Type: text/plain; charset=utf-8\r\n";
     
        if (mail($to, $subject, $body, $headers)) {
            echo "Merci, votre message a bien été envoyé.";
        } else {
            echo "Une erreur est survenue lors de l'envoi du message.";
        }
     
    } else {
        echo "Accès non autorisé.";
    }
    ?>




    pouvez-vous m'aider ?



    Je vous remercie

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 534
    Par défaut
    Bonjour,

    Ceci $headers = "From: <a href="mailto:site.cowboy.rhythm33@cowboyrhythmgironde.com">site.cowboy.rhythm33@cowboyrhythmgironde.com</a>\r\n"; devrait vous afficher une erreur fatale non? vu que la concaténation est coupée..., il faudrait alors soit utiliser la barre oblique inversée (antislash) soit remplacer les guillemets par des apostrophes.

    $headers = "From: <a href='mailto:site.cowboy.rhythm33@cowboyrhythmgironde.com'>site.cowboy.rhythm33@cowboyrhythmgironde.com</a>\r\n";.

    Vous ne voyez pas d'erreur lors de la soumission ?

  3. #3
    Invité de passage
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Octobre 2025
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2025
    Messages : 7
    Par défaut pas d'erreur
    justement non j'ai pas d'erreur quand je fais l'envoi, quand je clique sur envoyer, le formulaire devient vide et c'est tout

    je vais tester merci

  4. #4
    Invité de passage
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Octobre 2025
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2025
    Messages : 7
    Par défaut
    je viens de faire le changement cela ne change rien

    ça fait toujours la même chose : quand je clique sur envoyer, le formulaire devient vide et c'est tout et je ne reçois pas de mail

  5. #5
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 459
    Par défaut
    Bonjour,

    L'entête From ou Reply-to attend une adresse mail et pas un lien hypertexte, essaye également de renseigner la même adresse pour les 2 entêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $headers = "From: site.cowboy.rhythm33@cowboyrhythmgironde.com\r\n";
    $headers .= "Reply-To: site.cowboy.rhythm33@cowboyrhythmgironde.com\r\n";
    $headers .= "Content-Type: text/plain; charset=utf-8\r\n";
    Lors de l'envoi du formulaire, l'url dans le navigateur change bien en https://tonsite.com/send_mail.php ? Si oui, tu devrais avoir une page blanche ou message d'erreur.
    Quelle est la version de PHP utilisée (phpinfo) ?

  6. #6
    Invité de passage
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Octobre 2025
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2025
    Messages : 7
    Par défaut
    voila le test formulaire
    Nom : formulaire.png
Affichages : 87
Taille : 209,8 Ko

    et quand je clique sur envoyer cela reste sur mon site avec le formulaire vide
    Nom : formulaire2.png
Affichages : 86
Taille : 195,3 Ko

    sur OVH c'est configuré en PHP8.4

    mon fichier PHP est un fichier txt renommer en .php
    Nom : php.png
Affichages : 85
Taille : 2,5 Ko

    cela ne fonctionne toujours pas et j'ai aucun message d'erreur

  7. #7
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 459
    Par défaut
    Le formulaire n'est pas envoyé vers la page send_mail.php
    L'erreur semble venir de la page support.html, peut-être une erreur de syntaxe html qui bloque la soumission.

    Utilise le validateur W3C pour corriger toutes les erreurs html sur ta page : https://validator.w3.org/nu/?doc=htt...2Fsupport.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide formulaire HTML/PHP
    Par ovcrash dans le forum Langage
    Réponses: 3
    Dernier message: 06/06/2011, 01h16
  2. value d'un formulaire HTML/PHP
    Par sbitsch dans le forum Langage
    Réponses: 2
    Dernier message: 13/06/2007, 18h53
  3. [MySQL] Envoi multiple via html/php
    Par jim1 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/05/2007, 09h43
  4. Problème d'envoi de Formulaire HTML par mail (mailto)
    Par flash_begin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/03/2007, 21h02
  5. [MySQL] Filtre via formulaire HTML/PHP dans Base mySQL
    Par Al3x dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/01/2006, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo