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
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
$GLOBALS['flag_gz'] = function_exists("gzencode"); #php 4.0.4
$GLOBALS['flag_ob'] = (function_exists("ob_start")
&& function_exists("ini_get")
&& (@ini_get('max_execution_time') > 0)
&& !strstr(ini_get('disable_functions'), 'ob_'));
$GLOBALS['flag_sapi_name'] = function_exists("php_sapi_name");
$GLOBALS['flag_revisions'] = function_exists("gzcompress");
$GLOBALS['flag_get_cfg_var'] = (@get_cfg_var('error_reporting') != "");
$GLOBALS['flag_upload'] = (!$GLOBALS['flag_get_cfg_var'] ||
(get_cfg_var('upload_max_filesize') > 0));
//
// 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_RESTREINT.'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 file_exists('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();