PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 26-03-2010 22:25:51

pascalld
Membre
Inscription : 26-03-2010
Messages : 1

Mettre l'adresse mail du destinataire en bcc dans le formulaire

Vous trouverez ci-dessous ma page complète. Mon souhait est de pouvoir cacher au destinataire de la copie qunad il reçoit le mail l'adresse mail du destinataire, mais je n'ai pas réussi avec le bcc. Si quelqu'un veut bien m'aider ! Merci.

<!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>Formulaire de contact</title>
<style type="text/css">
<!--
body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 16px;
    color: #FF9900;
}
body {
    background-color: #000099;
}
-->
</style></head>
<?php
    /*
        ********************************************************************************************
        CONFIGURATION
        ********************************************************************************************
    */
    // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
    $destinataire='plus@lorientplus.com';

    // copie ? (envoie une copie au visiteur)
    $copie = 'oui';

    // Action du formulaire (si votre page a des paramètres dans l'URL)
    // si cette page est index.php?page=contact alors mettez index.php?page=contact
    // sinon, laissez vide
    $form_action = '';

    // Messages de confirmation du mail
    $message_envoye = "Merci pour votre message. Il a bien été envoyé. Vous en avez reçu un double dans la boîte mail indiquée. Une réponse vous parviendra prochainement. Merci.";
    $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

    // Message d'erreur du formulaire
    $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email est sans erreur.";

    /*
        ********************************************************************************************
        FIN DE LA CONFIGURATION
        ********************************************************************************************
    */

    /*
     * cette fonction sert à nettoyer et enregistrer un texte
     */
    function Rec($text)
    {
        $text = trim($text); // delete white spaces after & before text
        if (1 === get_magic_quotes_gpc())
        {
            $stripslashes = create_function('$txt', 'return stripslashes($txt);');
        }
        else
        {
            $stripslashes = create_function('$txt', 'return $txt;');
        }

        // magic quotes ?
        $text = $stripslashes($text);
        $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
        $text = nl2br($text);
        return $text;
    };

    /*
     * Cette fonction sert à vérifier la syntaxe d'un email
     */
    function IsEmail($email)
    {
        $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
        return (eregi($pattern,$email)) ? true : false;
    };

    $err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

    // si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
    $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']) : '';

    if (isset($_POST['envoi']))
    {
        // On va vérifier les variables et l'email ...
        $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
        $err_formulaire = (IsEmail($email)) ? false : true;

        if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
        {
            // les 4 variables sont remplies, on génère puis envoie le mail
            $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

            // envoyer une copie au visiteur ?
            if ($copie == 'oui')
            {
                $cible = $destinataire.','.$email;
            }
            else
            {
                $cible = $destinataire;
            };

            // Remplacement de certains caractères spéciaux
            $message = html_entity_decode($message);
            $message = str_replace(''',"'",$message);
            $message = str_replace('’',"'",$message);
            $message = str_replace('<br>','',$message);
            $message = str_replace('<br />','',$message);

            // Envoi du mail
            if (mail($cible, $objet, $message, $headers))
            {
                echo '<p>'.$message_envoye.'</p>'."\n";
            }
            else
            {
                echo '<p>'.$message_non_envoye.'</p>'."\n";
            };
        }
        else
        {
            // une des 3 variables (ou plus) est vide ...
            echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
            $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.'">'."\n";
        echo '    <fieldset><legend>Vos coordonnées</legend>'."\n";
        echo '        <p>'."\n";
        echo '            <label for="nom">Nom :</label>'."\n";
        echo '            <input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
        echo '        </p>'."\n";
        echo '        <p>'."\n";
        echo '            <label for="email">Email :</label>'."\n";
        echo '            <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
        echo '        </p>'."\n";
        echo '    </fieldset>'."\n";

        echo '    <fieldset><legend>Votre message :</legend>'."\n";
        echo '        <p>'."\n";
        echo '            <label for="objet">Objet :</label>'."\n";
        echo '            <input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" />'."\n";
        echo '        </p>'."\n";
        echo '        <p>'."\n";
        echo '            <label for="message">Message :</label>'."\n";
        echo '            <textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
        echo '        </p>'."\n";
        echo '    </fieldset>'."\n";

        echo '    <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
        echo '</form>'."\n";
    };
?>
<body>
<span style="position:absolute; left:7px; top:492px; width:993px; height:15px; z-index:1; visibility: visible;"><img src="../images_structure/bande_H1.jpg" alt="" width="993" height="15" /></span>
<div id="Layer2" style="position:absolute; left:5px; top:522px; width:993px; height:5px; z-index:1; visibility: visible;"><img src="../images_structure/bande_H2.jpg" alt="" width="993" height="5" /></div>
<span style="position:absolute; left:40px; top:458px; width:15px; height:170px; z-index:1; visibility: visible;"><img src="../images_structure/bande_V1.jpg" alt="" width="16" height="170" /></span>
<div id="Layer" style="position:absolute; left:65px; top:457px; width:2px; height:170px; z-index:1; visibility: visible;"><img src="../images_structure/bande_H2.jpg" alt="" width="5" height="170" /></div>
<div id="Layer1" style="position:absolute; left:17px; top:480px; width:215px; height:39px; z-index:2; visibility: visible;">
  <p><img src="../logos/lor.jpg" alt="" width="212" height="36" /></p>
</div>
<div id="Layer4" style="position:absolute; left:286px; top:546px; width:614px; height:44px; z-index:2; font-family: Georgia, "Times New Roman", Times, serif; font-style: italic; font-weight: bold; font-size: xx-large; color: #FFCC00; visibility: visible;">
  <div align="center">FORMULAIRE DE CONTACT</div>
</div>
<span style="position:absolute; left:24px; top:599px; width:993px; height:15px; z-index:1; visibility: visible;"><img src="../images_structure/bande_H1.jpg" alt="" width="993" height="15" /></span>
<div id="Layer3" style="position:absolute; left:24px; top:623px; width:993px; height:5px; z-index:1; visibility: visible;"><img src="../images_structure/bande_H2.jpg" alt="" width="993" height="5" /></div>
</body>
</html>

Hors ligne

#2 26-03-2010 23:13:39

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Mettre l'adresse mail du destinataire en bcc dans le formulaire

Voici un exemple tiré de la documentation avec utilisation du champ en question :

<?php
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
    <tr>
      <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
    </tr>
    <tr>
      <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
'
;

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>
 

Hors ligne

Pied de page des forums