Formulaire de contact php5, poo, verification + envoi du mail

Soyez le premier à donner votre avis sur cette source.

Vue 21 311 fois - Téléchargée 3 392 fois

Description

J'ai réécri une de mes sources php4 :
http://www.phpcs.com/codes/FORMULAIRE-PHP-VERIFICATION-ENVOI-MAIL_47640.aspx

Source / Exemple :


<?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"> &nbsp;&nbsp; </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> &nbsp; </td> <td valign="TOP"> (<b>*</b>) Champ obligatoire. </td> </tr> <tr> <td> &nbsp; </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*/ ?>

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

salut j’étais opposé par cet erreur

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\pfe\formRquiba\ContactFormulaire.php on line 81

jespere ke vous m'aider o plu tot possible
> zouhair2013
Il faut saisir l'adresse de votre serveur au lien de l'adresse localhost dans le fichier php.ini
Messages postés
1
Date d'inscription
vendredi 16 avril 2010
Statut
Membre
Dernière intervention
23 avril 2010

bon commentaire, ai quand même quelque erreur dessus .
Pourrait -on avoir la version sans erreur?
merci d avance
Pour habiller mon formulaire puis modifier le CSS ??
Avec ce style de formulaire pas besoin de mettre de fichier traitement donc je vois.??
J'aurais besoin de le connecter à une base de donnée cela est il faisable et comment surtout ???
Un autre dernier point, j'ai également réaliser un calendrier dont je pourrais vous montrez le code si j' ai le droit
par contre dessus je n'arrive pas à ce que le calendrier ce mette à jour..Doit- on le connecter sur une base de donnée et dans ce cas comment faire ???
merci beaucoup
merci d 'avance .
Peux t on passé des liens ou j ai mes exemple calendrier ainsi que formulaire merci
Messages postés
3
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
31 mai 2010

Salut, bonne initiative Peut être serait-il judicieux d'utiliser les API filter avec filter validate et sanitize filter_has_var ect .... Ceci dans le but de vraiment faire un script en php5.

Sinon comme le dit uaip l'objet dans ce cas c'est peut être un peu lourd pour un simple envoie de mail.

bonne continuation
Messages postés
31
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
1 novembre 2012

Merci pour tes conseil UAIP,
Et je suis d'accord avec toi !!!

Bonne continuation ;)
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.