Skip to content
Extraits de code Groupes Projets
Bifurcation depuis spip / spip
18867 validations de retard le dépôt en amont.
spip_cookie.php3 8,26 Kio
<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2005                                                *
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
 *                                                                         *
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
\***************************************************************************/


include ("ecrire/inc_version.php3");
include_ecrire ("inc_session.php3");


// gerer l'auth http
function auth_http($url, $essai_auth_http) {
	global $_SERVER;
	if ($essai_auth_http == 'oui') {
		if (verifier_php_auth())
			redirige_par_entete($url);
		else {
			$url = quote_amp(urlencode($url));
			ask_php_auth(_T('login_connexion_refusee'),
			_T('login_login_pass_incorrect'), _T('login_retour_site'),
			"url=$url", _T('login_nouvelle_tentative'),
			(ereg(_DIR_RESTREINT_ABS, $url)));
			exit;
		}
	}
	// si demande logout auth_http
	else if ($essai_auth_http == 'logout') {
		ask_php_auth(_T('login_deconnexion_ok'),
		_T('login_verifiez_navigateur'), _T('login_retour_public'),
		"redirect="._DIR_RESTREINT_ABS, _T('login_test_navigateur'), true);
		exit;
	}
}

// rejoue le cookie pour renouveler spip_session
if ($change_session == 'oui') {
	if (verifier_session($spip_session)) {
		// Attention : seul celui qui a le bon IP a le droit de rejouer,
		// ainsi un eventuel voleur de cookie ne pourrait pas deconnecter
		// sa victime, mais se ferait deconnecter par elle.
		if ($auteur_session['hash_env'] == hash_env()) {
			$auteur_session['ip_change'] = false;
			$cookie = creer_cookie_session($auteur_session);
			supprimer_session($spip_session);
			spip_setcookie('spip_session', $cookie);
		}
		@header('Content-Type: image/gif');
		@header('Expires: 0');
		@header("Cache-Control: no-store, no-cache, must-revalidate");
		@header('Pragma: no-cache');
		@header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
		@readfile(_DIR_IMG_PACK . 'rien.gif');
		exit;
	}
}

if ($url)  $url = urldecode($url);

// tentative de connexion en auth_http
if ($essai_auth_http AND !$ignore_auth_http) {
	auth_http(($url ? $url : _DIR_RESTREINT_ABS), $essai_auth_http);
	exit;
}