-<?
- /**
- ** signout.php
- **
- ** Clears the cookie, and logs them out.
- **
- **/
-
- $username = "";
- $key = "";
- $logged_in = 0;
-
- setcookie("username", "", time(), "/");
- setcookie("key", "", time(), "/");
- setcookie("logged_in", 0, time(), "/");
+<?php
+
+/**
+ * signout.php -- cleans up session and logs the user out
+ *
+ * Copyright (c) 1999-2004 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.
+ *
+ * @version $Id$
+ * @package squirrelmail
+ */
+
+/**
+ * Path for SquirrelMail required files.
+ * @ignore
+ */
+define('SM_PATH','../');
+
+/* SquirrelMail required files. */
+require_once(SM_PATH . 'include/validate.php');
+require_once(SM_PATH . 'functions/prefs.php');
+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 (!isset($frame_top)) {
+ $frame_top = '_top';
+}
+
+/* If a user hits reload on the last page, $base_uri isn't set
+ * because it was deleted with the session. */
+if (! sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION) ) {
+ require_once(SM_PATH . 'functions/display_messages.php');
+ $base_uri = sqm_baseuri();
+}
+
+do_hook('logout');
+
+sqsession_destroy();
+
+if ($signout_page) {
+ header('Status: 303 See Other');
+ header("Location: $signout_page");
+ exit; /* we send no content if we're redirecting. */
+}