public attr / function, constructeurs __construct
[mtweb] / mw / app / controllers / forms / contact.php
1 <?php
2
3   class mw_forms_contact extends mw_controller{
4
5     public function index(){
6       $env = $this->env();
7       if($env->config("contact_form") && $env->config("email")){
8         if($env->config("captcha")){
9           if(file_exists($env->path("mw_dir")."libs/ptitcaptcha.php")){
10             require $env->path("mw_dir")."libs/ptitcaptcha.php";
11           }
12           else{
13             $env->erreur("fichier du captcha introuvable");
14             return;
15           }
16         }
17         $message = array(
18           "email" => "",
19           "message" => ""
20         );
21         if($_POST){
22           $message["email"] = $_POST["email"];
23           $message["message"] = $_POST["message"];
24           if(
25             $this->__send_form(
26               $message["email"],
27               "[".$env->config("site_name")."] nouveau message",
28               $message["message"],
29               $env->config("email"),
30               $env->config("captcha")
31             )
32           ){
33             $env->redirect(
34               $env->url("index"),
35               "Le message a &eacute;t&eacute; envoy&eacute;",
36               2
37             );
38           }
39         }
40         $env->set_out("message", $message);
41       }
42       else $env->run("index");
43     }
44
45     public function __send_form($from, $titre, $message, $dest, $captcha){
46       $env = $this->env();
47       $env->set_out("ENVOYE", false);
48       if(!$captcha || PtitCaptchaHelper::checkCaptcha()){
49         if($from){
50           if($dest){
51             if(filter_var($from, FILTER_VALIDATE_EMAIL)){
52               if(
53                 @mail(
54                   $dest,
55                   $titre,
56                   $message,
57                    "From: ".$from."\r\n"
58                   ."Reply-To: ".$from."\r\n"
59                 )
60               ){
61                 $env->set_out("ENVOYE", true);
62                 return true;
63               }
64               else $env->erreur("Erreur &agrave; l'envoi du mail");
65             }
66             else $env->message("Votre email ne semble pas etre valide");
67           }
68           else $env->erreur("Impossible de trouver l'email du destinataire");
69         }
70         else $env->message("merci de pr&eacute;ciser un email");
71       }
72       else $env->message("anti-spam incorrect");
73       return false;
74     }
75
76   }