squellete2
[aidenligne_francais_universite.git] / ecrire / action / logout.php
CommitLineData
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
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15include_spip('inc/cookie');
16
17// http://doc.spip.org/@action_logout_dist
18function 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?>