/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2014 *
+ * Copyright (c) 2001-2016 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
// Fonctions de fabrication des URL des scripts de Spip
//
/**
- * l'URL de base du site, sans se fier a meta(adresse_site) qui
- * peut etre fausse (sites a plusieurs noms d'hotes, deplacements, erreurs)
+ * L'URL de base du site, en priorité sans se fier a meta(adresse_site) qui
+ * peut etre fausse (sites a plusieurs noms d'hotes, deplacements, erreurs).
+ * En dernier recours, lorsqu'on ne trouve rien, on utilise adresse_site comme fallback.
* Note : la globale $profondeur_url doit etre initialisee de maniere a
* indiquer le nombre de sous-repertoires de l'url courante par rapport a la
* racine de SPIP : par exemple, sur ecrire/ elle vaut 1, sur sedna/ 1, et a
OR (isset($_SERVER['HTTPS']) AND
test_valeur_serveur($_SERVER['HTTPS']))
) ? 'https' : 'http';
- # note : HTTP_HOST contient le :port si necessaire
+ // note : HTTP_HOST contient le :port si necessaire
$host = $_SERVER['HTTP_HOST'];
+ // si on n'a pas trouvé d'hôte du tout, en dernier recours on utilise adresse_site comme fallback
+ if (is_null($host) and isset($GLOBALS['meta']['adresse_site'])) {
+ $host = $GLOBALS['meta']['adresse_site'];
+ if ($scheme = parse_url($host, PHP_URL_SCHEME)) {
+ $http = $scheme;
+ $host = str_replace("{$scheme}://", '', $host);
+ }
+ }
if (isset($_SERVER['SERVER_PORT'])
AND $port=$_SERVER['SERVER_PORT']
AND strpos($host,":")==false){
#if (!defined('_SPIP_LOCK_MODE')) define('_SPIP_LOCK_MODE',2); // utiliser le nfslock de spip mais link() est tres souvent interdite
}
+ // PHP_VERSION_ID dispo depuis PHP 5.2.7
+ if (!defined('PHP_VERSION_ID')) {
+ $version = explode('.',PHP_VERSION);
+ define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
+ }
+
//
// Module de lecture/ecriture/suppression de fichiers utilisant flock()
// (non surchargeable en l'etat ; attention si on utilise include_spip()
spip_desinfecte($_REQUEST);
// Par ailleurs on ne veut pas de magic_quotes au cours de l'execution
- @set_magic_quotes_runtime(0);
+ if (PHP_VERSION_ID<50300) {
+ @set_magic_quotes_runtime(0);
+ }
// Si les variables sont passees en global par le serveur,
// il faut faire quelques verifications de base
// on verifie que la memoire est suffisante pour le compactage css+js pour eviter la page blanche
// il y aura d'autres problemes et l'utilisateur n'ira pas tres loin, mais ce sera plus comprehensible qu'une page blanche
if (test_espace_prive() AND _MEMORY_LIMIT_MIN>8){
- if ($memory = trim(ini_get('memory_limit'))){
+ if ($memory = trim(ini_get('memory_limit')) and $memory != -1) {
$unit = strtolower(substr($memory,strlen($memory/1),1));
switch($unit) {
// Le modifieur 'G' est disponible depuis PHP 5.1.0