Make sure base_uri is correct (submitted by James Lewis)
[squirrelmail.git] / functions / auth.php
index 5b3f31e5e6b3f32b09fde2c360f3de135fc358bb..6ce4e4a69f7c582e3d10ba496cda825a3ee7b645 100644 (file)
@@ -1,34 +1,48 @@
 <?php
 
-    /**
-    ** auth.php
-    **
-    **  Copyright (c) 1999-2001 The Squirrelmail Development Team
-    **  Licensed under the GNU GPL. For full terms see the file COPYING.
-    **
-    ** Contains functions used to do authentication.
-    **
-    ** $Id$
-    **/
-
-    require_once( '../functions/page_header.php' );
-
-    function is_logged_in () {
-        global $squirrelmail_language;
-
-        if ( session_is_registered('user_is_logged_in') )
-            return;
-
-        set_up_language($squirrelmail_language, true);
-
-        displayHtmlHeader( 'SquirrelMail', '', FALSE );
-
-        echo "<body bgcolor=\"ffffff\">\n" .
-            '<br><br><center><b>'.
-            _("You must be logged in to access this page.").'</b><br><br>'.
-            "<a href=\"../src/login.php\" target=\"_top\">"._("Go to the login page")."</a>\n".
-            "</center></body></html>\n";
-        exit;
+/**
+ * auth.php
+ *
+ * Copyright (c) 1999-2002 The SquirrelMail Project Team
+ * Licensed under the GNU GPL. For full terms see the file COPYING.
+ *
+ * Contains functions used to do authentication.
+ *
+ * $Id$
+ */
+
+require_once( '../functions/page_header.php' );
+
+/* If a user opens a new session then comes back to this one,
+ * $base_uri isn't set because it the session is invalid.
+ */
+
+if (! isset($base_uri)) {
+    ereg ('(^.*/)[^/]+/[^/]+$', $PHP_SELF, $regs);
+    $base_uri = $regs[1];
+}
+
+function is_logged_in () {
+    global $squirrelmail_language, $frame_top, $base_uri;
+
+    if ( session_is_registered('user_is_logged_in') ) {
+        return;
     }
 
+    if (!isset($frame_top) || $frame_top == '' ) {
+        $frame_top = '_top';
+    }
+
+    set_up_language($squirrelmail_language, true);
+
+    displayHtmlHeader( 'SquirrelMail', '', FALSE );
+
+    echo "<body bgcolor=\"ffffff\">\n" .
+         '<br><br><center><b>' .
+         _("You must be logged in to access this page.").'</b><br><br>' .
+         "<a href=\"$base_uri" . "src/login.php\" target=\"$frame_top\">"._("Go to the login page")."</a>\n" .
+         "</center></body></html>\n";
+    exit;
+}
+
 ?>