source: spip-zone/_plugins_/spip_400/spip_2/formulaires/bug_report.php @ 60934

Last change on this file since 60934 was 60934, checked in by piero.wbmstr@…, 9 years ago

Version actuelle (SPIP2)

  • Property svn:executable set to *
File size: 3.3 KB
Line 
1<?php
2
3function formulaires_bug_report_charger_dist($code_erreur='404', $url=false){ 
4        return array(
5                'url_bug' => $url,
6                'code_erreur' => $code_erreur,
7        );
8}
9
10function formulaires_bug_report_verifier_dist($code_erreur='404', $url=false){}
11
12function formulaires_bug_report_traiter_dist($code_erreur='404', $url=false){ 
13        $messages = array();
14        if (!$url) $url = spip_400_self();
15        $typemail = 'bug';
16        include_spip('inc/texte');
17        $sitename = couper($GLOBALS['meta']['nom_site'], 10, '.');
18
19        $sujet = _T('spip_400:report_a_bug_titre_mail', array('code'=>$code_erreur, 'sitename'=>$sitename));
20        $texte = _T('spip_400:report_a_bug_texte_mail', array(
21                'code'=>$code_erreur, 'url'=>$url, 'date'=>date('Y/m/d - H:i:s'),
22        ));
23
24        // Config ou pas ?
25        $mail_sender = $mail_receipt = $GLOBALS['meta']['email_webmaster'];
26        if (function_exists('lire_config')) {
27                $cfg_400 = lire_config('spip_400');
28                if ($cfg_400 && isset($cfg_400['sender_400'])) {
29                        $mail_sender = $cfg_400['sender_400'];
30                }
31                if ($cfg_400 && isset($cfg_400['receipt_400'])) {
32                        $mail_receipt = $cfg_400['receipt_400'];
33                }
34        }
35
36        // Si utilisateur
37        if (isset($GLOBALS["visiteur_session"]) && isset($GLOBALS["visiteur_session"]['id_auteur'])) {
38                if ($code_erreur=='401') {
39                        $typemail = 'auth';
40                        $texte = _T('spip_400:request_auth_texte_mail', array(
41                                'code'=>$code_erreur, 'url'=>$url, 'date'=>date('Y/m/d - H:i:s'), 'user' => $GLOBALS["visiteur_session"]['nom'],
42                        ));
43                }
44                $texte .= "\n\n-- "._T('spip_400:utilisateur_concerne').$GLOBALS["visiteur_session"]['nom'].' ('.$GLOBALS["visiteur_session"]['email'].')';
45        }
46
47        // Infos URL complete
48        $texte .= "\n\n-- "._T('spip_400:url_complete')." : ".$url;
49        if (isset($_SERVER['HTTP_REFERER']))   
50                $texte .= "\n\n-- "._T('spip_400:referer')." : ".$_SERVER['HTTP_REFERER'];
51        file_get_contents($url);
52        if (isset($http_response_header) && is_array($http_response_header) && count($http_response_header)) {
53                $texte .= "\n\n-- "._T('spip_400:http_headers');
54                foreach($http_response_header as $var=>$val)
55                        $texte .= "\n".' #'.$val;
56                $texte .= "\n---- ";
57        }
58
59        // Session
60        if (isset($GLOBALS["visiteur_session"])) {
61                $session_str = '';
62                foreach($GLOBALS["visiteur_session"] as $sess_var=>$sess_val){
63                        if ($sess_val && strlen($sess_val)>0)
64                                $session_str .= "\n".'#'.$sess_var.' => '.$sess_val;
65                }
66                $texte .= "\n\n-- "._T('spip_400:session')."\n"._T('spip_400:session_only_notempty_values').$session_str."\n---- ";
67        }
68
69        // Backtrace PHP
70        @ob_start();
71        @debug_print_backtrace();
72        $backtrace = @ob_get_contents();
73        @ob_end_clean();
74        if ($backtrace)
75                $texte .= "\n\n-- "._T('spip_400:backtrace')."\n".$backtrace."\n---- ";
76
77        // Pied: info site
78        $texte .= "\n\n-- "._T('envoi_via_le_site')
79                ." ".supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))
80                ." (".$GLOBALS['meta']['adresse_site']."/) --\n";
81
82        // Envoi puis retour
83        $envoyer_mail = charger_fonction('envoyer_mail','inc');
84        if ($envoyer_mail($mail_receipt, $sujet, $texte, $mail_sender, "X-Originating-IP: ".$GLOBALS['ip'])) {
85                if ($typemail=='auth') {
86                        $messages['message_ok'] = _T('spip_400:request_auth_message_envoye');
87                } else {
88                        $messages['message_ok'] = _T('spip_400:report_a_bug_message_envoye');
89                }
90        } else {
91                $messages['message_erreur'] = _T('pass_erreur_probleme_technique');
92        }
93
94        // Debug
95//      echo "<pre>"; echo "<br />titre : $sujet"; echo "<br />texte : ".var_export($texte,1); exit;
96        return $messages;
97}
98?>
Note: See TracBrowser for help on using the repository browser.