Happy New Year
[squirrelmail.git] / src / signout.php
index 413473f3ed21598ce69e3c37520439b308396c3f..b3b5618242727d6ed2a485f3ed5a84b74dc897a8 100644 (file)
@@ -1,84 +1,79 @@
 <?php
-   /**
-    **  signout.php -- cleans up session and logs the user out
-    **
-    **  Copyright (c) 1999-2000 The SquirrelMail development team
-    **  Licensed under the GNU GPL. For full terms see the file COPYING.
-    **
-    **  Cleans up after the user. Resets cookies and terminates
-    **  session.
-    **
-    **  $Id$
-    **/
-
-   include('../src/validate.php');
-   include ('../functions/prefs.php');
-   include ('../functions/plugin.php');
-
-   // Erase any lingering attachments
-   if (! isset($attachments)) {
-       $attachments = array();
-   }
-   foreach ($attachments as $info) {
-       if (file_exists($attachment_dir . $info['localfilename'])) {
-           unlink($attachment_dir . $info['localfilename']);
-       }
-   }
-
-   // 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);
-   setcookie('logged_in', '', 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. */
-   }
-?>
-<HTML>
-   <HEAD>
-<?php
-   if ($theme_css != '') {
-?>
-<LINK REL="stylesheet" TYPE="text/css" HREF="<?php echo $theme_css ?>">
-<?php
-   }
-?>
-<TITLE><?php echo $org_title ?> - Signout</TITLE>
-</HEAD>
-<BODY TEXT="<?php echo $color[8] ?>" BGCOLOR="<?php echo $color[4] ?>" 
-LINK="<?php echo $color[7] ?>" VLINK="<?php echo $color[7] ?>" A
-LINK="<?php echo $color[7] ?>">
-<BR><BR>
-<TABLE BGCOLOR="FFFFFF" BORDER="0" COLS="1" WIDTH="50%" CELLSPACING="0" 
-CELLPADDING="2" ALIGN="CENTER">
-  <TR BGCOLOR="<?php echo $color[0] ?>" WIDTH=100%>
-    <TD ALIGN="CENTER">
-      <B><?php echo _("Sign Out") ?></B>
-    </TD>
-  </TR>
-  <TR BGCOLOR="<?php echo $color[4] ?>" WIDTH=100%>
-    <TD ALIGN="CENTER">
-      <?php echo _("You have been successfully signed out.") ?><BR>
-      <A HREF="login.php" TARGET="_top">
-      <?php echo _("Click here to log back in.") ?>
-      </A><BR><BR>
-    </TD>
-  </TR>
-  <TR BGCOLOR="<?php echo $color[0] ?>" WIDTH=100%>
-    <TD ALIGN="CENTER">
-      <BR>
-    </TD>
-  </TR>
-</TABLE>
-</BODY>
-</HTML>
+
+/**
+ * signout.php -- cleans up session and logs the user out
+ *
+ *  Cleans up after the user. Resets cookies and terminates session.
+ *
+ * @copyright 1999-2018 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @version $Id$
+ * @package squirrelmail
+ */
+
+/** 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');
+