1

(6 réponses, dans Problèmes)

Voici mon code, mais comme je l'ai dit je l'utilise ailleurs sans soucis..

<?php

    $destinataire = 'mail.com';

    // envoie une copie au visiteur
    $copie = 'oui';

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

    // Messages de confirmation du mail
    $message_envoye = "Votre message nous est bien parvenu !";
    $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 soit sans erreur.";


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

        $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; // remplir le formulaire en cas d'erreur 

    // 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']))
    {
        // vérification des variables et l'email ...
        $email = (IsEmail($email)) ? $email : '';  
        $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('&#039;',"'",$message);
            $message = str_replace('&#8217;',"'",$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;
        };
    }; 

    if (($err_formulaire) || (!isset($_POST['envoi'])))
    {
        // afficher le formulaire
        ?>
        <h2> Contact </h2>
        <br/>
        <p> Si vous voulez me joindre pour donner votre avis, suggérer des améliorations pour le site, ou me poser quelques questions, cet espace est
        là pour cela! Laissez votre email et je vous répondrais vite...</p>
        <br/>
        <?
        echo '<form id="contact" method="post" action="'.$form_action.'">'."\n";
        echo '    <fieldset><legend>Infos</legend>'."\n";//fieldset=css  //info
        echo '        <p align=center>'."\n";
        echo '            <label for="nom">Pseudo :</label>'."\n";//pseudo
        echo '            <input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";?>&nbsp; &nbsp; &nbsp;<?
        echo '            <label for="email">Email :</label>'."\n"; //email
        echo '            <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
        echo '        </p>'."\n";
        echo '    </fieldset>'."\n";
?>
<br/>
<?
        echo '    <fieldset><legend>Message </legend>'."\n";
        echo '        <p class="contact2">'."\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 class="contact3>'."\n";
        echo '            <label for="message">Message :</label>'."\n";
        echo '            <textarea id="message" name="message" tabindex="4" cols="40" rows="8">'.stripslashes($message).'</textarea>'."\n";
        echo '        </p>'."\n";
        echo '    </fieldset>'."\n";
?>
<br/><br/>
<?
        echo '    <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le mail !" /></div>'."\n";
        echo '</form>'."\n";
    };
?>

2

(6 réponses, dans Problèmes)

Bonjour j'ai un probleme d'envoie mail par formulaire. C'est que au lieu de me mettre le destinataire, il me met mon adresse mail en destinataire. L'adresse que j'ai donné lors de mon inscription. Il me semble que c'est du au server, je n'ai jamais eu ce problème avant. Comment puis je regler celà?