From 7e156b3d12d64df9f0d8de35b2a16c5fe4ecd626 Mon Sep 17 00:00:00 2001 From: graf25 Date: Fri, 7 Jun 2002 20:54:51 +0000 Subject: [PATCH] A better solution to the problem of $DOCUMENT_ROOT. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2932 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- functions/display_messages.php | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/functions/display_messages.php b/functions/display_messages.php index 8a39eade..aae91ed1 100644 --- a/functions/display_messages.php +++ b/functions/display_messages.php @@ -28,12 +28,33 @@ function sqm_baseuri(){ if (isset($base_uri)){ return $base_uri; } - $dirs = array("|src/.*|", "|plugins/.*|", "|functions/.*|"); - $repl = array("", "", ""); + $dirs = array('|src/.*|', '|plugins/.*|', '|functions/.*|'); + $repl = array('', '', ''); $base_uri = preg_replace($dirs, $repl, $PHP_SELF); return $base_uri; } +/** + * Find out the top REAL path of the squirrelmail installation. + * + * @return the real installation directory of squirrelmail. + */ + +function sqm_topdir(){ + $topdir = ''; + /** + * $levels is just to avoid a potential infinite loop in case + * things are REALLY broken. Shouldn't really ever happen. + */ + $levels = 0; + while (!(is_dir("$topdir/functions") && is_dir("$topdir/src")) + && $levels < 10){ + $topdir .= '../'; + $levels++; + } + return $topdir; +} + function error_username_password_incorrect() { global $frame_top, $color; /* XXX: Should really not start the HTML before this, or close off more @@ -95,10 +116,11 @@ function logout_error( $errString, $errTitle = '' ) { $hide_sm_attributions, $version, $squirrelmail_language; $base_uri = sqm_baseuri(); - include_once( '../functions/page_header.php' ); + $topdir = sqm_topdir(); + include_once( "$topdir/functions/page_header.php" ); if ( !isset( $org_logo ) ) { // Don't know yet why, but in some accesses $org_logo is not set. - include( '../config/config.php' ); + include( "$topdir/config/config.php" ); } /* Display width and height like good little people */ $width_and_height = ''; -- 2.25.1