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 PHP avec envoi d'e-mail


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Formulaire PHP avec envoi d'e-mail
    Bonjour,

    Suite au tutoriel "envoyer un mail en PHP", j'ai réaliser mon formulaire en prenant exemple sur ce tutoriel. Mais lorsque je rempli le formulaire et l'envoi, je ne reçoit pas de mail.

    Donc j'aurais besoin de votre aide pour savoir ce qu'il se passe.

    Voici le code du formulaire
    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
    70
    71
    72
    73
    74
    75
    76
    77
    <form method="post" action="traitement.php"> 
    				<fieldset>    <!-- balise permettant de faire un encadrement du formulaire -->
    					<legend>Formulaire de contact</legend>
    					<br />
    					<input type="hidden" name="sujet" value="Vous avez un nouveau message" />
    					<label for="pseudo" class="label_cote">Votre pseudo * : </label><input type="text" name="pseudo" id="pseudo" size="30" maxlength="15" />
    					<br /><br />
    					<label for="email" class="label_cote">Votre email * : </label><input type="text" name="email" id="email"  />
    					<br /><br /> 
     
    					<label for="objet_mail" class="label_cote">Objet * : </label>
    						<select name="objet" id="objet">
    							<option value="sans" selected="selected" disabled="disabled">Sélectionner un objet</option>
    							<option value="site" <?php 
    													if (!isset($_POST['objet']) || $_POST['objet'] == 'A propos du site')
    													{
    														echo ' selected="selected"';
    													}
    													?>>A propos du site</option>
    							<option value="logiciel" <?php 
    													if (!isset($_POST['objet']) || $_POST['objet'] == 'Proposer un logiciel')
    													{
    														echo ' selected="selected"';
    													}
    													?>>Proposer un logiciel</option>
    							<option value="tutoriel" <?php 
    													if (!isset($_POST['objet']) || $_POST['objet'] == 'Proposer un tutoriel')
    													{
    														echo ' selected="selected"';
    													}
    													?>>Proposer un tutoriel</option>
    							<option value="publicite" <?php 
    													if (!isset($_POST['objet']) || $_POST['objet'] == 'Publicite')
    													{
    														echo ' selected="selected"';
    													}
    													?>>Publicité</option>
    							<option value="partenariat" <?php 
    													if (!isset($_POST['objet']) || $_POST['objet'] == 'Partenariat')
    													{
    														echo ' selected="selected"';
    													}
    													?>>Partenariat</option>
    							<option value="news" <?php 
    													if (!isset($_POST['objet']) || $_POST['objet'] == 'News')
    													{
    														echo ' selected="selected"';
    													}
    													?>>News</option>
    							<option value="suggestion"<?php 
    													if (!isset($_POST['objet']) || $_POST['objet'] == 'Suggestion')
    													{
    														echo ' selected="selected"';
    													}
    													?>>Suggestions</option>
    							<option value="lien_mort" <?php 
    													if (!isset($_POST['objet']) || $_POST['objet'] == 'Lien mort')
    													{
    														echo ' selected="selected"';
    													}
    													?>>Lien mort</option>
    						</select>
    					<br /><br />
    					<label for="sujet_mail" class="label_cote">Sujet * : </label><input type="text" name="sujet_mail" id="sujet_mail" size="30" />
    					<br /><br />
    					<label for="url_site" class="label_cote">URL du site : </label><input type"text" name="url_site" size="30" />
    					<br /><br />
    					<label for="message" class="label_cote">Message * : </label><br />
    					<textarea name="message" id="message" rows="10" cols="48"></textarea>
    					<br /><br />
    					<center><input type="submit" /> <input type="reset" /></center>
    					<br />
    					<p>
    						* Champs obligatoire
    					</p>
    				</fieldset>
    			</form> <!-- fin du formulaire de contact -->

    et voici le code de ma page traitement.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
    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
    <?php
    		/* Si le formulaire est envoyé alors on fait les traitements */
    if (isset($_POST['envoyer']))
    {	
    		/* on recupere les valeurs des champs du formulaire */
    	if (get_magic_quotes_gpc())
    	{  
    		$sujet	 	= stripslashes(trim($_POST['sujet']));
    		$pseudo 	= stripslashes(trim($_POST['pseudo'])); 
    		$email 		= stripslashes(trim($_POST['email'])); 
    		$objet 		= stripslashes(trim($_POST['objet'])); 
    		$sujet_mail	= stripslashes(trim($_POST['sujet_mail']));
    		$url_site 	= stripslashes(trim($_POST['url_site']));
    		$message 	= stripslashes(trim($_POST['message']));
    	} 
    	else
    	{  
    		$sujet	 	= trim($_POST['sujet']);
    		$pseudo		= trim($_POST['pseudo']); 
    		$email 		= trim($_POST['email']); 
    		$objet 		= trim($_POST['objet']); 
    		$sujet_mail	= trim($_POST['sujet_mail']);
    		$url_site 	= trim($_POST['url_site']);
    		$message 	= trim($_POST['message']);
    	}
     
    		 /* on vérifie si le format d'une adresse e-mail est correct */
    	$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
     
    		/* on vérifie qu'aucun en-tête n'est inséré dans nos champs */
        $regex_head = '/[\n\r]/';
     
    		/* Si le formulaire n'est pas posté de notre site on renvoie 
    			* vers la page d'accueil */
        if($_SERVER['HTTP_REFERER'] != 'http://logicielonline.multi-heberg.net/contact.php')
        {
    		header('Location: http://logicielonline.multi-heberg.net/');
        }
     
    		/* On vérifie que tous les champs sont remplis */
        elseif (empty($pseudo) 
               || empty($email) 
               || empty($objet) 
               || empty($sujet_mail)
               || empty($message))
        {
    		$alert = 'Tous les champs doivent être renseignés';
        }
     
    		/* On vérifie que le format de l'e-mail est correct */
        elseif (!preg_match($regex_mail, $email))
        {
    		$alert = 'L\'adresse '.$email.' n\'est pas valide';
        }
    		/* On vérifie qu'il n'y a aucun header dans les champs */
        elseif (preg_match($regex_head, $email) 
                || preg_match($regex_head, $pseudo) 
                || preg_match($regex_head, $sujet_mail)
    			|| preg_match($regex_head, $url_site))
        {
            $alert = 'En-têtes interdites dans les champs du formulaire';
        }
    		/* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
        elseif (!isset($_COOKIE['sent']))
        {
            /* Destinataire */
            $to = 'logicielonline@gmail.com';
     
            /* Construction du message */
            $msg  = 'Bonjour,'."\r\n\r\n";
            $msg .= 'Ce mail a été envoyé depuis Logiciel online par '.$pseudo."\r\n\r\n";
            $msg .= 'E-mail du contact : '.$email."\r\n";
    		$msg .= 'Objet : '.$objet."\r\n";
    		$msg .= 'Sujet du message : '.$sujet_mail."\r\n";
    		$msg .= 'Url du site : '.$url_site."\r\n";
    		$msg .= 'Voici le message qui vous est adressé :'."\r\n";
            $msg .= '***************************'."\r\n";
            $msg .= $message."\r\n";
            $msg .= '***************************'."\r\n";
     
            /* En-têtes de l'e-mail */
            $headers = 'From: '.$pseudo.' <'.$email.'>'."\r\n\r\n";
     
            /* Envoi de l'e-mail */
            if (mail($to, $sujet, $msg, $headers))
            {
                $alert = 'E-mail envoyé avec succès';
     
                /* On créé un cookie de courte durée (ici 120 secondes) pour éviter de 
                * renvoyer un mail en rafraichissant la page */
                setcookie("sent", "1", time() + 120);
     
                /* On détruit la variable $_POST */
                unset($_POST);
            }
            else
            {
                $alert = 'Erreur d\'envoi de l\'e-mail';
            }
     
        }
        /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
        else
        {
            unset($_POST);
        }
    }
    ?>

    Merci d'avance au personne qui me répondront.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Bonjour ,

    Es-tu sur de passer dans la boucle où se fait l'envoi de mail ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    bonjour,

    Je ne comprend pas ce que tu me demande

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    et bien es tu sur que le code d'envoi du mail s'exécute bien ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 58
    Points : 79
    Points
    79
    Par défaut
    Salut,

    J'ai le même problème!
    Tu es chez quel hébergeur ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 58
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par Poggo Voir le message
    Salut,

    J'ai le même problème!
    Tu es chez quel hébergeur ?
    Bon j'ai trouvé mon probleme.
    Je suis chez Ifrance en gratuit pour le moment afin de tester et compiler mon site.

    Et je viens de trouver ça :

    Bonjour,

    L'utilisation abusive de la fonction mail par les spammeurs nous a forcé a
    desactiver la fonction mail sur les serveurs gratuits. L'appel a la fonction ne creera
    pas d'erreur php mais ne produira aucun resultat.

    Pour tous les problemes relatif à IFrance veuillez ne pas confondre le forum officiel
    de Mysql et les services IFrance / IFrancepro. En cas de probleme veuillez nous
    contacter via notre portail.
    Voilà la raison pour ma part

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 58
    Points : 79
    Points
    79
    Par défaut
    Contact ton hébergeur pour vérifier que la fonction mail n'est pas désactivée

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta reponse, et il s'agit bien de la fonction mail de mon hebergeur.

    Donc j'ai changer et du coup tout c'est arrangé.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 58
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par bebop77 Voir le message
    Merci pour ta reponse, et il s'agit bien de la fonction mail de mon hebergeur.

    Donc j'ai changer et du coup tout c'est arrangé.

    tu as changé d'hébergeur ? ou juste activer la fonction ?

    J'aimerais bien régler ce problème mais je pense que la seule solution est de fuire ifrance

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

Discussions similaires

  1. Formulaire avec envoi par e-mail
    Par riboul dans le forum Langage
    Réponses: 1
    Dernier message: 14/06/2010, 17h13
  2. Contrôle d'un formulaire php avec JS
    Par L'aigle de Carthage dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/04/2008, 17h54
  3. Réponses: 4
    Dernier message: 22/02/2008, 13h43
  4. [Upload] formulaire php avec upload de fichier
    Par achos dans le forum Langage
    Réponses: 5
    Dernier message: 15/10/2007, 15h14
  5. [Calendrier] Script Agenda avec envoi d'e-mail pour rappel etc
    Par divinechild dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 26/03/2007, 13h32

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