Hi all,
I was curious to try and work out why this happens on IIS and to try and replicate the fault on my server.
within \install\install.php theres this bit of code which basically checks if a certain session exists and a GET variable.
// session loop-back tester
if (!$_SESSION[’session_test’] && $_GET[’s’] != ’set’) {
$_SESSION[’session_test’] = 1;
$installBaseUrl = (!isset ($_SERVER[’HTTPS’]) || strtolower($_SERVER[’HTTPS’]) != ’on’) ? ’http://’ : ’https://’;
$installBaseUrl .= $_SERVER[’HTTP_HOST’];
if ($_SERVER[’SERVER_PORT’] != 80)
$installBaseUrl = str_replace(’:’ . $_SERVER[’SERVER_PORT’], ’’, $installBaseUrl); // remove port from HTTP_HOST
$installBaseUrl .= ($_SERVER[’SERVER_PORT’] == 80 || isset ($_SERVER[’HTTPS’]) || strtolower($_SERVER[’HTTPS’]) == ’on’) ? ’’ : ’:’ . $_SERVER[’SERVER_PORT’];
echo "<html><head><title>" . $_lang[’loading’] . "</title><script>window.location.href=’" . $installBaseUrl . $_SERVER[’PHP_SELF’] . "?action=language’;</script></head><body></body></html>";
exit;
}
This is the line which checks for the session
if (!$_SESSION[’session_test’] && $_GET[’s’] != ’set’) {
On my server i changed this line to an invalid session name and it started to loop
if (!$_SESSION[’session_test1’] && $_GET[’s’] != ’set’) {
You can see here on my server the working version
http://87.117.200.76/modx%2Dworking/
and also the broken version
http://87.117.200.76/modx-broken/install/index.php?action=language
So its definitly a sessions saving problem to verify this further I edited the install\index.php and added a php ini_Set command for a non existing session save path the result ended in the install looping.
@ ini_set(’session.save_path’,’blablablabla’);
You will need to speak to your web hosting company and try and get them to fix it i think the info above should be enough for them to resolve the matter.
Let me know how you get on.
Thanks
Aaron