| 1 | <?php |
| 2 | |
| 3 | /** |
| 4 | * signout.php -- cleans up session and logs the user out |
| 5 | * |
| 6 | * Copyright (c) 1999-2002 The SquirrelMail Project Team |
| 7 | * Licensed under the GNU GPL. For full terms see the file COPYING. |
| 8 | * |
| 9 | * Cleans up after the user. Resets cookies and terminates session. |
| 10 | * |
| 11 | * $Id$ |
| 12 | */ |
| 13 | |
| 14 | /*****************************************************************/ |
| 15 | /*** THIS FILE NEEDS TO HAVE ITS FORMATTING FIXED!!! ***/ |
| 16 | /*** PLEASE DO SO AND REMOVE THIS COMMENT SECTION. ***/ |
| 17 | /*** + Base level indent should begin at left margin, as ***/ |
| 18 | /*** the require_once below looks. ***/ |
| 19 | /*** + All identation should consist of four space blocks ***/ |
| 20 | /*** + Tab characters are evil. ***/ |
| 21 | /*** + all comments should use "slash-star ... star-slash" ***/ |
| 22 | /*** style -- no pound characters, no slash-slash style ***/ |
| 23 | /*** + FLOW CONTROL STATEMENTS (if, while, etc) SHOULD ***/ |
| 24 | /*** ALWAYS USE { AND } CHARACTERS!!! ***/ |
| 25 | /*** + Please use ' instead of ", when possible. Note " ***/ |
| 26 | /*** should always be used in _( ) function calls. ***/ |
| 27 | /*** Thank you for your help making the SM code more readable. ***/ |
| 28 | /*****************************************************************/ |
| 29 | |
| 30 | require_once('../src/validate.php'); |
| 31 | require_once('../functions/prefs.php'); |
| 32 | require_once('../functions/plugin.php'); |
| 33 | require_once('../functions/strings.php'); |
| 34 | |
| 35 | // Erase any lingering attachments |
| 36 | if (! isset($attachments)) { |
| 37 | $attachments = array(); |
| 38 | } |
| 39 | $hashed_attachment_dir = getHashedDir($username, $attachment_dir); |
| 40 | foreach ($attachments as $info) { |
| 41 | $attached_file = "$hashed_attachment_dir/$info[localfilename]"; |
| 42 | if (file_exists($attached_file)) { |
| 43 | unlink($attached_file); |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | if (!isset($frame_top)) { |
| 48 | $frame_top = '_top'; |
| 49 | } |
| 50 | |
| 51 | // If a user hits reload on the last page, $base_uri isn't set |
| 52 | // because it was deleted with the session. |
| 53 | if (! isset($base_uri)) { |
| 54 | ereg ("(^.*/)[^/]+/[^/]+$", $PHP_SELF, $regs); |
| 55 | $base_uri = $regs[1]; |
| 56 | } |
| 57 | |
| 58 | do_hook('logout'); |
| 59 | setcookie('username', '', 0, $base_uri); |
| 60 | setcookie('key', '', 0, $base_uri); |
| 61 | session_destroy(); |
| 62 | |
| 63 | if ($signout_page) { |
| 64 | header("Status: 303 See Other"); |
| 65 | header("Location: $signout_page"); |
| 66 | exit; /* we send no content if we're redirecting. */ |
| 67 | } |
| 68 | ?> |
| 69 | <HTML> |
| 70 | <HEAD> |
| 71 | <?php |
| 72 | if ($theme_css != '') { |
| 73 | ?> |
| 74 | <LINK REL="stylesheet" TYPE="text/css" HREF="<?php echo $theme_css ?>"> |
| 75 | <?php |
| 76 | } |
| 77 | ?> |
| 78 | <TITLE><?php echo $org_title ?> - Signout</TITLE> |
| 79 | </HEAD> |
| 80 | <BODY TEXT="<?php echo $color[8] ?>" BGCOLOR="<?php echo $color[4] ?>" |
| 81 | LINK="<?php echo $color[7] ?>" VLINK="<?php echo $color[7] ?>" |
| 82 | ALINK="<?php echo $color[7] ?>"> |
| 83 | <BR><BR> |
| 84 | <TABLE BGCOLOR="<?php echo $color[4]; ?>" BORDER="0" COLS="1" WIDTH="50%" CELLSPACING="0" |
| 85 | CELLPADDING="2" ALIGN="CENTER"> |
| 86 | <TR BGCOLOR="<?php echo $color[0] ?>" WIDTH="100%"> |
| 87 | <TD ALIGN="CENTER"> |
| 88 | <B><?php echo _("Sign Out") ?></B> |
| 89 | </TD> |
| 90 | </TR> |
| 91 | <TR BGCOLOR="<?php echo $color[4] ?>" WIDTH="100%"> |
| 92 | <TD ALIGN="CENTER"> |
| 93 | <?php do_hook('logout_above_text'); ?> |
| 94 | <?php echo _("You have been successfully signed out.") ?><BR> |
| 95 | <A HREF="login.php" TARGET="<?php echo $frame_top ?>"> |
| 96 | <?php echo _("Click here to log back in.") ?> |
| 97 | </A><BR><BR> |
| 98 | </TD> |
| 99 | </TR> |
| 100 | <TR BGCOLOR="<?php echo $color[0] ?>" WIDTH="100%"> |
| 101 | <TD ALIGN="CENTER"> |
| 102 | <BR> |
| 103 | </TD> |
| 104 | </TR> |
| 105 | </TABLE> |
| 106 | </BODY> |
| 107 | </HTML> |