Esempio n. 1
0
function ecran_securite_fichier_distant($flux) {
	// besoin du 1er appel uniquement
	if($flux['outil']!='ecran_securite' || isset($flux['texte'])) return $flux;
	// fichier global de config (y compris la mutu)
	$flux['fichier_local'] = dirname(cs_spip_file_options(4)).'/ecran_securite.php';
	// fichier local de config
	#$flux['fichier_local'] = dirname(cs_spip_file_options(3)).'/ecran_securite.php';
	return $flux;
}
Esempio n. 2
0
function cs_verif_FILE_OPTIONS($activer=false, $ecriture = false) {
	$include = str_replace('\\','/',realpath(_DIR_CS_TMP.'mes_spip_options.php'));
	$include = "@include_once \"$include\";\nif(\$GLOBALS['cs_spip_options']) define('_CS_SPIP_OPTIONS_OK',1);";
	$inclusion = _CS_SPIP_OPTIONS_A."\n// Please don’t modify; this code is auto-generated\n$include\n"._CS_SPIP_OPTIONS_B;
cs_log("cs_verif_FILE_OPTIONS($activer, $ecriture) : le code d'appel est $include");
	if($fo = cs_spip_file_options(1)) {
		if(lire_fichier($fo, $t)) {
			// verification du contenu inclu
			$ok = preg_match('`\s*('.preg_quote(_CS_SPIP_OPTIONS_A,'`').'.*'.preg_quote(_CS_SPIP_OPTIONS_B,'`').')\s*`ms', $t, $regs);
			// s'il faut une inclusion
			if($activer) {
				// pas besoin de reecrire si le contenu est identique a l'inclusion
				if(($regs[1]==$inclusion)) $ecriture = false;
				$t2 = $ok?str_replace($regs[0], "\n$inclusion\n\n", $t):preg_replace(',<\?(?:php)?\s*,', '<?'."php\n$inclusion\n\n", $t);
			} else {
				$t2 = $ok?str_replace($regs[0], "\n", $t):$t;
			}
cs_log(" -- fichier $fo present. Inclusion " . ($ok?" trouvee".($ecriture?" et remplacee":""):"absente".(($ecriture && $activer)?" mais ajoutee":"")));
			if($ecriture) if($t2<>$t) {
				$ok = ecrire_fichier($fo, $t2);
				if(!$ok) cs_log("ERREUR : l'ecriture du fichier $fo a echoue !");
			}
			return;
		} else cs_log(" -- fichier $fo illisible. Inclusion non permise");
	} else 
		$fo = cs_spip_file_options(2);
	// creation
	if($activer) {
		if($ecriture) $ok=ecrire_fichier($fo, '<?'."php\n".$inclusion."\n\n?".'>');
cs_log(" -- fichier $fo absent. Fichier '$fo' et inclusion ".((!$ecriture || !$ok)?"non ":"")."crees");
	}
}
Esempio n. 3
0
function cs_ecrire_config($regexpr, $replace, $ajout_sinon='') {
	$fo = cs_spip_file_options(1);
	$t='';
	if ($fo && strlen($regexpr) && strlen($replace)) {
		if (lire_fichier($fo, $t) && strlen($t)) {
			$t = preg_replace($regexpr, $replace, $t, 1);
			if(ecrire_fichier($fo, $t)) return;
			else if(defined('_LOG_CS')) cs_log("ERREUR : l'ecriture du fichier $fo a echoue !");
		} else if(defined('_LOG_CS')) cs_log(" -- fichier $fo illisible. Inclusion non permise");
		if(strlen($t)) return;
	}
	// creation
	if(!strlen($ajout_sinon)) return;
	$fo = cs_spip_file_options(2);
	$ok = ecrire_fichier($fo, '<?'."php\n".$ajout_sinon."\n?".'>');
if(defined('_LOG_CS')) cs_log(" -- fichier $fo absent ".($ok?'mais cree avec l\'inclusion':' et impossible a creer'));
}
Esempio n. 4
0
function show_file_options() {
	return cs_canonicalize(str_replace("../", "", _DIR_RESTREINT_ABS).cs_spip_file_options(3));
}