X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fsignout.php;h=b3b5618242727d6ed2a485f3ed5a84b74dc897a8;hp=9a37ca208aaa324d45d0b709abe096731bfa6fae;hb=6872a6750379b6c17cf6a6dfec6150ade78f52a0;hpb=26f277a6f9b3c816da010ef89cef45def1ccec29 diff --git a/src/signout.php b/src/signout.php index 9a37ca20..b3b56182 100644 --- a/src/signout.php +++ b/src/signout.php @@ -3,101 +3,77 @@ /** * signout.php -- cleans up session and logs the user out * - * Copyright (c) 1999-2002 The SquirrelMail Project Team - * Licensed under the GNU GPL. For full terms see the file COPYING. - * * Cleans up after the user. Resets cookies and terminates session. * - * $Id$ + * @copyright 1999-2018 The SquirrelMail Project Team + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id$ + * @package squirrelmail */ -/*****************************************************************/ -/*** THIS FILE NEEDS TO HAVE ITS FORMATTING FIXED!!! ***/ -/*** PLEASE DO SO AND REMOVE THIS COMMENT SECTION. ***/ -/*** + Base level indent should begin at left margin, as ***/ -/*** the require_once below looks. ***/ -/*** + All identation should consist of four space blocks ***/ -/*** + Tab characters are evil. ***/ -/*** + all comments should use "slash-star ... star-slash" ***/ -/*** style -- no pound characters, no slash-slash style ***/ -/*** + FLOW CONTROL STATEMENTS (if, while, etc) SHOULD ***/ -/*** ALWAYS USE { AND } CHARACTERS!!! ***/ -/*** + Please use ' instead of ", when possible. Note " ***/ -/*** should always be used in _( ) function calls. ***/ -/*** Thank you for your help making the SM code more readable. ***/ -/*****************************************************************/ - -require_once('../src/validate.php'); -require_once('../functions/prefs.php'); -require_once('../functions/plugin.php'); -require_once('../functions/strings.php'); - - // Erase any lingering attachments - if (! isset($attachments)) { - $attachments = array(); - } - $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 a user hits reload on the last page, $base_uri isn't set - // because it was deleted with the session. - if (! isset($base_uri)) { - ereg ("(^.*/)[^/]+/[^/]+$", $PHP_SELF, $regs); - $base_uri = $regs[1]; - } - - do_hook('logout'); - setcookie('username', '', 0, $base_uri); - setcookie('key', '', 0, $base_uri); - session_destroy(); - - if ($signout_page) { - header("Status: 303 See Other"); - header("Location: $signout_page"); - exit; /* we send no content if we're redirecting. */ - } -?> - - - - - -<?php echo $org_title ?> - Signout - - -

- - - - - - - - - - -
- -
- -
- - -

-
-
-
- - +/** This is the signout page */ +define('PAGE_NAME', 'signout'); + +/** + * Include the SquirrelMail initialization file. + */ +require('../include/init.php'); + +/* Erase any lingering attachments */ +sqgetGlobalVar('compose_messages', $compose_messages, SQ_SESSION); + +if (!empty($compose_message) && is_array($compose_messages)) { + foreach($compose_messages as $composeMessage) { + $composeMessage->purgeAttachments(); + } +} + +if (!isset($frame_top)) { + $frame_top = '_top'; +} + +$login_uri = 'login.php'; + +do_hook('logout', $login_uri); + +sqsession_destroy(); + +if ($signout_page) { + // Status 303 header is disabled. PHP fastcgi bug. See 1.91 changelog. + //header('Status: 303 See Other'); + header("Location: $signout_page"); + exit; /* we send no content if we're redirecting. */ +} + +/* After a reload of signout.php, $oTemplate might not exist anymore. + * Recover, so that we don't get all kinds of errors in that situation. */ +if ( !isset($oTemplate) || !is_object($oTemplate) ) { + require_once(SM_PATH . 'class/template/Template.class.php'); + $sTemplateID = Template::get_default_template_set(); + $icon_theme_path = !$use_icons ? NULL : Template::calculate_template_images_directory($sTemplateID); + $oTemplate = Template::construct_template($sTemplateID); + + // We want some variables to always be available to the template + $oTemplate->assign('javascript_on', checkForJavascript()); + $oTemplate->assign('base_uri', sqm_baseuri()); + $always_include = array('sTemplateID', 'icon_theme_path'); + foreach ($always_include as $var) { + $oTemplate->assign($var, (isset($$var) ? $$var : NULL)); + } +} + +// The error handler object is probably also not initialized on a refresh +$oErrorHandler = new ErrorHandler($oTemplate,'error_message.tpl'); + +/* internal gettext functions will fail, if language is not set */ +set_up_language($squirrelmail_language, true, true); + +displayHtmlHeader($org_title . ' - ' . _("Signout")); + +$oTemplate->assign('frame_top', $frame_top); +$oTemplate->assign('login_uri', $login_uri); + +$oTemplate->display('signout.tpl'); + +$oTemplate->display('footer.tpl'); +