Envoyer un message formulaire de contact

Fermé
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - Modifié par glodybiss le 11/04/2012 à 11:47
 Profil bloqué - 12 avril 2012 à 13:26
Bonjour,

J'ai créé un formulaire de contact pour mon site web et celui-ci est lié à une base des données qui me permet de sauvegarder une copie des messages avant qu'ils me soient parvenu alors tout fonctionne Ok les messages, les données entrées par l'utilisateur sont belle et bien sauvegarder dans ma base des données, mais je ne reçois aucun message dans ma boite dans l'adresse e-mail que j'ai lié à ce formulaire de contact pour me signaler qu'un utilisateur a remplie un formulaire dans ma boite pourtant après avoir rempli le formulaire l'utilisateur reçoit une notification lui signalant que son message a été envoyé.

Pourriez-vous s'il vous plait vérifier mon script de vérification du formulaire et d'envoie du message ?

Merci d'avance et voici mon code

<?php    
include('config.php');  
    define( 'MAIL_TO:', /* >>>>> */'glodybiss@gmail.com'/* <<<<< */ );  //Couriel administrateur    
     define( 'VISIT_NAME', '' ); // valeur par défaut   
  define( 'MAIL_FROM', '' ); // valeur par défaut   
    define( 'MAIL_OBJECT', '' ); // valeur par défaut  
  define( 'MAIL_MESSAGE', '' ); // valeur par défaut    
    define( 'PROVINCE_ABN', '' ); // valeur par défaut   
 define( 'VILLE_VISIT', '' ); // valeur par défaut   

    $mailSent = false; // drapeau qui aiguille l'affichage du formulaire OU du récapitulatif    
    $errors = array(); // tableau des erreurs de saisie    
        
  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 électronique.';    
        }    
        elseif( $from === false ) // si le courriel fourni n'est pas valide    
        {    
            $errors[] = 'Votre adresse email est incorrecte';    
            $from = filter_input( INPUT_POST, 'from', FILTER_SANITIZE_EMAIL );    
        }    

    
   $name= filter_input( INPUT_POST, 'name', FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_HIGH | FILTER_FLAG_ENCODE_LOW );    
        if( $name === NULL OR $name === false OR empty( $name ) OR $name === VISIT_NAME ) // si l'objet fourni est vide, invalide ou égale à la valeur par défaut    
        {    
            $errors[] = 'Vous devez entrer votre Nom';    
        }   
    
     
        $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.';    
        }    


  $province = filter_input( INPUT_POST, 'province', FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_HIGH | FILTER_FLAG_ENCODE_LOW );    
        if( $province  === NULL OR $province === false OR empty( $province ) OR $province === PROVINCE_ABN) // si l'objet fourni est vide, invalide ou égale à la valeur par défaut    
        {    
            $errors[] = 'Vous devez mentioné la  pronvinceoù vous êtes';    
        }  
    
  $ville = filter_input( INPUT_POST, 'ville', FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_HIGH | FILTER_FLAG_ENCODE_LOW );    
        if( $ville  === NULL OR $ville === false OR empty( $ville ) OR $ville === VILLE_VISIT ) // si l'objet fourni est vide, invalide ou égale à la valeur par défaut    
        {    
            $errors[] = 'Vous devez mentioné la ville où vous êtes';    
        }  
     
/*VERIFICATION CHAMP 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 avez laisser le champs message vide';    
        }    
    
         if( count( $errors ) === 0 ) // si il n'y a pas d'erreurs    
        {    
            if( mail( MAIL_TO, $name, $object, $message, "From: $from\nReply-to: $from\n" ) ) // tentative d'envoi du message    
            {        
                $mailSent = true;    
            
    }    
      
   if ($mailSent = true)// insert  
            {    
                 
$sql = 'INSERT INTO 'tbl_contact' ('id', 'name', 'from', 'object', 'province', 'ville', 'message', 'date')  VALUES(NULL, "'.mysql_escape_string($_POST['name']).'","'.mysql_escape_string($_POST['from']).'", "'.mysql_escape_string($_POST['object']).'", "'.mysql_escape_string($_POST['province']).'", "'.mysql_escape_string($_POST['ville']).'", "'.mysql_escape_string($_POST['message']).'", "'.date('Y-m-d h:i:s').'")';   
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());  
            }      
     
  else// échec de l'envoi    
            {    
                $errors[] = 'Votre message n\'a pas été envoyé.';    
      
      
      
            }    
        }    
    }   

   
    else // le formulaire est affiché pour la première fois, avec les valeurs par défaut    
    {    
        $from = MAIL_FROM;    
    $object = MAIL_OBJECT;   
  $name = VISIT_NAME;   
        $message = MAIL_MESSAGE;  
  $province = PROVINCE_ABN;  
  $ville=VILLE_VISIT;  
    }    
?>  




2 réponses

Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
11 avril 2012 à 15:11
Salut glodybiss,

Qu'appelles-tu une notification ?
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
12 avril 2012 à 08:51
Salut ! La notification c'est en fait le message que je dois recevoir après que le visiteur ait envoyé le message (C'est-à-dire qu'après avoir rempli le formulaire). Je comprends que ce n'est pas le terme que je dois vraiment utiliser mais bon je l'appelle seulement comme ça.
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
12 avril 2012 à 10:06
Non mais tu dis que "l'utilisateur reçoit une notification lui signalant que son message a été envoyé" ; qu'est-ce que tu entends par notification ?
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
12 avril 2012 à 12:48
Au fait je veux parler du message qui est renvoyé après avoir envoyé son message, je suis désolé je n'avais pas bien lu.
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
Modifié par jjsteing le 12/04/2012 à 10:30
Bonjour,

remplace :

if( mail( MAIL_TO, $name, $object, $message, "From: $from\nReply-to: $from\n" ) ) // tentative d'envoi du message

par

if( mail( MAIL_TO, $name, $object, $message, "From: $from\nReply-to: $from\nBcc:glodybiss@gmail.com'" ) ) // tentative d'envoi du message


Ainsi, tu recevra sur glodybiss@gmail.com en copy caché l 'email envoyé à l'utilisateur

;)


Pour plus d'info... http://www.jjsteing.com/Webmastering.html

=> Formulaire d'envoi de mail
@++
N'hésitez pas à poser des questions, il vaut mieux être con 5 min que le rester toute sa vie ;)
N'oubliez pas de mettre votre Post en 'Résolu' quand c'est le cas :-D
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
12 avril 2012 à 12:42
Sans succès en ligne mais en local j'ai ce message :
Notice: Undefined variable: MAIL_TO in C:\wamp\www\cybernet\includes\chek_msg.php on line 63

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\cybernet\includes\chek_msg.php on line 63


Est-ce que cela peut être un problème avec mon hébergeur ?
0
Profil bloqué
12 avril 2012 à 13:26
Il faut que tu changes la configuration de ton smtp dans php.ini (un document de configuration de ton serveur). par exemple il se peut qu'il soit écrit le smtp de neuf alors que tu te connectes via bouygues.
0