|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
FORMMAIL SÉCURISÉ
Information sur la source
Description
Script de formmail qui permet de recevoir un feedback des visiteurs de votre site... Le visiteur peut choisir entre plusieurs detinataire!
Source
- <?php
-
- // TITRE
-
- echo"<h1>Contact</h1>\n";
-
- // APPEL DES FONCTIONS
-
- // AFFICHER
-
- if(!$_POST)
- {
- formulaire_contact($connexion, $_POST);
- }
-
- // VERIFIER/ENVOYER
-
- elseif($_POST)
- {
- // ON VERIFIE LES CHAMPS
-
- if(verifier_contact($_POST))
- {
- envoyer_contact($connexion, $_POST);
- }
- else
- {
- formulaire_contact($connexion, $_POST);
- }
- }
-
- // FORMULAIRE
-
- function formulaire_contact($connexion, $_POST)
- {
- // ON DEFINIT LES VALEURS PAR DEFAUT
-
- if(!($_POST))
- {
- $nom = 'Prénom et nom';
- $adresse = 'Adresse';
- $lieu = 'Code postal et lieu';
- $email = '@';
- $sujet = 'Sujet';
- $texte = 'Texte';
- $copie = 'on';
- }
- else
- {
- $nom = $_POST['nom'];
- $adresse = $_POST['adresse'];
- $lieu = $_POST['lieu'];
- $email = $_POST['email'];
- $sujet = $_POST['sujet'];
- $texte = $_POST['texte'];
- $texte = $_POST['copie'];
- }
-
- // FORMULAIRE
-
- echo"<h2>Formulaire</h2>\n";
-
- echo"<form action=\"contact.html\" method=\"post\">\n";
-
- echo"<p><label for=\"contact\">Contact *</label><br />\n";
-
- //CONTACTS
-
- echo"<select name=\"contact\" id=\"contact\" title=\"Contact\" tabindex=\"1\">\n";
- echo"<option selected=\"selected\">Webmaster</option>\n";
-
- // AUTRES DESTINATAIRES VOIRE REQUETES MYSQL POUR SELECTIONNER DES GROUPES ETC.
-
- echo"</select></p>\n";
-
- // PRENOM ET NOM
-
- echo"<p><label for=\"nom\">Prénom et nom *</label><br />\n";
- echo"<input type=\"text\" name=\"nom\" id=\"nom\" value=\"".$nom."\" title=\"Prénom et nom\" tabindex=\"2\" onfocus=\"this.select();\" /></p>\n";
-
- // ADRESSE
-
- echo"<p><label for=\"adresse\">Adresse</label><br />\n";
- echo"<input type=\"text\" name=\"adresse\" id=\"adresse\" value=\"".$adresse."\" title=\"Adresse\" tabindex=\"3\" onfocus=\"this.select();\" /></p>\n";
-
- // CODE POSTAL ET LIEU
-
- echo"<p><label for=\"lieu\">Code postal et lieu *</label><br />\n";
- echo"<input type=\"text\" name=\"lieu\" id=\"lieu\" value=\"".$lieu."\" title=\"Lieu\" tabindex=\"4\" onfocus=\"this.select();\" /></p>\n";
-
- // Email
-
- echo"<p><label for=\"email\">Email *</label><br />\n";
- echo"<input type=\"text\" name=\"email\" id=\"email\" value=\"".$email."\" title=\"Email\" tabindex=\"5\" onfocus=\"this.select();\" /></p>\n";
-
- // SUJET
-
- echo"<p><label for=\"sujet\">Sujet *</label><br />\n";
- echo"<input type=\"text\" name=\"sujet\" id=\"sujet\" value=\"".$sujet."\" title=\"Sujet\" tabindex=\"6\" onfocus=\"this.select();\" /></p>\n";
-
- // TEXTE
-
- echo"<p><label for=\"texte\">Texte *</label><br />\n";
-
- echo"<textarea name=\"texte\" id=\"texte\" cols=\"100\" rows=\"5\" title=\"Texte\" tabindex=\"7\" onfocus=\"this.select();\">".$texte."</textarea></p>\n";
-
- // COPIE
-
- echo"<p><input checked=\"checked\" type=\"checkbox\" name=\"copie\" id=\"copie\" value=\"".$copie."\" title=\"Recevoir une copie de l'email\" tabindex=\"8\" onfocus=\"this.select();\" /> <label for=\"copie\">Recevoir une copie de l'email</label></p>\n";
-
- // CHAMPS OBLIGATOIRES
-
- echo"<p>* Champs obligatoires</p>\n";
-
- // ENVOYER/ANNULER
-
- echo"<p><input type=\"submit\" value=\"Envoyer\" title=\"Envoyer\" tabindex=\"9\" /> <input type=\"reset\" value=\"Annuler\" title=\"Annuler\" tabindex=\"10\" /></p>\n";
-
- echo"</form>\n";
- }
-
- // VERIFIER
-
- function verifier_contact($_POST)
- {
- // VERIFICATION DES CHAINES DE CARACTERES
-
- function verifier_chaines($chaine)
- {
- $mauvaises_chaines = array('content-type:', 'mime-version:', 'content-transfer-encoding:', 'bcc:', 'cc:');
-
- foreach($mauvaises_chaines as $caracteres_inautorises)
- {
- if(strpos($chaine, $caracteres_inautorises) !== false)
- {
- return false;
- }
- }
- return true;
- }
-
- // ON VERIFIE LES CHAMPS
-
- // PRENOM ET NOM
-
- if(!($_POST['nom']) || $_POST['nom'] == 'Prénom et nom' ||!verifier_chaines($_POST['nom']))
- {
- $erreur = '"Prénom et nom"';
- }
-
- // ADRESSE
-
- if(!verifier_chaines($_POST['adresse']))
- {
- if(($erreur))
- {
- $erreur = ''.$erreur.', "Adresse"';
- }
- else
- {
- $erreur = ''.$erreur.'"Adresse"';
- }
- }
-
- // LIEU
-
- if(!($_POST['lieu']) || $_POST['lieu'] == 'Code postal et lieu' ||!verifier_chaines($_POST['lieu']))
- {
- if(($erreur))
- {
- $erreur = ''.$erreur.', "Code postal et lieu"';
- }
- else
- {
- $erreur = ''.$erreur.'"Code postal et lieu"';
- }
- }
-
- // EMAIL
-
- if(!($_POST['email']) || $_POST['email'] == '@' || !preg_match('/^[A-z0-9][\w\.\-]*@[A-z0-9][\w\.\-]+\.[A-z0-9]{2,6}$/', $_POST['email']) ||!verifier_chaines($_POST['email']))
- {
- if(($erreur))
- {
- $erreur = ''.$erreur.', "Email"';
- }
- else
- {
- $erreur = ''.$erreur.'"Email"';
- }
- }
-
- // SUJET
-
- if(!($_POST['sujet']) ||!verifier_chaines($_POST['sujet']))
- {
- if(($erreur))
- {
- $erreur = ''.$erreur.', "Sujet"';
- }
- else
- {
- $erreur = ''.$erreur.'"Sujet"';
- }
- }
-
- // TEXTE
-
- if(!($_POST['texte']) || $_POST['texte'] == 'Texte' ||!verifier_chaines($_POST['texte']))
- {
- if(($erreur))
- {
- $erreur = ''.$erreur.', "Texte"';
- }
- else
- {
- $erreur = ''.$erreur.'"Texte"';
- }
- }
-
- // SI DES CHOSES NE SONT PAS CORRECTES, ON AFFICHE UN MESSAGE D'ERREUR ET ON RETOURNE "FALSE"
-
- if(($erreur))
- {
- // POUR UN CHAMP INVALIDE
-
- if(!strrpos($erreur, ','))
- {
- echo"<p>Le champ ".$erreur." est invalide.</p>\n";
- }
-
- // POUR PLUSIEURS CHAMPS INVALIDES
-
- else
- {
- // ON REMPLACE LA DERNIERE VIRGULE PAR ET
-
- $nouvelle_erreur = substr_replace($erreur, ' et', strrpos($erreur,','), '1');
-
- // ON RETOURNE LA NOUVELLE ERREUR
-
- echo"<p>Les champs ".$nouvelle_erreur." sont invalides.</p>\n";
- }
-
- // ON RETOURNE L'ERREUR
-
- return false;
- }
-
- // ON ENVOIE LE MAIL
-
- return true;
- }
-
- // ENVOYER
-
- function envoyer_contact($connexion, $_POST)
- {
- // CHOIX DU DESTINATAIRE
-
- if($_POST['contact'] == 'Webmaster')
- {
- $dest = 'webmaster@tonsite.com';
- }
-
- else
- {
- // AUTRES DESTINATAIRES VOIRE REQUETES MYSQL POUR SELECTIONNER DES GROUPES ETC.
-
- }
-
- // ON PREPARE L'ENTETE
-
- // AVEC COPIE
-
- if(($_POST['copie']))
- {
- $entete = "bcc: ".$_POST['email']."\r\n";
- $entete .= "from: Ton site - ".$_POST['nom']." <".$_POST['email'].">\r\n";
- }
-
- // SANS COPIE
-
- elseif(!($_POST['copie']))
- {
- $entete = "from: Ton site - ".$_POST['nom']." <".$_POST['email'].">\r\n";
- }
-
- $entete .= "reply-to: ".$_POST['nom']." <".$_POST['email'].">\r\n";
- $entete .= "return-path: Tonsite - ".$_POST['nom']." <".$_POST['email'].">\r\n";
- $entete .= "mime-version: 1.0";
- $entete .= "content-type: text/plain; charset=iso-8859-1";
- $entete .= "x-mailer: php/" . phpversion();
- $entete .= "x-sender: Ton site - ".$_POST['nom']." <".$_POST['email'].">";
- $entete .= "x-auth-smtp-user: localhost";
-
- // PUIS LE MESSAGE
-
- // NOM ET PRENOM
-
- $message = "Prénom et nom : ".$_POST['nom']."\n\n";
-
- // SI IL Y A UNE ADRESSE
-
- if(($_POST['adresse']) && $_POST['adresse'] != 'Adresse')
- {
- $_POST['lieu'] = "".$_POST['adresse'].", ".$_POST['lieu']."";
- }
-
- // LIEU
-
- $message .= "Lieu : ".$_POST['lieu']."\n\n";
-
- // MESSAGE
-
- $message .= "Message : \n\n".$_POST['texte']."";
-
- // SI TOUT VA BIEN ON ENVOIE LE MAIL
-
- if(mail($dest, $_POST['sujet'], $message, $entete))
- {
- // MESSAGE DE CONFIRMATION
-
- echo"<p>Ton message a bien été envoyé.</h2>\n";
-
- echo"<h3>Infos détaillées</h3>\n";
-
- echo"<ul />\n";
- echo"<li>Contact : ".htmlentities($_POST['contact'])."</li>\n";
- echo"<li>Prénom et nom : ".htmlentities($_POST['nom'])."</li>\n";
- echo"<li>Code postal et lieu : ".htmlentities($_POST['lieu'])."</li>\n";
- echo"<li>Email : ".$_POST['email']."</li>\n";
- echo"<li>Sujet : ".htmlentities($_POST['sujet'])."</li>\n";
-
- // AVEC COPIE
-
- if(($_POST['copie']))
- {
- echo"<li><span>Copie :</span> Oui</li>\n";
- }
-
- // SANS COPIE
-
- elseif(!($_POST['copie']))
- {
- echo"<li><span>Copie :</span> Non</li>\n";
- }
-
- echo"</ul>\n";
-
- echo"<h3>Message</h3>\n";
-
- echo"<p>".nl2br(htmlentities($_POST['texte']))."</p>\n";
-
- // RETOUR
-
- echo"<p><a href=\"contact.html\" title=\"Retour\">Retour</a></p>\n";
- }
- }
-
- ?>
<?php
// TITRE
echo"<h1>Contact</h1>\n";
// APPEL DES FONCTIONS
// AFFICHER
if(!$_POST)
{
formulaire_contact($connexion, $_POST);
}
// VERIFIER/ENVOYER
elseif($_POST)
{
// ON VERIFIE LES CHAMPS
if(verifier_contact($_POST))
{
envoyer_contact($connexion, $_POST);
}
else
{
formulaire_contact($connexion, $_POST);
}
}
// FORMULAIRE
function formulaire_contact($connexion, $_POST)
{
// ON DEFINIT LES VALEURS PAR DEFAUT
if(!($_POST))
{
$nom = 'Prénom et nom';
$adresse = 'Adresse';
$lieu = 'Code postal et lieu';
$email = '@';
$sujet = 'Sujet';
$texte = 'Texte';
$copie = 'on';
}
else
{
$nom = $_POST['nom'];
$adresse = $_POST['adresse'];
$lieu = $_POST['lieu'];
$email = $_POST['email'];
$sujet = $_POST['sujet'];
$texte = $_POST['texte'];
$texte = $_POST['copie'];
}
// FORMULAIRE
echo"<h2>Formulaire</h2>\n";
echo"<form action=\"contact.html\" method=\"post\">\n";
echo"<p><label for=\"contact\">Contact *</label><br />\n";
//CONTACTS
echo"<select name=\"contact\" id=\"contact\" title=\"Contact\" tabindex=\"1\">\n";
echo"<option selected=\"selected\">Webmaster</option>\n";
// AUTRES DESTINATAIRES VOIRE REQUETES MYSQL POUR SELECTIONNER DES GROUPES ETC.
echo"</select></p>\n";
// PRENOM ET NOM
echo"<p><label for=\"nom\">Prénom et nom *</label><br />\n";
echo"<input type=\"text\" name=\"nom\" id=\"nom\" value=\"".$nom."\" title=\"Prénom et nom\" tabindex=\"2\" onfocus=\"this.select();\" /></p>\n";
// ADRESSE
echo"<p><label for=\"adresse\">Adresse</label><br />\n";
echo"<input type=\"text\" name=\"adresse\" id=\"adresse\" value=\"".$adresse."\" title=\"Adresse\" tabindex=\"3\" onfocus=\"this.select();\" /></p>\n";
// CODE POSTAL ET LIEU
echo"<p><label for=\"lieu\">Code postal et lieu *</label><br />\n";
echo"<input type=\"text\" name=\"lieu\" id=\"lieu\" value=\"".$lieu."\" title=\"Lieu\" tabindex=\"4\" onfocus=\"this.select();\" /></p>\n";
// Email
echo"<p><label for=\"email\">Email *</label><br />\n";
echo"<input type=\"text\" name=\"email\" id=\"email\" value=\"".$email."\" title=\"Email\" tabindex=\"5\" onfocus=\"this.select();\" /></p>\n";
// SUJET
echo"<p><label for=\"sujet\">Sujet *</label><br />\n";
echo"<input type=\"text\" name=\"sujet\" id=\"sujet\" value=\"".$sujet."\" title=\"Sujet\" tabindex=\"6\" onfocus=\"this.select();\" /></p>\n";
// TEXTE
echo"<p><label for=\"texte\">Texte *</label><br />\n";
echo"<textarea name=\"texte\" id=\"texte\" cols=\"100\" rows=\"5\" title=\"Texte\" tabindex=\"7\" onfocus=\"this.select();\">".$texte."</textarea></p>\n";
// COPIE
echo"<p><input checked=\"checked\" type=\"checkbox\" name=\"copie\" id=\"copie\" value=\"".$copie."\" title=\"Recevoir une copie de l'email\" tabindex=\"8\" onfocus=\"this.select();\" /> <label for=\"copie\">Recevoir une copie de l'email</label></p>\n";
// CHAMPS OBLIGATOIRES
echo"<p>* Champs obligatoires</p>\n";
// ENVOYER/ANNULER
echo"<p><input type=\"submit\" value=\"Envoyer\" title=\"Envoyer\" tabindex=\"9\" /> <input type=\"reset\" value=\"Annuler\" title=\"Annuler\" tabindex=\"10\" /></p>\n";
echo"</form>\n";
}
// VERIFIER
function verifier_contact($_POST)
{
// VERIFICATION DES CHAINES DE CARACTERES
function verifier_chaines($chaine)
{
$mauvaises_chaines = array('content-type:', 'mime-version:', 'content-transfer-encoding:', 'bcc:', 'cc:');
foreach($mauvaises_chaines as $caracteres_inautorises)
{
if(strpos($chaine, $caracteres_inautorises) !== false)
{
return false;
}
}
return true;
}
// ON VERIFIE LES CHAMPS
// PRENOM ET NOM
if(!($_POST['nom']) || $_POST['nom'] == 'Prénom et nom' ||!verifier_chaines($_POST['nom']))
{
$erreur = '"Prénom et nom"';
}
// ADRESSE
if(!verifier_chaines($_POST['adresse']))
{
if(($erreur))
{
$erreur = ''.$erreur.', "Adresse"';
}
else
{
$erreur = ''.$erreur.'"Adresse"';
}
}
// LIEU
if(!($_POST['lieu']) || $_POST['lieu'] == 'Code postal et lieu' ||!verifier_chaines($_POST['lieu']))
{
if(($erreur))
{
$erreur = ''.$erreur.', "Code postal et lieu"';
}
else
{
$erreur = ''.$erreur.'"Code postal et lieu"';
}
}
// EMAIL
if(!($_POST['email']) || $_POST['email'] == '@' || !preg_match('/^[A-z0-9][\w\.\-]*@[A-z0-9][\w\.\-]+\.[A-z0-9]{2,6}$/', $_POST['email']) ||!verifier_chaines($_POST['email']))
{
if(($erreur))
{
$erreur = ''.$erreur.', "Email"';
}
else
{
$erreur = ''.$erreur.'"Email"';
}
}
// SUJET
if(!($_POST['sujet']) ||!verifier_chaines($_POST['sujet']))
{
if(($erreur))
{
$erreur = ''.$erreur.', "Sujet"';
}
else
{
$erreur = ''.$erreur.'"Sujet"';
}
}
// TEXTE
if(!($_POST['texte']) || $_POST['texte'] == 'Texte' ||!verifier_chaines($_POST['texte']))
{
if(($erreur))
{
$erreur = ''.$erreur.', "Texte"';
}
else
{
$erreur = ''.$erreur.'"Texte"';
}
}
// SI DES CHOSES NE SONT PAS CORRECTES, ON AFFICHE UN MESSAGE D'ERREUR ET ON RETOURNE "FALSE"
if(($erreur))
{
// POUR UN CHAMP INVALIDE
if(!strrpos($erreur, ','))
{
echo"<p>Le champ ".$erreur." est invalide.</p>\n";
}
// POUR PLUSIEURS CHAMPS INVALIDES
else
{
// ON REMPLACE LA DERNIERE VIRGULE PAR ET
$nouvelle_erreur = substr_replace($erreur, ' et', strrpos($erreur,','), '1');
// ON RETOURNE LA NOUVELLE ERREUR
echo"<p>Les champs ".$nouvelle_erreur." sont invalides.</p>\n";
}
// ON RETOURNE L'ERREUR
return false;
}
// ON ENVOIE LE MAIL
return true;
}
// ENVOYER
function envoyer_contact($connexion, $_POST)
{
// CHOIX DU DESTINATAIRE
if($_POST['contact'] == 'Webmaster')
{
$dest = 'webmaster@tonsite.com';
}
else
{
// AUTRES DESTINATAIRES VOIRE REQUETES MYSQL POUR SELECTIONNER DES GROUPES ETC.
}
// ON PREPARE L'ENTETE
// AVEC COPIE
if(($_POST['copie']))
{
$entete = "bcc: ".$_POST['email']."\r\n";
$entete .= "from: Ton site - ".$_POST['nom']." <".$_POST['email'].">\r\n";
}
// SANS COPIE
elseif(!($_POST['copie']))
{
$entete = "from: Ton site - ".$_POST['nom']." <".$_POST['email'].">\r\n";
}
$entete .= "reply-to: ".$_POST['nom']." <".$_POST['email'].">\r\n";
$entete .= "return-path: Tonsite - ".$_POST['nom']." <".$_POST['email'].">\r\n";
$entete .= "mime-version: 1.0";
$entete .= "content-type: text/plain; charset=iso-8859-1";
$entete .= "x-mailer: php/" . phpversion();
$entete .= "x-sender: Ton site - ".$_POST['nom']." <".$_POST['email'].">";
$entete .= "x-auth-smtp-user: localhost";
// PUIS LE MESSAGE
// NOM ET PRENOM
$message = "Prénom et nom : ".$_POST['nom']."\n\n";
// SI IL Y A UNE ADRESSE
if(($_POST['adresse']) && $_POST['adresse'] != 'Adresse')
{
$_POST['lieu'] = "".$_POST['adresse'].", ".$_POST['lieu']."";
}
// LIEU
$message .= "Lieu : ".$_POST['lieu']."\n\n";
// MESSAGE
$message .= "Message : \n\n".$_POST['texte']."";
// SI TOUT VA BIEN ON ENVOIE LE MAIL
if(mail($dest, $_POST['sujet'], $message, $entete))
{
// MESSAGE DE CONFIRMATION
echo"<p>Ton message a bien été envoyé.</h2>\n";
echo"<h3>Infos détaillées</h3>\n";
echo"<ul />\n";
echo"<li>Contact : ".htmlentities($_POST['contact'])."</li>\n";
echo"<li>Prénom et nom : ".htmlentities($_POST['nom'])."</li>\n";
echo"<li>Code postal et lieu : ".htmlentities($_POST['lieu'])."</li>\n";
echo"<li>Email : ".$_POST['email']."</li>\n";
echo"<li>Sujet : ".htmlentities($_POST['sujet'])."</li>\n";
// AVEC COPIE
if(($_POST['copie']))
{
echo"<li><span>Copie :</span> Oui</li>\n";
}
// SANS COPIE
elseif(!($_POST['copie']))
{
echo"<li><span>Copie :</span> Non</li>\n";
}
echo"</ul>\n";
echo"<h3>Message</h3>\n";
echo"<p>".nl2br(htmlentities($_POST['texte']))."</p>\n";
// RETOUR
echo"<p><a href=\"contact.html\" title=\"Retour\">Retour</a></p>\n";
}
}
?>
Conclusion
Il ne vous reste plus qu'à faire un design et à créer un htacces pour l'url rewriting!!
Historique
- 19 juin 2007 11:09:57 :
- Pas vraiment de mise à jour, juste un ajoute de capture d'écran...
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
envoi multiple de mail [ par GADSN ]
bonjourj'ai une petite question : je suis entrtain d'envoyer des mails periodiquement pour les adherants de mon site ; le probleme c'est que quelques
formulaire/email sans client messagerie [ par totti3201 ]
Bonjour à tous, je suis nouveau dans la programmation PHP et sur cet excellent site. J'ai une question dont je recherche en vain la réponse depuis p
Vérifier le présente d'une adresse email spécifique dans la boîte de messagerie [ par bonheur123 ]
Bonjour,.Pouvez vous m'aider à avoir un script en PHP qui vérifie la présence d'une adresse email spécifique dans une boite de messagerie donnée ?.En
Explication de ce code PHP [ par bonheur123 ]
Bonjour,voici ce code je voudrais que vous m'aidiez à le comprendre.Comment marche un code PHP ( de haut en bas ou de bas en haut ?)Ce cade fonctionne
Rajouté des fichiers joints avec l'envoi d'un Email. [ par dypsis66 ]
Bonjour à tous! Je suis une novice en php et je suis en train de créer pour une entreprise un site internet. J'ai creer un formulaire de contact ou le
Formulaire [ par kanye1982 ]
YoussBonjour tout le monde voila ma questionJe suis en train de faire un formulaire d'inscription en PHP ;) et j'aimerais avoir un petit coup de main,
Test d'un champ dans un formulaire [ par kanye1982 ]
YoussVoila ma question elle ne devrait pas être trop compliqué j'ai un formulaire en php et dans celui-ci le champ "raison" qui est un champ à choix m
envoi d'un email [ par dalitch ]
bonjour, je veux envouer un email qui contient le contenu d'une table. Le pb c'est que je recoit le mail mais il est vide. Comment je peux récupérer l
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|