diff --git a/lodel/scripts/class.errors.php b/lodel/scripts/class.errors.php
index 3106e7387..a3b4a0156 100644
--- a/lodel/scripts/class.errors.php
+++ b/lodel/scripts/class.errors.php
@@ -73,8 +73,9 @@ public function __construct($errstr, $errno, $errfile, $errline, $http_code = 50
{
$sujet = "[BUG] LODEL ".C::get('version', 'cfg')." - ".C::get('site', 'cfg');
$contenu = "Erreur sur la page ";
- if (isset($_SERVER['HTTP_HOST']))
- $contenu .= "http://".$_SERVER['HTTP_HOST'].($_SERVER['SERVER_PORT'] != 80 ? ":". $_SERVER['SERVER_PORT'] : '').$_SERVER['REQUEST_URI']." (' ".$_SERVER["REMOTE_ADDR"]." ')\n";
+ if (C::get('siteurl'))
+ $contenu .= dirname(C::get('siteurl')) . $_SERVER['REQUEST_URI'];
+
$contenu .= (E_USER_ERROR == $this->code || E_USER_NOTICE == $this->code || E_USER_WARNING == $this->code) ? '' : 'PHP ';
$contenu .= "Error ".(isset(self::$type[$this->code]) ? "(".self::$type[$this->code].")" : '')." in file '".$this->file."' on line ".$this->line." : ".$this->message;
@mail(C::get('contactbug', 'cfg'), $sujet, $contenu);
diff --git a/lodel/scripts/class.siteManage.php b/lodel/scripts/class.siteManage.php
index 4f2f42697..c3d971594 100644
--- a/lodel/scripts/class.siteManage.php
+++ b/lodel/scripts/class.siteManage.php
@@ -265,11 +265,11 @@ function manageSite()
C::set('path', '/'. $name);
}
}
-
+
if (!C::get('url')) {
- C::set('url', 'http://'. $_SERVER['SERVER_NAME']. ($_SERVER['SERVER_PORT'] && $_SERVER['SERVER_PORT'] != "80" ? ':'. $_SERVER['SERVER_PORT'] : ""). preg_replace("/\blodeladmin\/.*/", '', $_SERVER['REQUEST_URI']). substr(C::get('path'), 1));
+ C::set('url', dirname(C::get('currenturl'), 2) . C::get('path'));
}
-
+
if (C::get('reinstall')) {
$status = -32;
}
diff --git a/lodel/scripts/context.php b/lodel/scripts/context.php
index 8d9202399..7b1265ef8 100644
--- a/lodel/scripts/context.php
+++ b/lodel/scripts/context.php
@@ -87,6 +87,7 @@ private function __construct(array &$cfg)
self::$filter = null;
self::$_cfg = $cfg; // set the config vars
self::$_cfg['https'] = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? true : false);
+ self::$_cfg['base_url'] = isset($_SERVER['SERVER_NAME']) ? "${_SERVER['REQUEST_SCHEME']}://${_SERVER['SERVER_NAME']}" . (!in_array($_SERVER['SERVER_PORT'], ['80', '443']) ? $_SERVER['SERVER_PORT'] : '') : '';
$GLOBALS['tp'] = $GLOBALS['tableprefix'] = $cfg['tableprefix'];
defined('SITEROOT') || define('SITEROOT', '');
function_exists('cache_get') || include 'cachefunc.php';
@@ -325,7 +326,7 @@ function_exists('validfield') || include 'validfunc.php';
self::$_context['version'] = self::$_cfg['version'];
self::$_context['shareurl'] = self::$_cfg['shareurl'];
self::$_context['extensionscripts'] =self::$_cfg['extensionscripts'];
- self::$_context['currenturl'] = isset($_SERVER['SERVER_NAME']) ? 'http'.(self::$_cfg['https'] ? 's' : '').'://'. $_SERVER['SERVER_NAME']. ($_SERVER['SERVER_PORT'] != 80 ? ':'. $_SERVER['SERVER_PORT'] : ''). $_SERVER['REQUEST_URI'] : '';
+ self::$_context['currenturl'] = self::$_cfg['base_url'] . $_SERVER['REQUEST_URI'];
self::$_context['siteroot'] = (defined('SITEROOT') ? SITEROOT : '');
self::$_context['sharedir'] = self::$_cfg['sharedir'];
self::$_context['tp'] = self::$_context['tableprefix'] = self::$_cfg['tableprefix'];
diff --git a/lodel/scripts/logic/class.users.php b/lodel/scripts/logic/class.users.php
index 1418d395b..1e7c728b8 100644
--- a/lodel/scripts/logic/class.users.php
+++ b/lodel/scripts/logic/class.users.php
@@ -393,7 +393,7 @@ protected function _sendPrivateInformation(&$context)
$context['sitetitle'] = $row['title'];
$context['islodeladmin'] = false;
} else { // lodeladmin
- $context['siteurl'] = 'http://'. $_SERVER['SERVER_NAME']. ($_SERVER['SERVER_PORT']!=80 ? ':'. $_SERVER['SERVER_PORT'] : '').dirname($_SERVER['REQUEST_URI']);
+ $context['siteurl'] = dirname($context['currenturl'], 2);
$context['sitetitle'] = $context['siteurl'];
$context['islodeladmin'] = true;
}
diff --git a/lodel/scripts/view.php b/lodel/scripts/view.php
index b3077b911..2f9ddbf31 100644
--- a/lodel/scripts/view.php
+++ b/lodel/scripts/view.php
@@ -160,6 +160,7 @@ public function back($back = 1)
global $db;
$idsession = C::get('idsession', 'lodeluser');
+
$offset = $back-1;
usemaindb();
// selectionne les urls dans la pile grâce à l'idsession et suivant la
@@ -172,16 +173,16 @@ public function back($back = 1)
or trigger_error('SQL ERROR :
'.$GLOBALS['db']->ErrorMsg(), E_USER_ERROR);
$row = $result->fetchRow();
$result->Close();
- $id = $row['id'];
+ $id = $row['id'];
$newurl = $row['url'];
-
+
if ($id) {
$db->execute(lq("
DELETE FROM #_TP_urlstack
WHERE id>='{$id}' AND idsession='{$idsession}' AND site='".$this->_site."'"))
or trigger_error('SQL ERROR :
'.$GLOBALS['db']->ErrorMsg(), E_USER_ERROR);
- $newurl = 'http'.(C::get('https', 'cfg') ? 's' : '').'://'. $_SERVER['SERVER_NAME']. ($_SERVER['SERVER_PORT'] != 80 ? ":". $_SERVER['SERVER_PORT'] : ''). $newurl;
+ $newurl = dirname(C::get('siteurl')) . $newurl;
} else {
$ext = defined('backoffice') || defined('backoffice-lodeladmin') ? 'php' : C::get('extensionscripts');
$newurl = "index.". $ext;
diff --git a/lodel/src/lodel/admin/login.php b/lodel/src/lodel/admin/login.php
index e972ce577..a54ab70c7 100644
--- a/lodel/src/lodel/admin/login.php
+++ b/lodel/src/lodel/admin/login.php
@@ -18,10 +18,11 @@
C::set('env', 'admin');
$login = C::get('login');
-
+
if($login && C::get('passwd') && C::get('passwd2')) {
include 'loginfunc.php';
$retour = change_passwd(C::get('datab'), $login, C::get('old_passwd'), C::get('passwd'), C::get('passwd2'));
+
switch($retour)
{
case true:
@@ -46,7 +47,7 @@
break;
} else {
check_internal_messaging();
- header ("Location: http".(C::get('https', 'cfg') ? 's' : '')."://". $_SERVER['SERVER_NAME']. ($_SERVER['SERVER_PORT'] != 80 ? ':'. $_SERVER['SERVER_PORT'] : ''). C::get('url_retour'));
+ header("Location: " . $context['siteurl'] . C::get('url_retour'));
}
}
break;
@@ -88,7 +89,7 @@
}
}
check_internal_messaging();
- header ("Location: http".(C::get('https', 'cfg') ? 's' : '')."://". $_SERVER['SERVER_NAME']. ($_SERVER['SERVER_PORT'] != 80 ? ':'. $_SERVER['SERVER_PORT'] : ''). C::get('url_retour'));
+ header("Location: " . $context['siteurl'] . C::get('url_retour'));
} while (0);
}
@@ -112,4 +113,4 @@
echo $e->getContent();
exit();
}
-?>
\ No newline at end of file
+?>