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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Formulaire mail avec BDD


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 411
    Points : 117
    Points
    117
    Par défaut Formulaire mail avec BDD
    Bonjour à tous,

    voila j'ai un script d'envoi de mail qui ma foie fonctionne pas trop mal.
    Cependant plutot que d'avoir q'un destinataire, j'aimerai q'uil envoi a toutes les adresses mail de ma base de données

    Ma BDD se nomme users et les mails sont dans la colonne E-mail

    j'essai depuis un certain temps mais cela reste infructeux

    pourriez vous m'aider

    Merci

    mon script

    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
    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
    124
    125
    126
    127
    128
    129
    130
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Envoi de mails</title>
    </head>
    <?php
     
     
    $destinataire = 'mon.mail@chezmoi.fr';
     
     
    $copie = 'oui';
     
     
    $form_action = '';
     
    $message_envoye = "Votre message nous est bien parvenu !";
    $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
     
    $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
     
     
    function Rec($text)
    {
        $text = htmlspecialchars(trim($text), ENT_QUOTES);
        if (1 === get_magic_quotes_gpc())
        {
            $text = stripslashes($text);
        }
     
        $text = nl2br($text);
        return $text;
    };
     
     
     
    function IsEmail($email)
    {
        $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
        return (($value === 0) || ($value === false)) ? false : true;
    }
     
    $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
    $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
    $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
    $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
     
    $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
    $err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
     
    if (isset($_POST['envoi']))
    {
        if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
        {
            // les 4 variables sont remplies, on génère puis envoie le mail
            $headers  = 'From:'.$nom.' <'.$email.'>' . "\r\n";
            //$headers .= 'Reply-To: '.$email. "\r\n" ;
            //$headers .= 'X-Mailer:PHP/'.phpversion();
     
            // envoyer une copie au visiteur ?
            if ($copie == 'oui')
            {
                $cible = $destinataire.';'.$email;
            }
            else
            {
                $cible = $destinataire;
            };
     
            // Remplacement de certains caractères spéciaux
            $message = str_replace("'","'",$message);
            $message = str_replace("’","'",$message);
            $message = str_replace("&quot;",'"',$message);
            $message = str_replace('&lt;br&gt;','',$message);
            $message = str_replace('&lt;br /&gt;','',$message);
            $message = str_replace("&lt;","&lt;",$message);
            $message = str_replace("&gt;","&gt;",$message);
            $message = str_replace("&amp;","&",$message);
     
            // Envoi du mail
            $num_emails = 0;
            $tmp = explode(';', $cible);
            foreach($tmp as $email_destinataire)
            {
                if (mail($email_destinataire, $objet, $message, $headers))
                    $num_emails++;
            }
     
            if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
            {
                echo '<p>'.$message_envoye.'</p>';
            }
            else
            {
                echo '<p>'.$message_non_envoye.'</p>';
            };
        }
        else
        {
            // une des 3 variables (ou plus) est vide ...
            echo '<p>'.$message_formulaire_invalide.'</p>';
            $err_formulaire = true;
        };
    }; // fin du if (!isset($_POST['envoi']))
     
    if (($err_formulaire) || (!isset($_POST['envoi'])))
    {
        // afficher le formulaire
        echo '
        <form id="contact" method="post" action="'.$form_action.'">
        <fieldset><legend>Vos coordonnées</legend>
            <p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" /></p>
            <p><label for="email">Email :</label><input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" /></p>
        </fieldset>
     
        <fieldset><legend>Votre message :</legend>
            <p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" /></p>
            <p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea></p>
        </fieldset>
     
        <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>
        </form>';
    };
    ?>
    <body>
    </body>
    </html>

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

    get_magic_quotes_gpc(), function IsEmail($email) *, mail() **,...

    Ton code date du Jurassique...
    Tu n'as pas trouvé plus récent ?

    * Voir Validation filter_var()
    ** Pour l'envoi, utilise plutôt phpMailer.

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/03/2016, 13h32
  2. Réponses: 4
    Dernier message: 12/06/2014, 15h26
  3. [MySQL] Formulaire mail avec PJ
    Par stevenP dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/06/2012, 13h12
  4. Sous-catégorie dans formulaire liste avec BDD
    Par sebb17 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 15/04/2011, 00h18
  5. prob formulaire mail avec liste deroulante
    Par oukok dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2007, 13h20

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