source: spip-zone/_core_/branches/spip-3.2/plugins/dist/formulaires/ecrire_auteur.php

Last change on this file was 114014, checked in by cedric@…, 9 months ago

Report de r114013 : Envoyer des mails en from d'un inconnu c'est de l'usurpation d'identite et ca peut vous conduire au commissariat, en plus d'etre vu comme un SPAM par beaucoup de fournisseur de mail. On laisse donc le from par defaut du site, mais un mets un Reply-To a l'envoyeur et l'email de l'envoyeur suppose (mais pas verifie) en signature du message. C'est plus robuste et moins sujet a litige

File size: 3.4 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2019                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13
14if (!defined('_ECRIRE_INC_VERSION')) {
15        return;
16}
17
18function formulaires_ecrire_auteur_charger_dist($id_auteur, $id_article, $mail) {
19        include_spip('inc/texte');
20        $puce = definir_puce();
21        $valeurs = array(
22                'sujet_message_auteur' => '',
23                'texte_message_auteur' => '',
24                'email_message_auteur' => isset($GLOBALS['visiteur_session']['email']) ?
25                        $GLOBALS['visiteur_session']['email'] : '',
26                'nobot' => '',
27        );
28
29        // id du formulaire (pour en avoir plusieurs sur une meme page)
30        $valeurs['id'] = ($id_auteur ? '_' . $id_auteur : '_ar' . $id_article);
31        // passer l'id_auteur au squelette
32        $valeurs['id_auteur'] = $id_auteur;
33        $valeurs['id_article'] = $id_article;
34
35        return $valeurs;
36}
37
38function formulaires_ecrire_auteur_verifier_dist($id_auteur, $id_article, $mail) {
39        $erreurs = array();
40        include_spip('inc/filtres');
41
42        if (!$adres = _request('email_message_auteur')) {
43                $erreurs['email_message_auteur'] = _T('info_obligatoire');
44        } elseif (!email_valide($adres)) {
45                $erreurs['email_message_auteur'] = _T('form_prop_indiquer_email');
46        } else {
47                include_spip('inc/session');
48                session_set('email', $adres);
49        }
50
51        if (!$sujet = _request('sujet_message_auteur')) {
52                $erreurs['sujet_message_auteur'] = _T('info_obligatoire');
53        } elseif (!(strlen($sujet) > 3)) {
54                $erreurs['sujet_message_auteur'] = _T('forum:forum_attention_trois_caracteres');
55        }
56
57        if (!$texte = _request('texte_message_auteur')) {
58                $erreurs['texte_message_auteur'] = _T('info_obligatoire');
59        } elseif (!(strlen($texte) > 10)) {
60                $erreurs['texte_message_auteur'] = _T('forum:forum_attention_dix_caracteres');
61        }
62
63        if (_request('nobot')) {
64                $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
65        }
66
67        if (!_request('confirmer') and !count($erreurs)) {
68                $erreurs['previsu'] = ' ';
69                $erreurs['message_erreur'] = '';
70        }
71
72        return $erreurs;
73}
74
75function formulaires_ecrire_auteur_traiter_dist($id_auteur, $id_article, $mail) {
76
77        $adres = _request('email_message_auteur');
78        $sujet = _request('sujet_message_auteur');
79
80        $sujet = '[' . supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])) . '] '
81                . _T('info_message_2') . ' '
82                . $sujet;
83        $texte = _request('texte_message_auteur');
84        $texte .= "\n-- $adres";
85
86        $texte .= "\n\n-- " . _T('envoi_via_le_site') . ' '
87                . supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))
88                . ' (' . $GLOBALS['meta']['adresse_site'] . "/) --\n";
89        $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
90
91        $corps = array(
92                'texte' => $texte,
93                'repondre_a' => $adres,
94                'headers' => array(
95                        "X-Originating-IP: " . $GLOBALS['ip'],
96                ),
97        );
98
99        if ($envoyer_mail($mail, $sujet, $corps)) {
100                $message = _T('form_prop_message_envoye');
101
102                return array('message_ok' => $message);
103        } else {
104                $message = _T('pass_erreur_probleme_technique');
105
106                return array('message_erreur' => $message);
107        }
108}
Note: See TracBrowser for help on using the repository browser.