1 | <?php |
---|
2 | /** |
---|
3 | */ |
---|
4 | if (!defined("_ECRIRE_INC_VERSION")) return; |
---|
5 | //ini_set('display_errors','1'); error_reporting(E_ALL); |
---|
6 | |
---|
7 | /** |
---|
8 | * Nom du log specifique erreurs HTTP |
---|
9 | */ |
---|
10 | define('SPIP_400_LOGNAME', 'spip_400'); |
---|
11 | |
---|
12 | // |
---|
13 | // Reprise de 'self' standard, sans rien enlever |
---|
14 | // |
---|
15 | function spip_400_self($amp = '&', $root = true) { |
---|
16 | // $url = nettoyer_uri(); |
---|
17 | $url = $GLOBALS['REQUEST_URI']; |
---|
18 | |
---|
19 | // ajouter le cas echeant les variables _POST['id_...'] |
---|
20 | foreach ($_POST as $v => $c) |
---|
21 | if (substr($v,0,3) == 'id_') |
---|
22 | $url = parametre_url($url, $v, $c, '&'); |
---|
23 | |
---|
24 | // eviter les hacks |
---|
25 | $url = htmlspecialchars($url); |
---|
26 | |
---|
27 | // & ? |
---|
28 | if ($amp != '&') |
---|
29 | $url = str_replace('&', $amp, $url); |
---|
30 | |
---|
31 | // Si ca demarre par / => vide |
---|
32 | $url = preg_replace(',^/(.*)?$,', '\1', $url); |
---|
33 | if (!preg_match(',^\w+:,', $url)) { |
---|
34 | $url = url_de_base().$url; |
---|
35 | } |
---|
36 | |
---|
37 | return $url; |
---|
38 | } |
---|
39 | |
---|
40 | /** |
---|
41 | * Ecriture en log specifique des erreurs HTTP |
---|
42 | */ |
---|
43 | function spip_400_log($code=400, $url=null) { |
---|
44 | |
---|
45 | $infos_log = array( $url ); |
---|
46 | if (isset($GLOBALS["visiteur_session"]) && isset($GLOBALS["visiteur_session"]['id_auteur'])) { |
---|
47 | $infos_log[] = "User=[".$GLOBALS["visiteur_session"]['nom'].' - '.$GLOBALS["visiteur_session"]['email']." - stat. '".$GLOBALS["visiteur_session"]['statut']."']"; |
---|
48 | } |
---|
49 | if (isset($_SERVER['HTTP_REFERER'])) |
---|
50 | $infos_log[] = "Referer=[".$_SERVER['HTTP_REFERER']."]"; |
---|
51 | if (isset($_COOKIE['spip_session'])) { |
---|
52 | $infos_log[] = "Sess=[".$_COOKIE['spip_session']."]"; |
---|
53 | } |
---|
54 | |
---|
55 | spip_log("[ERROR HTTP $code] ".join(' ', $infos_log), SPIP_400_LOGNAME); |
---|
56 | return; |
---|
57 | } |
---|
58 | |
---|
59 | ?> |
---|