Commit | Line | Data |
---|---|---|
c495c100 P |
1 | <?php |
2 | ||
3 | /***************************************************************************\ | |
4 | * SPIP, Systeme de publication pour l'internet * | |
5 | * * | |
6 | * Copyright (c) 2001-2007 * | |
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 | if (!defined("_ECRIRE_INC_VERSION")) return; | |
14 | ||
15 | include_spip('inc/cookie'); | |
16 | ||
17 | // http://doc.spip.org/@action_logout_dist | |
18 | function action_logout_dist() | |
19 | { | |
20 | global $auteur_session, $ignore_auth_http; | |
21 | $logout =_request('logout'); | |
22 | $url = _request('url'); | |
23 | spip_log("logout $logout $url" . $auteur_session['id_auteur']); | |
24 | // cas particulier, logout dans l'espace public | |
25 | if ($logout == 'public' AND !$url) | |
26 | $url = url_de_base(); | |
27 | ||
28 | // seul le loge peut se deloger (mais id_auteur peut valoir 0 apres une restauration avortee) | |
29 | if (is_numeric($auteur_session['id_auteur'])) { | |
30 | spip_query("UPDATE spip_auteurs SET en_ligne = DATE_SUB(NOW(),INTERVAL 15 MINUTE) WHERE id_auteur = ".$auteur_session['id_auteur']); | |
31 | // le logout explicite vaut destruction de toutes les sessions | |
32 | if ($_COOKIE['spip_session']) { | |
33 | $session = charger_fonction('session', 'inc'); | |
34 | $session($auteur_session['id_auteur']); | |
35 | preg_match(',^[^/]*//[^/]*(.*)/$,', | |
36 | url_de_base(), | |
37 | $r); | |
38 | spip_setcookie('spip_session', '', -1,$r[1]); | |
39 | spip_setcookie('spip_session', '', -1); | |
40 | } | |
41 | if ($_SERVER['PHP_AUTH_USER'] AND !$ignore_auth_http) { | |
42 | include_spip('inc/actions'); | |
43 | if (verifier_php_auth()) { | |
44 | ask_php_auth(_T('login_deconnexion_ok'), | |
45 | _T('login_verifiez_navigateur'), | |
46 | _T('login_retour_public'), | |
47 | "redirect=". _DIR_RESTREINT_ABS, | |
48 | _T('login_test_navigateur'), | |
49 | true); | |
50 | exit; | |
51 | } | |
52 | } | |
53 | } | |
54 | redirige_par_entete($url ? $url : generer_url_public('login')); | |
55 | } | |
56 | ?> |