source: spip-zone/_plugins_/contact_libre/trunk/formulaires/contact_libre.php @ 119747

Last change on this file since 119747 was 119747, checked in by peetdu@…, 10 months ago

Nouvelle version majeure pour cause de compatibilité avec la nouvelle version majeure de NoSpam? (V2)

File size: 3.4 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7function formulaires_contact_libre_charger_dist($adresse = null, $url = '', $sujet = '') {
8        include_spip('inc/texte');
9
10        $valeurs = array(
11                'sujet_message'=>$sujet,
12                'texte_message'=>'',
13                'email_message'=>isset($GLOBALS['visiteur_session']['email']) ? $GLOBALS['visiteur_session']['email'] : ''
14        );
15
16        // id du formulaire (pour en avoir plusieurs sur une meme page)
17        $valeurs['id'] = rand(1, 100);
18
19        return $valeurs;
20}
21
22function formulaires_contact_libre_verifier_dist($adresse = null, $url = '', $sujet = '') {
23        $erreurs = array();
24        include_spip('inc/filtres');
25        include_spip('inc/texte');
26
27        if (!$adres = _request('email_message')) {
28                $erreurs['email_message'] = _T('info_obligatoire');
29        } elseif (!email_valide($adres)) {
30                $erreurs['email_message'] = _T('form_prop_indiquer_email');
31        }
32
33        if (!$sujet=_request('sujet_message')) {
34                $erreurs['sujet_message'] = _T('info_obligatoire');
35        } elseif (!(strlen($sujet)>=3)) {
36                $erreurs['sujet_message'] = _T('forum_attention_trois_caracteres', '', array('force'=>false)) ? _T('forum_attention_trois_caracteres') : _T('forum:forum_attention_trois_caracteres');
37        }
38
39        if (!$texte=_request('texte_message')) {
40                $erreurs['texte_message'] = _T('info_obligatoire');
41        }
42
43        if (_request('nobot')) {
44                $erreurs['nobot'] = true;
45        }
46
47        // on traite les spams
48        if (include_spip('inc/nospam')) {
49                $caracteres = nospam_compter_caracteres_utiles($texte);
50                // moins de 10 caracteres sans les liens = spam !
51                if ($caracteres < 10) {
52                        $erreurs['texte_message'] = _T('forum_attention_dix_caracteres', '', array('force'=>false)) ? _T('forum_attention_dix_caracteres') : _T('forum:forum_attention_dix_caracteres');
53                }
54                // on analyse le sujet
55                $infos_sujet = nospam_analyser_spams($sujet);
56                // si un lien dans le sujet = spam !
57                if ($infos_sujet['nombre_liens'] > 0) {
58                        $erreurs['sujet_message'] = _T('nospam:erreur_spam');
59                }
60
61                // on analyse le texte
62                $infos_texte = nospam_analyser_spams($texte);
63                if ($infos_texte['nombre_liens'] > 0) {
64                        // si un lien a un titre de moins de 3 caracteres = spam !
65                        if ($infos_texte['caracteres_texte_lien_min'] < 3) {
66                                $erreurs['texte_message'] = _T('nospam:erreur_spam');
67                        }
68                        // si le texte contient plus de trois liens = spam !
69                        if ($infos_texte['nombre_liens'] >= 3) {
70                                $erreurs['texte_message'] = _T('nospam:erreur_spam');
71                        }
72                }
73        }
74
75        // Si on est pas dans une confirmation et qu'il n'y pas de vraies erreurs on affiche la prévisu du message
76        if (!_request('confirmer') and !count($erreurs)) {
77                $erreurs['previsu']=' ';
78                $erreurs['message_erreur'] = ''; // pas de message d'erreur global si aucune erreur réelle
79        }
80
81        return $erreurs;
82}
83
84function formulaires_contact_libre_traiter_dist($adresse = null, $url = '', $sujet = '') {
85
86        $adres = _request('email_message');
87        $sujet = _request('sujet_message');
88        $texte = _request('texte_message');
89
90        if (is_null($adresse)) {
91                $adresse = lire_config('email_webmaster');
92        }
93
94        $texte .= "\n\n-- "._T('envoi_via_le_site').' '.supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])).' ('.$GLOBALS['meta']['adresse_site']."/) --\n";
95        if ($url) {
96                $texte .= "\n\n-- Depuis la page : ".supprimer_tags($url)." --\n";
97        }
98        $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
99        if ($envoyer_mail($adresse, $sujet, $texte, $adres, 'X-Originating-IP: '.$GLOBALS['ip'])) {
100                return array('message_ok' => _T('form_prop_message_envoye'));
101        } else {
102                return array('message_erreur' => _T('pass_erreur_probleme_technique'));
103        }
104}
Note: See TracBrowser for help on using the repository browser.