Gestion de la fonction mail
                    
        
     
             
                    vladimir14k
    
        
    
                    Messages postés
            
                
     
             
            41
        
            
                                    Statut
            Membre
                    
                -
                                     
vladimir14k Messages postés 41 Statut Membre -
        vladimir14k Messages postés 41 Statut Membre -
        bonjour a voue qui s, j'aimerais savoir comment je pourrait envoyer un email a tout internaute qui me laisse un message sur le site. voici mon code: je récupéré les trois variables et je les enregistre dans ma BD. ca ne sortait pas en couleur.
                
            
                
    
    
    
         <?php
                  if(isset($_POST['envoyer'])){
                        $nom = htmlspecialchars($_POST['text']);
                        $email = htmlspecialchars($_POST['email']);
                        $message = htmlspecialchars($_POST['message']);
                        if(filter_var($email, FILTER_VALIDATE_EMAIL) !== false){
                                try{
                                    $stmt = new PDO('mysql:host=localhost;dbname=bd_fodoma;charset=utf8','root','bin2hex()');
                                    $stmt->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                                    $requete = $stmt->prepare("INSERT INTO visiteur(nom, email, commentaire) VALUES(:nom, :email, :commentaire)");
                                    
                                    $requete->bindParam(":nom", $nom, PDO::PARAM_STR);
                                    $requete->bindParam(":email", $email, PDO::PARAM_STR);
                                    $requete->bindParam(":commentaire", $message, PDO::PARAM_STR);
                                    
                                    $requete->execute();
                                    echo "<script type='text/javascript'>alert('Message envoyé.');</script>";
                                }catch(PDOException $e){
                                    echo 'Erreur de connexion'.$e->getMessage();
                                    exit();
                                }
                        }else{
                            echo "<script type='text/javascript'>alert('E-mail invalide.');</script>";
                        }
                    }
                ?>            
            
        A voir également:         
- Gestion de la fonction mail
- Fonction si et - Guide
- Windows live mail - Télécharger - Mail
- Publipostage mail - Accueil - Word
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Logiciel gestion photo gratuit - Guide
3 réponses
 <?php
                  if(isset($_POST['envoyer'])){
                        $nom = htmlspecialchars($_POST['text']);
                        $email = htmlspecialchars($_POST['email']);
                        $message = htmlspecialchars($_POST['message']);
                        if(filter_var($email, FILTER_VALIDATE_EMAIL) !== false){
                                try{
                                    $stmt = new PDO('mysql:host=localhost;dbname=bd_fodoma;charset=utf8','root','bin2hex()');
                                    $stmt->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                                    $requete = $stmt->prepare("INSERT INTO visiteur(nom, email, commentaire) VALUES(:nom, :email, :commentaire)");
                                    
                                    $requete->bindParam(":nom", $nom, PDO::PARAM_STR);
                                    $requete->bindParam(":email", $email, PDO::PARAM_STR);
                                    $requete->bindParam(":commentaire", $message, PDO::PARAM_STR);
                                    
                                    $requete->execute();
                                    echo "<script type='text/javascript'>alert('Message envoyé.');</script>";
                                }catch(PDOException $e){
                                    echo 'Erreur de connexion'.$e->getMessage();
                                    exit();
                                }
                        }else{
                            echo "<script type='text/javascript'>alert('E-mail invalide.');</script>";
                        }
                    }
                ?>
                
                
                        
                    Bonjour,
Déjà... la fonction htmlspecialchar ne doit être utilisée que pour de l'affichage et en aucun cas pour stocker les données dans la bdd.
(en BDD on stocke les données "brutes" )
Ensuite, vu que tu fais du PDO, je t'invite à lire et à appliquer ce qui est indiqué ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et de suivre aussi les conseils concernant la rédaction de ton code ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
 
Concernant ta demande (envoi de mail) tu trouveras sans mal de nombreux exemples sur ce forum (et/ou sur internet en général...) sans aucune difficulté.
Soit en utilisant la fonction "mail" du serveur (https://www.commentcamarche.net/faq/117-php-fonction-mail) ... soit en utilisant la class php : phpMailer (https://github.com/PHPMailer/PHPMailer)
Je te demande également de lire ce guide concernant l'écriture du code sur le forum (j'ai édité ton message pour corriger la coloration syntaxique )
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
 
                
                
    
                Déjà... la fonction htmlspecialchar ne doit être utilisée que pour de l'affichage et en aucun cas pour stocker les données dans la bdd.
(en BDD on stocke les données "brutes" )
Ensuite, vu que tu fais du PDO, je t'invite à lire et à appliquer ce qui est indiqué ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et de suivre aussi les conseils concernant la rédaction de ton code ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Concernant ta demande (envoi de mail) tu trouveras sans mal de nombreux exemples sur ce forum (et/ou sur internet en général...) sans aucune difficulté.
Soit en utilisant la fonction "mail" du serveur (https://www.commentcamarche.net/faq/117-php-fonction-mail) ... soit en utilisant la class php : phpMailer (https://github.com/PHPMailer/PHPMailer)
Je te demande également de lire ce guide concernant l'écriture du code sur le forum (j'ai édité ton message pour corriger la coloration syntaxique )
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
                        
                    Merci pour ta reponse mon grand. mais ca ne marche pas toujours. voici ce que je vient de modifier: 
 
    
                <?php
    if(isset($_POST['envoyer'])){
        $nom = htmlspecialchars($_POST['text']);
        $email = htmlspecialchars($_POST['email']);
        $message = htmlspecialchars($_POST['message']);
        if(filter_var($email, FILTER_VALIDATE_EMAIL) !== false){
            try{
                $stmt = new PDO('mysql:host=localhost;dbname=fodomaca_bd_fodoma;charset=utf8','fodomaca_root','F#@b14K_*j8');
                $stmt->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                $requete = $stmt->prepare("INSERT INTO visiteur(nom, email, commentaire) VALUES(:nom, :email, :commentaire)");
                                    
                $requete->bindParam(":nom", $nom, PDO::PARAM_STR);
                $requete->bindParam(":email", $email, PDO::PARAM_STR);
                $requete->bindParam(":commentaire", $message, PDO::PARAM_STR);
                                    
                $requete->execute();
                                    
                $to = $email;
                $subject = 'Accuse de reception';
                $message = 'Bonjour ! nous avons bien recu votre message. Merci!';
                $headers = 'From: contact@fodomacameroun.org' . "\r\n" .
                	 'Reply-To: contact@fodomacameroun.org' . "\r\n" .
                	 'X-Mailer: PHP/' . phpversion();
                                 
                mail($to, $subject, $message, $headers);
                echo "<script type='text/javascript'>alert('Message envoyé.');</script>";
            }catch(PDOException $e){
                echo 'Erreur de connexion'.$e->getMessage();
                exit();
                                }
            }else{
                echo "<script type='text/javascript'>alert('E-mail invalide.');</script>";
            }
        }
?>
                
                