Newer
Older
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
//
// 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) {
ecrire_metas();
}
// 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'];
$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){
$GLOBALS[$var] = $val;
$_REQUEST[$var] !== NULL
AND $GLOBALS[$var] == $_REQUEST[$var]
// 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'])) {
verifier_session_visiteur();
}
}
//
// INITIALISER LES CONSTANTES ET LES VARIABLES SYSTEMES DE SPIP
//
spip_initialisation();