Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/07/2011, 22h21   #1
Invité de passage
 
Inscription : octobre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 4
Points : 1
Points : 1
Par défaut Formulaire de contact

Bonjour à tous,

j'ai un formulaire de contact en PHP, mais celui-ci me signale qu'il envois bien le mail, mais je ne le reçois pas. J'ai déjà fait plusieurs vérifications, mais rien à faire je ne trouve pas....

Pouvez-vous m'aider ? Ca serais sympas...

Voici le code :

Code :
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
    define( 'MAIL_TO'           ,"monadresse@mail.be"   );  //ajouter votre courriel
    define( 'MAIL_NOM'          ,'Votre Nom'                ); // valeur par défaut
    define( 'MAIL_PRENOM'       ,'Votre Pr&eacute;nom'      ); // valeur par défaut
    define( 'MAIL_FROM'         ,'Votre E-mail'             ); // valeur par défaut
    define( 'MAIL_OBJECT'       ,'Objet du message'         ); // valeur par défaut
    define( 'MAIL_MESSAGE'      ,'Votre message'            ); // valeur par défaut
 
    $mailSent = false; // drapeau qui aiguille l'affichage du formulaire OU du récapitulatif
    $errors = array(); // tableau des erreurs de saisie
    $mailto = MAIL_TO;
 
    if( filter_has_var( INPUT_POST, 'send' ) ) // le formulaire a été soumis avec le bouton [Envoyer]
    {
        $from = filter_input( INPUT_POST, 'from', FILTER_VALIDATE_EMAIL );
        if( $from === NULL || $from === MAIL_FROM ) // si le courriel fourni est vide OU égale à la valeur par défaut
        {
            $errors[] = 'Vous devez renseigner votre adresse de courrier &eacute;lectronique.';
        }
        elseif( $from === false ) // si le courriel fourni n'est pas valide
        {
            $errors[] = 'L\'adresse de courrier &eacute;lectronique n\'est pas valide.';
            $from = filter_input( INPUT_POST, 'from', FILTER_SANITIZE_EMAIL );
        }
 
        $object = filter_input( INPUT_POST, 'object', FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_HIGH | FILTER_FLAG_ENCODE_LOW );
        if( $object === NULL OR $object === false OR empty( $object ) OR $object === MAIL_OBJECT ) // si l'objet fourni est vide, invalide ou égale à la valeur par défaut
        {
            $errors[] = 'Vous devez renseigner l\'objet.';
        }
 
        /*     pas besoin de nettoyer le message. 
        /    http://www.phpsecure.info/v2/article/MailHeadersInject.php
        /    Logiquement, les parties message, To: et Subject: pourraient servir aussi à injecter quelque chose,     mais la fonction mail()
        /    filtre bien les deux dernières, et la première est le message, et à partir du moment où on a sauté une ligne dans l'envoi du mail,
        /    c'est considéré comme du texte; le message ne saurait donc rester qu'un message.*/
        $message = filter_input( INPUT_POST, 'message', FILTER_UNSAFE_RAW );
        if( $message === NULL OR $message === false OR empty( $message ) OR $message === MAIL_MESSAGE ) // si le message fourni est vide ou égale à la valeur par défaut
        {
            $errors[] = 'Vous devez &eacute;crire un message.';
        }
 
        if( count( $errors ) === 0 ) // si il n'y a pas d'erreurs
        {
            if( mail( MAIL_TO, $object, $message) ) // tentative d'envoi du message
            {
                $mailSent = true;
            }
            else // échec de l'envoi
            {
                $errors[] = 'Votre message n\'a pas &eacute;t&eacute; envoy&eacute;.';
            }
        }
    }
    else // le formulaire est affiché pour la première fois, avec les valeurs par défaut
    {
        $nom        = MAIL_NOM;
        $prenom     = MAIL_PRENOM;
        $from       = MAIL_FROM;
        $object     = MAIL_OBJECT;
        $message    = MAIL_MESSAGE;
    }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
        <meta http-equiv="content-language" content="fr" />
    </head>
    <body>
 
<?php
    if( $mailSent === true ) // si le message a bien été envoyé, on affiche le récapitulatif
    {
?>
        <p id="success">Votre message a bien &eacute;t&eacute; envoy&eacute;.</p>
<?php
    }
    else // le formulaire est affiché pour la première fois ou le formulaire a été soumis mais contenait des erreurs
    {
        if( count( $errors ) !== 0 )
        {
            echo( "\t\t<ul>\n" );
            foreach( $errors as $error )
            {
                echo( "\t\t\t<li>$error</li>\n" );
            }
            echo( "\t\t</ul>\n" );
        }
        /*else
        {
            echo( "\t\t<p id=\"welcome\"><em>Tous les champs sont obligatoires</em></p>\n" );
        }*/
?>
        <form id='contact' method="post" action="<?php echo( $_SERVER['REQUEST_URI'] ); ?>">
            <p>
                <label for="from">Nom</label>
                <input type="text" name="from" id="from" value="<?php echo( $nom ); ?>" /><br />
 
                <label for="from">Pr&eacute;nom</label>
                <input type="text" name="from" id="from" value="<?php echo( $prenom ); ?>" /><br />
 
 
                <label for="from">E-mail*</label>
                <input type="text" name="from" id="from" value="<?php echo( $from ); ?>" /><br />
 
                <label for="object">Objet*</label>
                <input type="text" name="object" id="object" value="<?php echo( $object ); ?>" /><br />
 
                <label for="message">Message*</label>
                <textarea name="message" id="message" rows="20" cols="80"><?php echo( $message ); ?></textarea>
            </p>
            <em>Les champs marqu&eacute; d'une * sont obligatoires</em>
            <p>
                <input class="boutton" type="reset" name="reset" value="Effacer" />
                <input class="boutton" type="submit" name="send" value="Envoyer" />
            </p>
        </form>
<?php
    }
?>
    </body>
</html>
Ah j'allais oublier, mon serveur est un serveur Gandi. Et le service mail est bien activé.

Merci d'avance à tous,

Mat
Cortex1712 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 22h32   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
t'as regardé dans tes courriers indésirables ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 06h43   #3
Invité de passage
 
Inscription : octobre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 4
Points : 1
Points : 1
Citation:
Envoyé par stealth35 Voir le message
t'as regardé dans tes courriers indésirables ?
Oui j'ai déjà fait ça. Mais rien dedans... Je comprend pas, tout ma l'air correct.
Cortex1712 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 13h33   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Bonsoir

Citation:
<label for="from">Nom</label>
<input type="text" name="from" id="from" value="<?php echo( $nom ); ?>" /><br />

<label for="from">Pr&eacute;nom</label>
<input type="text" name="from" id="from" value="<?php echo( $prenom ); ?>" /><br />


<label for="from">E-mail*</label>
<input type="text" name="from" id="from" value="<?php echo( $from ); ?>" /><br />
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/07/2011, 09h09   #5
Invité de passage
 
Inscription : octobre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 4
Points : 1
Points : 1
Citation:
Envoyé par andry.aime Voir le message
Bonsoir


Salut oui j'ai vu après l'avoir posté. Mais j'ai corrigé et ça ne change rien....

Personne ne vois d'ou ça peut venir ? Grrrrrr ça m'énerve.
Cortex1712 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2011, 11h56   #6
Invité de passage
 
Inscription : octobre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 4
Points : 1
Points : 1
J'ai trouvé !!!!!!!!!!

En fait c'est une bêtise. Et j'aurais dû tester ça avant de poster mon message.
Je n'avais pas essayé en envoyant sur une autre adresse mail. Ce que j'ai fait aujourd'hui. Et ça fonctionne...

Donc je vais devoir demande à Gandi pourquoi je ne reçois pas les messages qui proviennent de mon formulaire. (Et j'ai bien été voir dans les Spam ou indésirables)

Un grand merci à tous et désolé pour le dérangement...
Cortex1712 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h05.


 
 
 
 
Partenaires

Hébergement Web