0c5ae3606ded6b9974e61373d2db365055746885
[velocampus/web/www.git] / www / ecrire / action / logout.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2011 *
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 $visiteur_session, $ignore_auth_http;
21 $logout =_request('logout');
22 $url = _request('url');
23 // cas particulier, logout dans l'espace public
24 if ($logout == 'public' AND !$url)
25 $url = url_de_base();
26
27 // seul le loge peut se deloger (mais id_auteur peut valoir 0 apres une restauration avortee)
28 if (is_numeric($visiteur_session['id_auteur'])) {
29 include_spip('inc/auth');
30 auth_trace($visiteur_session, '0000-00-00 00:00:00');
31 // le logout explicite vaut destruction de toutes les sessions
32 if (isset($_COOKIE['spip_session'])) {
33 $session = charger_fonction('session', 'inc');
34 $session($visiteur_session['id_auteur']);
35 spip_setcookie('spip_session', $_COOKIE['spip_session'], time()-3600);
36 }
37 // si authentification http, et que la personne est loge,
38 // pour se deconnecter, il faut proposer un nouveau formulaire de connexion http
39 if (isset($_SERVER['PHP_AUTH_USER']) AND !$ignore_auth_http AND $GLOBALS['auth_can_disconnect']) {
40 ask_php_auth(_T('login_deconnexion_ok'),
41 _T('login_verifiez_navigateur'),
42 _T('login_retour_public'),
43 "redirect=". _DIR_RESTREINT_ABS,
44 _T('login_test_navigateur'),
45 true);
46
47 }
48 }
49
50 // Rediriger en contrant le cache navigateur (Safari3)
51 include_spip('inc/headers');
52 redirige_par_entete($url
53 ? parametre_url($url, 'var_hasard', uniqid(rand()), '&')
54 : generer_url_public('login'));
55 }
56
57 ?>