Formulaire de Contact - Php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire de Contact - Php

Re: Formulaire de Contact - Php

par Valek » 02 févr. 2011, 23:25

Super xTG!!

Merci beaucoup, vraiment.
Et ouais....ce qui fait de jouer avec des choses qu'on ne connais pas trop.

Bonne continuation ;)
Et merci encore.

Re: Formulaire de Contact - Php

par xTG » 02 févr. 2011, 20:17

Tu trouveras la réponse dans la documentation de la fonction mail(). ;)
On ne lui envoies pas les paramètres n'importe comment, il n'y a qu'un seul paramètre TO.

Formulaire de Contact - Php

par Valek » 02 févr. 2011, 19:47

Bonsoir à tous.

Je viens vers vous (les grands pros) avec un problème de formulaire que je n'arrive pas à résoudre.
Même après avoir essayé plein de scripts, je reste toujours dans le même 'point'.

J'ai crée un formulaire en Html avec les champs : Nom/Prénom ; E-mail ; Société ; Sujet et Message.
Avec ce code Php de réponse, que j'ai récupéré.
Le code marché très bien, mais avant que j'inséré le champ Société.
Alors c'est clair que c'est de là le problème.
Moi je suis un nul en Php :((( Alors en essayant de trouver une logique là dedans je reste à la fin..presque désespéré :(

Est-ce que quelqu'un peut m'aider ?
Qu'est-ce qui vas pas ?

Je vous remercie en avance pour toute aide.

Code PHP :

<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = '[email protected]';

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

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu ! <a href=\"contact_fr.php\">Continuer</a>";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP. <a href=\"contact_fr.php\">Continuer</a>";

// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact_fr.php\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.
<a href=\"contact_fr.php\">Continuer</a>";

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

// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* 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;
};

// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$societe = (isset($_POST['societe'])) ? Rec($_POST['societe']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

// 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é

if (($nom != '') && ($email != '') && ($societe != '') && ($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 = str_replace("'","'",$message);
$message = str_replace("&#8217;","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);

// Envoi du mail
if (mail($cible, $societe, $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_fr.php">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>