From: kink Date: Sun, 21 Nov 2004 13:53:51 +0000 (+0000) Subject: When you reload signout.php you get an error that you have to be logged in X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=d65993087963fcc1e7283e544e3100c492f7a742;hp=bddb3448fd8562229509f3b49092bc4fe05dbc9f;p=squirrelmail.git When you reload signout.php you get an error that you have to be logged in to view the signout page. This is of course silly, if you're already logged out this page should be a 'no-op' that just presents the same message. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@8389 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- diff --git a/ChangeLog b/ChangeLog index 7579b99e..67b318de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -158,6 +158,8 @@ Version 1.5.1 -- CVS - Fix two time zone calculation bugs, thanks to David White - 'Priority' and 'Importance' headers are now also recognised, next to the 'X-Priority' header that we've supported since a long time. + - Handle a reload of the signout page gracefully: do not present an error + about having to be logged in to be able to sign out. Version 1.5.0 -------------------- diff --git a/src/signout.php b/src/signout.php index ed52ffe1..7088c7c9 100644 --- a/src/signout.php +++ b/src/signout.php @@ -18,21 +18,40 @@ */ define('SM_PATH','../'); -/* SquirrelMail required files. */ -require_once(SM_PATH . 'include/validate.php'); -require_once(SM_PATH . 'functions/prefs.php'); +/* check if we're already logged out (e.g. when this page is reloaded), + * so we can skip to the output and not give error messages */ +if( ! isset($_SESSION) || empty($_SESSION['user_is_logged_in']) ) { + $loggedin = false; +} else { + $loggedin = true; +} + +if($loggedin) { + require_once(SM_PATH . 'include/validate.php'); + require_once(SM_PATH . 'functions/prefs.php'); +} else { + // this comes in through validate.php usually + require_once(SM_PATH . 'config/config.php'); + require_once(SM_PATH . 'functions/i18n.php'); + require_once(SM_PATH . 'functions/page_header.php'); + if (@file_exists($theme[$theme_default]['PATH'])) { + @include ($theme[$theme_default]['PATH']); + } +} require_once(SM_PATH . 'functions/plugin.php'); require_once(SM_PATH . 'functions/strings.php'); require_once(SM_PATH . 'functions/html.php'); -/* Erase any lingering attachments */ -if (isset($attachments) && is_array($attachments) - && sizeof($attachments)){ - $hashed_attachment_dir = getHashedDir($username, $attachment_dir); - foreach ($attachments as $info) { - $attached_file = "$hashed_attachment_dir/$info[localfilename]"; - if (file_exists($attached_file)) { - unlink($attached_file); +if($loggedin) { + /* Erase any lingering attachments */ + if (isset($attachments) && is_array($attachments) + && sizeof($attachments)){ + $hashed_attachment_dir = getHashedDir($username, $attachment_dir); + foreach ($attachments as $info) { + $attached_file = "$hashed_attachment_dir/$info[localfilename]"; + if (file_exists($attached_file)) { + unlink($attached_file); + } } } } @@ -94,4 +113,4 @@ html_tag( 'table', 'center', $color[4], 'width="50%" cols="1" cellpadding="2" cellspacing="0" border="0"' ) ?> - \ No newline at end of file +