Make sure base_uri is correct (submitted by James Lewis)
[squirrelmail.git] / functions / auth.php
index 287be6ce7013143de410f98aefd0d5d3b7a9cadd..6ce4e4a69f7c582e3d10ba496cda825a3ee7b645 100644 (file)
 
 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;
+    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 );
@@ -27,9 +40,9 @@ function is_logged_in () {
     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" .
+         "<a href=\"$base_uri" . "src/login.php\" target=\"$frame_top\">"._("Go to the login page")."</a>\n" .
          "</center></body></html>\n";
     exit;
 }
 
-?>
\ No newline at end of file
+?>