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 :

Formulaire de contact PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 51
    Points : 50
    Points
    50
    Par défaut Formulaire de contact PHP
    Bonjour à tous,

    Alors voilà le problème :

    Je suis en train de créer un petit formulaire de contact, pendant mes tests il marchait parfaitement, je dispose d'un hébergement web pour tester l'envoi de mail. Dans ma boîte de réception j'avais bien l'email dans mes nouveaux messages reçu à chaque fois que je faisais mes tests.
    Mais pendant que je codais les conditions avec les messages du type "message envoyé" oui "veuillez remplir tout les champs" etc... je me suis rendu compte que l'envoi d'email ne se faisait plus, et maintenant impossible de corriger cela, le formulaire ne marche plus !!!

    (j'ai essayé d'autres scripts de formulaire que j'ai envoyé sur mon hébergeur en ligne ça fonctionne parfaitement, donc ça vient du code à 100%).

    J'aimerais un petit coup de pouce ! Merci d'avance !

    Il y a deux pages dans mon code :

    index.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
     
    <?php
    session_start()
    ?>
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>FORMULAIRE</title>
    </head>
    <body>
     
    <?php 
        if(array_key_exists('errors', $_SESSION)):
            implode($_SESSION);
            echo $_SESSION['errors'];
        endif; 
    ?>
     
    <?php 
        if(array_key_exists('success', $_SESSION)):
            implode($_SESSION);
            echo "Votre message a bien été envoyé";
        endif;
    ?>     
     
        <form action="post_contact.php" method="POST">
            <label id="inputname">Votre nom</label>
            <input type="text" id="inputname" name="name" value=" <?= isset($_SESSION['inputs']['name']) ? $_SESSION['inputs']['name'] : ''; ?> ">
     
            <label id="inputfirstname">Votre prénom</label>
            <input type="text" id="inputfirstname" name="firstname" value=" <?= isset($_SESSION['inputs']['firstname']) ? $_SESSION['inputs']['firstname'] : ''; ?> ">
     
            <label id="inputmail">Votre email</label>
            <input type="text" id="inputmail" name="email" value=" <?= isset($_SESSION['inputs']['email']) ? $_SESSION['inputs']['email'] : ''; ?> ">
     
            <label id="inputname">Votre message</label>
            <textarea id="inputtext" name="message" <?= isset($_SESSION['inputs']['message']) ? $_SESSION['inputs']['message'] : ''; ?>></textarea>
     
            <button type="submit">Envoyer</button>
     
        </form>
    </body>
    </html>
     
    <?php 
    unset($_SESSION['errors']);
    unset($_SESSION['inputs']);
    unset($_SESSION['success']);
     
    ?>
    et la deuxième page post_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
     
    <?php
     
    mail('exemple@gmail.com', 'sujet mail', $message, $headers); //paramètre mail, destinataire, sujet...
    $message = $_POST['message'];
    $headers = 'FROM: exemple@gmail.com';
    $errors = [];
     
     
    if(!array_key_exists('name', $_POST) || $_POST['name'] == '') //verification des données entré par l'utilisateur 
    {
        $errors = "Vous n'avez pas renseigné tout les champs";
    }
     
    if(!array_key_exists('firstname', $_POST) || $_POST['firstname'] == '')
    {
        $errors = "Vous n'avez pas renseigné tout les champs";
    }
     
    if(!array_key_exists('email', $_POST) || $_POST['email'] == '' || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
    {
        $errors = "Vous n'avez pas renseigné un email valide";
    }
     
    if(!array_key_exists('message', $_POST) || $_POST['message'] == '') 
    {
        $errors = "Vous n'avez pas renseigné tout les champs";
    }
     
    session_start();
     
    if(!empty($errors)){ //si variable "errors" vide renvoyer vers la page index.php
     
        $_SESSION ['inputs'] = $_POST;
        header('location: index.php');
        $_SESSION['errors'] = $errors; //stockage erreur utilisateur
        header('location: index.php'); //stockage erreur utilisateur
    }
     
    else {
     
     
        header('Location: index.php');
        $_SESSION['success'] = 1;
    }

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Donc si je comprend bien,

    Vous envoyer le mail, puis vous mettez le message dans la variable, ensuite vous créez les en-tête et pour finir vous vérifier que les champs ne sont pas vide.
    Vous ne pensez pas que vous travaillez à l'envers ?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 51
    Points : 50
    Points
    50
    Par défaut
    Effectivement problème résolu, une étourderie de ma part ! Merci beaucoup en tout cas !

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

Discussions similaires

  1. Formulaire de contact PHP
    Par xerel dans le forum Langage
    Réponses: 2
    Dernier message: 23/07/2010, 16h31
  2. problème formulaire de contact
    Par flo20h44 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 10/09/2009, 00h12
  3. [Forum] Formulaire de contact php
    Par itmak dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 11/05/2008, 19h24
  4. Problème formulaire html et php
    Par makalu65 dans le forum Langage
    Réponses: 2
    Dernier message: 10/05/2008, 15h29
  5. Problème Formulaire + popup + page PHP
    Par nesbla dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/02/2005, 00h10

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