X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Flogin.php;h=21fe8fa19aec2e4817a34569a53c907a32c4c640;hb=d7270cc414d34775b3aec09cb2364605695fdf43;hp=5f622ecc9442fde20fee8f070e849f1729573d23;hpb=97f5300144afdb934b6ab64fbefbba133d95b151;p=squirrelmail.git diff --git a/src/login.php b/src/login.php index 5f622ecc..21fe8fa1 100644 --- a/src/login.php +++ b/src/login.php @@ -6,7 +6,7 @@ * This a simple login screen. Some housekeeping is done to clean * cookies and find language. * - * @copyright © 1999-2006 The SquirrelMail Project Team + * @copyright © 1999-2007 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package squirrelmail @@ -31,21 +31,24 @@ require_once(SM_PATH . 'functions/forms.php'); */ set_up_language($squirrelmail_language, TRUE, TRUE); -/* - * In case the last session was not terminated properly, make sure - * we get a new one. - */ -sqsession_destroy(); -sqsession_is_active(); -$_SESSION=array(); - - /** - * PHP bug. http://bugs.php.net/11643 (warning, spammed bug tracker) and - * http://bugs.php.net/13834 - * SID constant is not destroyed in PHP 4.1.2, 4.2.3 and maybe other - * versions. Produces warning on login page. Bug should be fixed only in 4.3.0 + * In case the last session was not terminated properly, make sure + * we get a new one, but make sure we preserve session_expired_* */ +if ( !empty($_SESSION['session_expired_post']) && !empty($_SESSION['session_expired_location']) ) { + $sep = $_SESSION['session_expired_post']; + $sel = $_SESSION['session_expired_location']; + + sqsession_destroy(); + @sqsession_is_active(); + $_SESSION=array(); + sqsession_register($sep, 'session_expired_post'); + sqsession_register($sel, 'session_expired_location'); +} else { + sqsession_destroy(); + @sqsession_is_active(); + $_SESSION=array(); +} /** * This detects if the IMAP server has logins disabled, and if so, @@ -68,16 +71,19 @@ if($imap_auth_mech == 'login') { $string .= _("Also, the use of TLS may allow SquirrelMail to login.").'
'; } $string .= _("Please contact your system administrator and report this error."); - error_box($string,$color); + error_box($string); + // display footer (closes html tags) and stop script execution + $oTemplate->display('footer.tpl'); exit; } } } -do_hook('login_cookie'); +do_hook('login_cookie', $null); $loginname_value = (sqGetGlobalVar('loginname', $loginname) ? htmlspecialchars($loginname) : ''); +//FIXME: should be part of the template, not the core! /* Output the javascript onload function. */ $header = "