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 l'envoi ne marche pas


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Points : 104
    Points
    104
    Par défaut formulaire l'envoi ne marche pas
    Bonjour,

    Je travaille sur mon site internet que je viens de commencer. J'ai une page contact.html qui est un formulaire où on rentre des champs (nom, prenom, email, tel et le message) J'ai ensuite une page php (form.php) qui doit permettre d'envoyer les éléments du formulaire dans ma boite mail directement.

    J'arrivais à remplir les informations du formulaire et je les recevais bien dans ma boite mail. Seulement depuis que j'ai rajouté les éléments que j'ai trouvé dans un cours sur ce site, plus rien n'arrive dans ma boite mail.
    De même, j'ai essayé de ne pas saisir quelques champs et je n'ai aucun message d'erreur disant de saisir tous les champs

    Quelqu'un peut-il m'aider?
    Je vous joins le code qui pose problème

    Merci d'avance

    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
    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
    <?
    /*si le formulaire est bien envoyé alors on fait les traitements */
    if (isset($POST['envoye']))
    {
     
    	/* Récupération des valeurs des champs du formulaire */
    	if (get_magic_quotes_gpc())
    	{
        	$nom = stripslashes($_POST['nom']); 
    		$prenom = stripslashes($_POST['prenom']); 
        	$email = stripslashes($_POST['email']); 
        	$tel = stripslashes($_POST['tel']); 
        	$message = stripslashes($_POST['message']); 
    	} 
    	else
    	{  
        	$nom = trim($_POST['nom']);
        	$prenom = trim($_POST['prenom']); 
        	$email = trim($_POST['email']); 
        	$tel = trim($_POST['tel']); 
        	$message = trim($_POST['message']); 
    	}
     
     
    	/* Expression régulière permettant de vérifier si le format d'une adresse e-mail est correct */
    		$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
     
    	/* Si le formulaire n'est pas posté de notre site on renvoie vers la page d'accueil */
    		if($_SERVER['HTTP_REFERER'] != 'http://www.charlesvannet.com/form.php')
        {
          header('Location: http://www.charlesvannet.com/');
        }
     
    	/* On vérifie que tous les champs sont remplis */
    		elseif (empty($prenom) 
    			   || empty($nom) 
    			   || empty($email) 
    			   || empty($tel) 
    			   || empty($message))
    		{
    		  $alert = 'Merci de renseigner tous les champs';
    		}
     
    	/* 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, $nom) 
    				|| preg_match($regex_head, $prenom)
    				|| preg_match($regex_head, $tel))
    		{
    			$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 (votre adresse e-mail) */
    		$to = 'charlesvannet@gmail.com';
     
    	/* Construction du message */
    		$msg .= 'Ce mail a été envoyé depuis charlesvannet.com par '.$prenom.' '.$nom."\r\n\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: '.$nom.' <'.$email.'>'."\r\n\r\n";
    		$headers = 'Message : '.$message.' ;
    	 
    	/* Envoi de l'e-mail */
    		if(mail($to, $message, $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);
        	}
    }	
     
    ?>

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,

    Je ne reprendrais pas toute ta page, mais il y a des erreurs que je te signales ICI

    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
     
    // 1 ======= transformes ceci ========
    $to= "".$to." <".$to.">";
    // 2 ======== le deuxiémeparamétre est l'objet ===
    $objet= 'Ce mail a été envoyé depuis charlesvannet.com par '.$nom.'\n\n';
    // === attention je n'ais mis que des \n pas de \r=====
    // 3 ===== Le header ne doit comporter que cela et pad de \n en fin ==
    $headers = 'From: '.$nom.' <'.$email.'>';
     
    // 4 ==== fais attention ta premiére ligne comportait le "." !!
      $msg = 'Ce mail a été envoyé depuis charlesvannet.com par '.$prenom.' '.$nom."\n\n\n\n";
      $msg .= 'Voici le message qui vous est adressé; :'."\n\n";
      $msg .= '***************************'."\n\n";
      $msg .= $message."\n\n";
      $msg .= '***************************'."\n\n";
     
    		if(mail($to, $objet, $msg, $headers))

Discussions similaires

  1. [PHP 5.0] Formulaire de contact qui marche pas
    Par Adweuz dans le forum Langage
    Réponses: 12
    Dernier message: 21/05/2011, 13h48
  2. Formulaire de filtrage ne marche pas
    Par info_sara dans le forum Langage
    Réponses: 10
    Dernier message: 18/06/2008, 17h26
  3. formulaire n'envoi pas le corps du message
    Par alexp dans le forum Langage
    Réponses: 16
    Dernier message: 25/06/2006, 16h51
  4. Formulaire avec du PHP qui ne marche pas !
    Par Sandara dans le forum Langage
    Réponses: 19
    Dernier message: 02/06/2006, 18h26
  5. [XHR]envoie de parametre qui ne marche pas
    Par hansaplast dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/03/2006, 12h13

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