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