source: spip-zone/_squelettes_/escal/branche_V3/formulaires/contact.php @ 79913

Last change on this file since 79913 was 79913, checked in by jcvilleneuve@…, 7 years ago

EscalV3 : corrections mineures

File size: 6.4 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5
6
7function formulaires_contact_charger_dist(){
8        $valeurs = array(
9            'nom'=>'',
10            'prenom'=>'',
11            'email'=>'',
12            'champsup1'=>'',
13            'champsup2'=>'',
14            'sujet'=>'',
15            'checkbox'=>'',
16            'Antispam'=>'',
17            'message'=>''
18        );
19       
20        return $valeurs;
21}
22
23function formulaires_contact_verifier_dist(){
24        include_spip('inc/config');
25        include_spip('inc/filtres');
26       
27        $erreurs = array();
28       
29        // verifier que les champs nom et prénom sont bien la :
30        foreach(array('nom','prenom') as $obligatoire)
31                if (!_request($obligatoire)) $erreurs[$obligatoire] = _T('info_obligatoire_02'); 
32       
33
34                                       
35        // Si le champ mail est activé dans la configuration de escal
36        if(lire_config('escal/config/contactmail') == 'oui'){
37            $email = _request('email');
38            // verifier si un email a été saisi
39            if (!_request('email')) {
40                    $erreurs['email'] = _T('info_obligatoire_02');       
41            }
42            // Vérifier que c'est une adresse valide
43            else if(!preg_match("#^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-_.]?[0-9a-z])*\\.[a-z]{2,4}$#",$email)){
44                    $erreurs['email'] = _T('escal:contact_alerte_mail');
45            }
46        }
47       
48        // Si les autres champs sont activés dans la configuration de escal
49        if (!_request('champsup1') AND lire_config('escal/config/champsup1') == 'oui' AND lire_config('escal/config/champsup1oblig') == 'oui' ) 
50              $erreurs['champsup1'] = _T('info_obligatoire_02');             
51        if (!_request('champsup2') AND lire_config('escal/config/champsup2') == 'oui' AND lire_config('escal/config/champsup2oblig') == 'oui' ) 
52              $erreurs['champsup2'] = _T('info_obligatoire_02'); 
53        if (!_request('sujet') AND lire_config('escal/config/radio') == 'oui' AND lire_config('escal/config/radiooblig') == 'oui' ) 
54              $erreurs['sujet'] = _T('info_obligatoire_02');
55        if (!_request('checkbox') AND lire_config('escal/config/checkbox') == 'oui' AND lire_config('escal/config/checkboxoblig') == 'oui' ) 
56              $erreurs['checkbox'] = _T('info_obligatoire_02');       
57       
58       
59        // vérification du message       
60        $test_message = nocode(_request('message'));
61            // verifier si un message a été saisi
62            if (!_request('message')) {
63                    $erreurs['message'] = _T('escal:contact_alerte_message');       
64            }
65            // Vérifier que c'est un message valide
66            else if($test_message==FALSE){
67                    $erreurs['message']=_T('escal:contact_alerte_interdit').$test_message;
68            }                   
69       
70        // message général si oubli ou erreur
71        if (count($erreurs))
72                $erreurs['message_erreur'] = _T('escal:contact_alerte_entete');
73               
74        return $erreurs;
75}
76
77
78function formulaires_contact_traiter_dist(){
79   
80        include_spip('inc/config');
81       
82        $champs = array(
83            'nom'  => _request('nom'),
84            'prenom' => _request('prenom'),
85            'email' => _request('email'),
86            'message'=> _request('message'),
87            'champsup1'=>_request('champsup1'),
88            'champsup2'=>_request('champsup2'),
89            'sujet'=>_request('sujet'),
90            'checkbox'=>_request('checkbox'),
91            'anstispam'=>_request('Antispam'),
92        );
93       
94        $nom_site = extraire_multi($GLOBALS['meta']["nom_site"]); 
95        $email_webmaster = $GLOBALS['meta']['email_webmaster'];
96        $email_to= lire_config('escal/config/destinataire').",".$email_webmaster;
97        $sujet = _T('escal:page_contact2')." : ".$nom_site;
98        $email_from = $champs['email'];
99
100
101       
102        $message =  "<b>"._T('escal:envoi_mail_nom')."</b>".clean($champs['nom'])."\n";
103        $message .= "<b>"._T('escal:envoi_mail_prenom')."</b>".clean($champs['prenom'])."\n\n\n";
104         
105       
106        if (lire_config('escal/config/champsup1') == 'oui') {
107            $message .= "<b>"._T_ou_typo(lire_config('escal/config/titrechampsup1'))."</b>";
108            $message .= clean($champs['champsup1'])."\n\n";
109        }
110       
111        if (lire_config('escal/config/champsup2') == 'oui') {
112            $message.= "<b>"._T_ou_typo(lire_config('escal/config/titrechampsup2'))."</b>";
113            $message.= clean($champs['champsup2'])."\n\n";
114        }
115       
116        if (lire_config('escal/config/radio') == 'oui') {
117            $message.= "<b>"._T('escal:envoi_mail_motif')."</b>";
118            $message.= clean($champs['sujet'])."\n\n";
119        }
120       
121        if (lire_config('escal/config/checkbox') == 'oui') {
122            $message .= "<b>"._T_ou_typo(lire_config('escal/config/titrecheckbox'))."</b>";
123            if (is_array($champs['checkbox'])) {
124              $message .= implode(" - ",$champs['checkbox'])."\n\n";
125            }
126        }
127       
128        $message .= "<b>"._T('escal:envoi_mail_message')."</b>"."\n ".clean($champs['message'])."\n\n";
129
130             
131        if ($champs['antispam']=='' ){
132            $envoyer_mail = charger_fonction('envoyer_mail','inc');
133            $corps = array(
134                'texte'=> supprimer_tags($message),
135                'from'=> $email_from,
136                'html'=> preg_replace('#([\n])+#','<br />',$message),
137                );
138            // http://code.spip.net/autodoc/tree/ecrire/inc/envoyer_mail.php.html#function_inc_envoyer_mail_dist
139            $envoyer_mail($email_to,$sujet,$corps);
140            return array(
141                'message_ok'=>_T('escal:contact_retour_commentaire')."\n"."<strong>". _request('email')."</strong>"
142                );
143        }else{
144            return array('message_erreur'=>'Pas de robots ici !!');
145        }
146
147       
148}
149// Vérification basique d'insertion de code pour la fonction vérifier
150function nocode($text){
151    if(!preg_match("/[]%~#`$&|}{^[><]/",$text))
152        return trim($text);
153    else
154        return FALSE;
155}
156// Nettoyage minimal pour les champs textes input
157function clean($text){
158    $text = htmlentities(trim($text));
159    return $text;
160}
161// Présentation du message reçu
162function presente($txt){
163    $avant = "<span class=\"envoi-mail\"> " ;
164    $apres = "</span>" ;
165      $txt = $avant.$txt.$apres;
166    return $txt;
167}
168
169?>
Note: See TracBrowser for help on using the repository browser.