contact.inc.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. class contact_controller extends controller{
  3. function view(){
  4. $form = array("nom"=>"", "prenom"=>"", "adresse"=>"", "cp"=>"", "ville"=>"", "tel"=>"", "email"=>"", "objet"=>"", "message"=>"");
  5. $form_required = array("nom", "prenom", "ville", "tel", "email", "objet", "message");
  6. $form_email = array("nom"=>"Nom", "prenom"=>"Prénom", "adresse"=>"ADresse", "cp"=>"Code postal", "ville"=>"Ville", "tel"=>"Téléphone", "email"=>"eMail", "objet"=>"Objet", "message"=>"Message");
  7. // Assignation POST
  8. foreach($_POST as $i=>$j)
  9. if (isset($form[$i]) && is_string($j))
  10. $form[$i] = $j;
  11. // Submit
  12. if (isset($_POST["_contact"]))
  13. {
  14. $form["_submitted"] = true;
  15. // Captcha
  16. if (isset($form["_submitted"]) && (!isset($_POST["_captcha"]) || $_POST["_captcha"] != $_SESSION["captcha"]))
  17. $form["_message"] = "Le code de sécurité que vous avez saisi est invalide (".$_POST["_captcha"]." au lieu de ".$_SESSION["captcha"].")";
  18. // Vérif email
  19. if (!preg_match("/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,3})$/", $form["email"]))
  20. {
  21. $form["_message"] = "L'adresse email que vous avez saisie n'est pas valide";
  22. }
  23. // Champs remplis
  24. foreach($form_required as $i)
  25. {
  26. if (!$form[$i])
  27. {
  28. $form["_message"] = "Veuillez compléter l'ensemble des champs requis";
  29. }
  30. }
  31. // Envoi
  32. if (!isset($form["_message"]))
  33. {
  34. $message_header = "Content-Type: text/plain; charset=utf-8\r\nFrom: ".$form["prenom"]." ".$form["nom"]." <".$form["email"].">\r\n";
  35. $message = "";
  36. foreach($form_email as $i=>$j)
  37. $message .= "$j : ".$form[$i]."\r\n";
  38. if (mail($page["form_email"], "Message en provenance du site Internet", $message, $message_header))
  39. {
  40. $form["_message"] = "Votre message nous a bien été transmis.";
  41. // Sppression des informations
  42. foreach($form_email as $i=>$j)
  43. $form[$i] = "";
  44. unset($form["_submitted"]);
  45. }
  46. else
  47. {
  48. $form["_message"] = "Une erreur est survenue lors de l'envoi de votre message. Veuillez réessayer ultérieurement";
  49. }
  50. }
  51. }
  52. $this->params['form'] = $form;
  53. }
  54. }