Skip to content
Extraits de code Groupes Projets
utils.php 31,5 ko
Newer Older

	//
	// Sommes-nous dans l'empire du Mal ?
	// (ou sous le signe du Pingouin, ascendant GNU ?)
	//

	if (strpos($_SERVER['SERVER_SOFTWARE'], '(Win') !== false)
		define ('os_serveur', 'windows');

	//
	// Infos sur le fichier courant
	//

	// Compatibilite avec serveurs ne fournissant pas $REQUEST_URI
	if (!$GLOBALS['REQUEST_URI']) {
		$GLOBALS['REQUEST_URI'] = $PHP_SELF;
		if ($_SERVER['QUERY_STRING'] AND !strpos($_SERVER['REQUEST_URI'], '?'))
			$GLOBALS['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
	}


	// tidy en ligne de commande (si on ne l'a pas en module php,
	// ou si le module php ne marche pas)
	// '/bin/tidy' ou '/usr/local/bin/tidy' ou tout simplement 'tidy'
	#define('_TIDY_COMMAND', 'tidy');

	//
	// Module de lecture/ecriture/suppression de fichiers utilisant flock()
	// (non surchargeable en l'etat ; attention si on utilise include_spip()
	// pour le rendre surchargeable, on va provoquer un reecriture
	// systematique du noyau ou une baisse de perfs => a etudier)
	include_once _DIR_INCLUDE.'inc/flock.php';


	// Lire les meta cachees
	if (lire_fichier(_DIR_SESSIONS . 'meta_cache.txt', $meta))
		$GLOBALS['meta'] = @unserialize($meta);
	// en cas d'echec refaire le fichier
	if (!is_array($GLOBALS['meta']) AND _FILE_CONNECT) {
Fil's avatar
Fil a validé
		include_spip('inc/meta');
	// supprimer le noyau si on recalcul
	if ($_REQUEST['var_mode']) {
		$GLOBALS['meta']['noyau'] = array();
		define('ecrire_noyau', 1);
	}

	// Langue principale du site
	$GLOBALS['langue_site'] = $GLOBALS['meta']['langue_site'];
Fil's avatar
Fil a validé
	if (!$GLOBALS['langue_site']) include_spip('inc/lang');
	$GLOBALS['spip_lang'] = $GLOBALS['langue_site'];

	// Verifier le visiteur
	verifier_visiteur();
}

//
// Gerer les variables de personnalisation, qui peuvent provenir
// des fichiers d'appel, en verifiant qu'elles n'ont pas ete passees
// par le visiteur (sinon, pas de cache)
//
function tester_variable($var, $val){
Fil's avatar
Fil a validé
	if (!isset($GLOBALS[$var]))
Fil's avatar
Fil a validé

	if (
		$_REQUEST[$var] !== NULL
		AND $GLOBALS[$var] == $_REQUEST[$var]
Fil's avatar
Fil a validé
	)
		die ("tester_variable: $var interdite");
// Annuler les magic quotes \' sur GET POST COOKIE et GLOBALS ;
// supprimer aussi les eventuels caracteres nuls %00, qui peuvent tromper
// la commande is_readable('chemin/vers/fichier/interdit%00truc_normal')
function spip_desinfecte(&$t) {
	static $magic_quotes;
	if (!isset($magic_quotes))
		$magic_quotes = @get_magic_quotes_gpc();

	foreach ($t as $key => $val) {
		if (is_string($t[$key])) {
			if ($magic_quotes)
				$t[$key] = stripslashes($t[$key]);
			$t[$key] = str_replace(chr(0), '-', $t[$key]);
		// traiter aussi les "texte_plus" de articles_edit
		else if ($key == 'texte_plus' AND is_array($t[$key]))
			spip_desinfecte($t[$key]);
// Authentifier le visiteur s'il s'annonce
// Rq: pour que cette fonction marche depuis mes_options elle a besoin
// que quelques petites constantes soient deja initialisees
function verifier_visiteur() {
	define('_DIR_SESSIONS', _DIR_RESTREINT . "data/");
	if ($_COOKIE['spip_session'] OR
	($_SERVER['PHP_AUTH_USER']  AND !$GLOBALS['ignore_auth_http'])) {
Fil's avatar
Fil a validé
		include_spip('inc/session');
		verifier_session_visiteur();
	}
}


//
// INITIALISER LES CONSTANTES ET LES VARIABLES SYSTEMES DE SPIP
//
spip_initialisation();