Accueil > > > FORMULAIRE DE CONTACT PHP5, POO, VERIFICATION + ENVOI DU MAIL
FORMULAIRE DE CONTACT PHP5, POO, VERIFICATION + ENVOI DU MAIL
Information sur la source
Description
J'ai réécri une de mes sources php4 : http://www.phpcs.com/codes/FORMULAIRE-PHP-VERIFI CATION-ENVOI-MAIL_47640.aspx
Source
- <?php
- /**************** CREE PAR MOUNIR R'QUIBA (MOON) (mounir.rquiba@gmail.com) ******************
- * 11/04/2010 !! COPYRIGHT !!
- * A utiliser sans moderation :D
- * CLASS ContactFormulaire PHP 5 POO , VERIFICATION , ENVOI DU MAIL
- */
-
- class ContactFormulaireRquiba{
- /*
- * la proprité $nom défini le nom ou la raison social du contact
- */
- public $nom;
-
- /*
- * la proprité $mail défini l'adresse email du contact
- */
- public $mail;
-
- /*
- * la proprité $tel défini le numéro de telephone du contact
- */
- public $tel;
-
- /*
- * la proprité $sujet défini le sujet du message
- */
- public $sujet;
-
- /*
- * la proprité $message défini le message du contact
- */
- public $message;
-
- /*
- * la proprité $webmaster défini l'adresse email ou le message sera envoyé
- */
- public $webmaster;
-
- /*
- * la proprité $sendCheck est un valeur boolean qui valide l'envoi du mail
- */
- public $sendCheck = null;
-
- /*
- * la methode envoi_mail() envoi le mail
- */
- public function envoi_mail(){
-
- $contenu_message = "Nom : ".$this->nom."\nMail : ".$this->mail."\nSujet : ".$this->sujet."\nTelephone : ".$this->tel."\nMessage : ".$this->message;
- $entete = "From: ".$this->nom." <".$this->mail."> \nContent-Type: text/html; charset=iso-8859-1";
- mail($this->webmaster,$this->sujet,$contenu_message,$entete);
-
- }
-
- /*
- * la methode verif_null() verifie si la valeur de l'input et null
- */
- public function verif_null($var)
- {
- return (!empty($var))?$var:null;
- }
-
-
- /*
- * la methode verif_mail() verifie si la valeur de l'adresse email est correct.
- */
- public function verif_mail($var)
- {
- return (preg_match('#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#',$var))?$var:null;
- }
- /*
- * la methode verif_tel() verifie si la valeur du telephone est correct.
- */
- public function verif_tel($var)
- {
- return (preg_match('#^[0-9]{9,18}$#',$var))?$var:null;
- }
-
- /*
- * la methode inputTrue() permet de mettre en rouge les valeurs saisie incorrect.
- * pour un $type = 1 => input simple
- * pour un $type = 2 => input mail
- * pour un $type = 3 => input tel
- */
- public function inputTrue($input,$type = '1'){
-
- $style_blanc = ' style = "font-family: verdana;border: solid #000000 1px;font-size: 8pt;color: #000000;background-color: #ffffff" ';
- $style_rouge = ' style = "font-family: verdana;border: solid #000000 1px;font-size: 8pt;color: #000000;background-color: #ff0000" ';
- $test = null;
- if(isset($_POST['nom'])){
-
- switch($type){
- case '1': $test = $this->verif_null($input);
- break;
-
- case '2': $test = $this->verif_mail($input);
- break;
-
- case '3': $test = $this->verif_tel($input);
- break;
- }
-
- if(empty($test)){
- echo $style_rouge;
- }else{
- echo $style_blanc;
- }
- }
-
- }
-
- /*
- * la methode loadForm() permet le chargement des données du formulaire dans chaque propriété de l'objet.
- * $data => tableau du formulaire de contact $_POST
- */
- public function loadForm($data){
- extract($data);
- $this->nom = trim(htmlentities($nom, ENT_QUOTES));
- $this->mail = $this->verif_mail($mail);
- $this->tel = $this->verif_tel($tel);
- $this->sujet = trim(htmlentities($sujet, ENT_QUOTES));
- $this->message = trim(htmlentities($message, ENT_QUOTES));
- $test = $this->testForm();
- if(!empty($test)){
- $this->envoi_mail();
- $this->printForm();
- $this->sendCheck = 1;
- }else{
- echo '<div style="padding:5px;border:solid 2px #FF0000;background-color:#FEDFDF;width:600px;color:#ff0000;" >';
- echo 'Veuillez correctement remplir les champs en rouge.';
- echo '</div>';
- }
- }
-
- /*
- * la methode printForm() Affiche le résultat final du mail envoyé.
- */
- public function printForm(){
- echo '<div style="padding:2px;margin:2px;" >';
- echo '<h2>Votre message a bien été envoyé</h2>';
- echo '<a href="./">Envoyer un nouveau message</a><br />';
- echo '<a href="./">Retour á la page d\'accueil</a><br />';
- echo '</div>';
- echo '<div style="padding:2px;border:solid 2px #000000;background-color:#000001;width:600px;color:#ffffff;" >';
- echo 'Contenu de votre message envoyé ';
- echo '</div>';
- echo '<div style="padding:2px;border:solid 2px #000000;background-color:#CDE9E5;width:600px;" >';
- echo '<ul><li><b>Votre nom / Raison Social : </b>'.$this->nom.'</li>';
- echo '<li><b>Votre mail : </b>'.$this->mail.'</li>';
- echo '<li><b>Telephone : </b>'.$this->tel.'</li>';
- echo '<li><b>Sujet : </b>'.$this->sujet.'</li>';
- echo '<li><b>Votre message : </b>'.$this->message.'</li></ul>';
- echo '</div>';
- }
-
- /*
- * la methode testForm() renvoi 1 si les toutes les données du fomulaire sont corrécts sinon NULL.
- */
- public function testForm(){
- if($this->verif_null($this->nom) and $this->verif_null($this->mail) and $this->verif_null($this->tel) and $this->verif_null($this->sujet) and $this->verif_null($this->message)){
- if($this->verif_mail($this->mail) and $this->verif_tel($this->tel)){
- return 1;
- }
- return NULL;
- }
- return NULL;
- }
-
- }
-
- ?>
- <?php
- /**************** CREE PAR MOUNIR R'QUIBA (MOON) (mounir.rquiba@gmail.com) ******************
- * 11/04/2010 !! COPYRIGHT !!
- * A utiliser sans moderation :D
- * index.php, PHP5 POO , VERIFICATION , ENVOI DU MAIL
- */
-
- include 'ContactFormulaireRquiba.php';
-
- /*
- * Création de l'objet concact.
- */
- $contact = new ContactFormulaireRquiba();
-
- /*
- * Chargement de la propiété webmaster qui est le destinataire du mail.
- */
- $contact->webmaster = 'mounir@rquiba.com'; // Veuillez indiquez votre adresse email
-
- /*
- * Verification d'une action sur le formuilaire de contact.
- */
- if(isset($_POST['nom'])){
- $contact->loadForm($_POST);
- }
-
- /*
- * $send = null => Formulaire incomplet
- * $send = 1 => Formulaire complet
- */
- $send = $contact->sendCheck;
-
- /*
- * Si $send est null on affiche le formulaire de contact
- */
- if(empty($send)){
-
- ?>
- <?php /* FORMULAIRE DEBUT */ ?>
- <div style="width:600px;padding:5px;">
- <form method="post">
- <table width="100%" height="317" border="0">
- <tr>
- <td width="30%" align="right" valign="middle">
-
- </td>
- <td width="70%">
- <b>Soit</b> <a href="mailto:<?php echo $contact->webmaster; ?>">cliquer ici pour envoyer un mail directement</a><br />
- <b>Ou</b> veuillez remplir le formulaire de contact :<br />
- </td>
- </tr>
- <tr>
- <td width="30%" align="right" valign="middle">
- <font size="3" face="Verdana, Arial, Helvetica, sans-serif">Votre nom / Raison social <b>*</b> :</font>
- </td>
- <td width="60%">
- <input type="text" name="nom" size="50" <?php $contact->inputTrue($contact->nom); ?> value="<?php echo $contact->nom; ?>" />
- </td>
- </tr>
- <tr>
- <td align="right" valign="middle">
- <font size="3" face="Verdana, Arial, Helvetica, sans-serif">Votre mail <b>*</b> :</font></td>
- <td>
- <input type="text" name="mail" size="50" <?php $contact->inputTrue($contact->mail,'2'); ?> value="<?php echo $contact->mail; ?>" />
- </td>
- </tr>
- <tr>
- <td align="right" valign="middle">
- <font size="3" face="Verdana, Arial, Helvetica, sans-serif">Tel <b>*</b> :</font></td>
- <td>
- <input type="text" name="tel" size="20" <?php $contact->inputTrue($contact->tel,'3'); ?> value="<?php echo $contact->tel; ?>" />
- </td>
- </tr>
- <td align="right" valign="middle">
- <font size="3" face="Verdana, Arial, Helvetica, sans-serif">Sujet <b>*</b> :</font>
- </td>
- <td>
- <input type="text" name="sujet" size="50" <?php $contact->inputTrue($contact->sujet); ?> value="<?php echo $contact->sujet; ?>" />
- </td>
- </tr>
- <tr>
- <td height="181" align="right" valign="top">
- <font size="3" face="Verdana, Arial, Helvetica, sans-serif">Message <b>*</b> : </font>
- </td>
- <td valign="top">
- <textarea name="message" cols="47" <?php $contact->inputTrue($contact->message); ?> rows="10" ><?php echo $contact->message; ?></textarea>
- </td>
- </tr>
- <tr>
- <td>
-
- </td>
- <td valign="TOP">
- (<b>*</b>) Champ obligatoire.
- </td>
- </tr>
- <tr>
- <td>
-
- </td>
- <td valign="TOP">
- <input type="submit" style = "font-family: verdana;padding: 5px 45px 5px 45px;border: solid #000000 2px;font-size: 8pt;color: #ffffff;background-color: #32269F" name="envoyer" value="Envoyer" />
- </td>
- </tr>
- </table>
- </form>
- </div>
- <?php
- }
- ?>
- <?php /* FOMULAIRE FIN*/ ?>
<?php
/**************** CREE PAR MOUNIR R'QUIBA (MOON) (mounir.rquiba@gmail.com) ******************
* 11/04/2010 !! COPYRIGHT !!
* A utiliser sans moderation :D
* CLASS ContactFormulaire PHP 5 POO , VERIFICATION , ENVOI DU MAIL
*/
class ContactFormulaireRquiba{
/*
* la proprité $nom défini le nom ou la raison social du contact
*/
public $nom;
/*
* la proprité $mail défini l'adresse email du contact
*/
public $mail;
/*
* la proprité $tel défini le numéro de telephone du contact
*/
public $tel;
/*
* la proprité $sujet défini le sujet du message
*/
public $sujet;
/*
* la proprité $message défini le message du contact
*/
public $message;
/*
* la proprité $webmaster défini l'adresse email ou le message sera envoyé
*/
public $webmaster;
/*
* la proprité $sendCheck est un valeur boolean qui valide l'envoi du mail
*/
public $sendCheck = null;
/*
* la methode envoi_mail() envoi le mail
*/
public function envoi_mail(){
$contenu_message = "Nom : ".$this->nom."\nMail : ".$this->mail."\nSujet : ".$this->sujet."\nTelephone : ".$this->tel."\nMessage : ".$this->message;
$entete = "From: ".$this->nom." <".$this->mail."> \nContent-Type: text/html; charset=iso-8859-1";
mail($this->webmaster,$this->sujet,$contenu_message,$entete);
}
/*
* la methode verif_null() verifie si la valeur de l'input et null
*/
public function verif_null($var)
{
return (!empty($var))?$var:null;
}
/*
* la methode verif_mail() verifie si la valeur de l'adresse email est correct.
*/
public function verif_mail($var)
{
return (preg_match('#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#',$var))?$var:null;
}
/*
* la methode verif_tel() verifie si la valeur du telephone est correct.
*/
public function verif_tel($var)
{
return (preg_match('#^[0-9]{9,18}$#',$var))?$var:null;
}
/*
* la methode inputTrue() permet de mettre en rouge les valeurs saisie incorrect.
* pour un $type = 1 => input simple
* pour un $type = 2 => input mail
* pour un $type = 3 => input tel
*/
public function inputTrue($input,$type = '1'){
$style_blanc = ' style = "font-family: verdana;border: solid #000000 1px;font-size: 8pt;color: #000000;background-color: #ffffff" ';
$style_rouge = ' style = "font-family: verdana;border: solid #000000 1px;font-size: 8pt;color: #000000;background-color: #ff0000" ';
$test = null;
if(isset($_POST['nom'])){
switch($type){
case '1': $test = $this->verif_null($input);
break;
case '2': $test = $this->verif_mail($input);
break;
case '3': $test = $this->verif_tel($input);
break;
}
if(empty($test)){
echo $style_rouge;
}else{
echo $style_blanc;
}
}
}
/*
* la methode loadForm() permet le chargement des données du formulaire dans chaque propriété de l'objet.
* $data => tableau du formulaire de contact $_POST
*/
public function loadForm($data){
extract($data);
$this->nom = trim(htmlentities($nom, ENT_QUOTES));
$this->mail = $this->verif_mail($mail);
$this->tel = $this->verif_tel($tel);
$this->sujet = trim(htmlentities($sujet, ENT_QUOTES));
$this->message = trim(htmlentities($message, ENT_QUOTES));
$test = $this->testForm();
if(!empty($test)){
$this->envoi_mail();
$this->printForm();
$this->sendCheck = 1;
}else{
echo '<div style="padding:5px;border:solid 2px #FF0000;background-color:#FEDFDF;width:600px;color:#ff0000;" >';
echo 'Veuillez correctement remplir les champs en rouge.';
echo '</div>';
}
}
/*
* la methode printForm() Affiche le résultat final du mail envoyé.
*/
public function printForm(){
echo '<div style="padding:2px;margin:2px;" >';
echo '<h2>Votre message a bien été envoyé</h2>';
echo '<a href="./">Envoyer un nouveau message</a><br />';
echo '<a href="./">Retour á la page d\'accueil</a><br />';
echo '</div>';
echo '<div style="padding:2px;border:solid 2px #000000;background-color:#000001;width:600px;color:#ffffff;" >';
echo 'Contenu de votre message envoyé ';
echo '</div>';
echo '<div style="padding:2px;border:solid 2px #000000;background-color:#CDE9E5;width:600px;" >';
echo '<ul><li><b>Votre nom / Raison Social : </b>'.$this->nom.'</li>';
echo '<li><b>Votre mail : </b>'.$this->mail.'</li>';
echo '<li><b>Telephone : </b>'.$this->tel.'</li>';
echo '<li><b>Sujet : </b>'.$this->sujet.'</li>';
echo '<li><b>Votre message : </b>'.$this->message.'</li></ul>';
echo '</div>';
}
/*
* la methode testForm() renvoi 1 si les toutes les données du fomulaire sont corrécts sinon NULL.
*/
public function testForm(){
if($this->verif_null($this->nom) and $this->verif_null($this->mail) and $this->verif_null($this->tel) and $this->verif_null($this->sujet) and $this->verif_null($this->message)){
if($this->verif_mail($this->mail) and $this->verif_tel($this->tel)){
return 1;
}
return NULL;
}
return NULL;
}
}
?>
<?php
/**************** CREE PAR MOUNIR R'QUIBA (MOON) (mounir.rquiba@gmail.com) ******************
* 11/04/2010 !! COPYRIGHT !!
* A utiliser sans moderation :D
* index.php, PHP5 POO , VERIFICATION , ENVOI DU MAIL
*/
include 'ContactFormulaireRquiba.php';
/*
* Création de l'objet concact.
*/
$contact = new ContactFormulaireRquiba();
/*
* Chargement de la propiété webmaster qui est le destinataire du mail.
*/
$contact->webmaster = 'mounir@rquiba.com'; // Veuillez indiquez votre adresse email
/*
* Verification d'une action sur le formuilaire de contact.
*/
if(isset($_POST['nom'])){
$contact->loadForm($_POST);
}
/*
* $send = null => Formulaire incomplet
* $send = 1 => Formulaire complet
*/
$send = $contact->sendCheck;
/*
* Si $send est null on affiche le formulaire de contact
*/
if(empty($send)){
?>
<?php /* FORMULAIRE DEBUT */ ?>
<div style="width:600px;padding:5px;">
<form method="post">
<table width="100%" height="317" border="0">
<tr>
<td width="30%" align="right" valign="middle">
</td>
<td width="70%">
<b>Soit</b> <a href="mailto:<?php echo $contact->webmaster; ?>">cliquer ici pour envoyer un mail directement</a><br />
<b>Ou</b> veuillez remplir le formulaire de contact :<br />
</td>
</tr>
<tr>
<td width="30%" align="right" valign="middle">
<font size="3" face="Verdana, Arial, Helvetica, sans-serif">Votre nom / Raison social <b>*</b> :</font>
</td>
<td width="60%">
<input type="text" name="nom" size="50" <?php $contact->inputTrue($contact->nom); ?> value="<?php echo $contact->nom; ?>" />
</td>
</tr>
<tr>
<td align="right" valign="middle">
<font size="3" face="Verdana, Arial, Helvetica, sans-serif">Votre mail <b>*</b> :</font></td>
<td>
<input type="text" name="mail" size="50" <?php $contact->inputTrue($contact->mail,'2'); ?> value="<?php echo $contact->mail; ?>" />
</td>
</tr>
<tr>
<td align="right" valign="middle">
<font size="3" face="Verdana, Arial, Helvetica, sans-serif">Tel <b>*</b> :</font></td>
<td>
<input type="text" name="tel" size="20" <?php $contact->inputTrue($contact->tel,'3'); ?> value="<?php echo $contact->tel; ?>" />
</td>
</tr>
<td align="right" valign="middle">
<font size="3" face="Verdana, Arial, Helvetica, sans-serif">Sujet <b>*</b> :</font>
</td>
<td>
<input type="text" name="sujet" size="50" <?php $contact->inputTrue($contact->sujet); ?> value="<?php echo $contact->sujet; ?>" />
</td>
</tr>
<tr>
<td height="181" align="right" valign="top">
<font size="3" face="Verdana, Arial, Helvetica, sans-serif">Message <b>*</b> : </font>
</td>
<td valign="top">
<textarea name="message" cols="47" <?php $contact->inputTrue($contact->message); ?> rows="10" ><?php echo $contact->message; ?></textarea>
</td>
</tr>
<tr>
<td>
</td>
<td valign="TOP">
(<b>*</b>) Champ obligatoire.
</td>
</tr>
<tr>
<td>
</td>
<td valign="TOP">
<input type="submit" style = "font-family: verdana;padding: 5px 45px 5px 45px;border: solid #000000 2px;font-size: 8pt;color: #ffffff;background-color: #32269F" name="envoyer" value="Envoyer" />
</td>
</tr>
</table>
</form>
</div>
<?php
}
?>
<?php /* FOMULAIRE FIN*/ ?>
Historique
- 12 avril 2010 16:36:50 :
- MaJ
- 19 avril 2010 15:12:57 :
- Correction d'orthographe.
Sources du même auteur
Sources de la même categorie
VALIDATEUR DE FORMULAIREVALIDATEUR DE FORMULAIREJ'ai codé cet ensemble de classes pour accélérer la création de formulaire sans l'alourdir avec une classe la plus simple possible d'utilisation.
J'a...
par Reldan
SUIVI SERVICE CLIENT PHPSUIVI SERVICE CLIENT PHP Bonjour. Voici mon premier dev en PHP.
Il reste encore beaucoup de travail a faire, afin de le finir, en y incluant par exemple tout e la partie bas...
par hige52
POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COMPOO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM Il y a de nombreuses sources sur les formulaire de newsetter, je propose en plus la vidéo pour l'explication de la source, merci.
Voici le tutorial...
par mtrix000
SELECTEUR DE NOTESELECTEUR DE NOTEUne classe Php et le plugin jQuery correspondant pour un sélecteur de note simplissime d'utilisation.
Rien de bien novateur mais je n'ai pas trouvé d...
par Reldan
ESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQLESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQLvoici un espace membre qu'on peut qualifier de très simple, il n'utilise pas de bdd, ni mysql il est plus fait pour de petits sites, il n'y a rien d'a...
par sartoz
Commentaires et avis
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|