Make sure base_uri is correct (submitted by James Lewis)
[squirrelmail.git] / functions / auth.php
index dde3147547b482272b47d88e883b83d34d2d93ba..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, $frame_top, $base_uri;
 
@@ -31,7 +40,7 @@ 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=\"$base_uri/src/login.php\" target=\"$frame_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;
 }