From 7d80c36a512ae2c774045cfc58830d9fd3b79950 Mon Sep 17 00:00:00 2001 From: Dominique Fournier Date: Thu, 31 Oct 2019 08:16:41 +0000 Subject: [PATCH] Route relative is now relative to the base of the website instead of the current directory git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@5626 bf3deb0d-5f1a-0410-827f-c0cc1f45334c --- Tests/routeTest.php | 16 ++++++++-------- route.php | 8 ++++++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Tests/routeTest.php b/Tests/routeTest.php index e434ab7..742ebbe 100644 --- a/Tests/routeTest.php +++ b/Tests/routeTest.php @@ -23,7 +23,7 @@ class test_route extends PHPUnit_Framework_TestCase $_SERVER["SCRIPT_NAME"] = "/index.php"; $route = new route (); echo $route->baseURL (); - $this->expectOutputString("./"); + $this->expectOutputString("/"); } /** Port 443 and HTTPS without module */ @@ -36,7 +36,7 @@ class test_route extends PHPUnit_Framework_TestCase $_SERVER["SCRIPT_NAME"] = "/index.php"; $route = new route (); echo $route->baseURL (); - $this->expectOutputString("./"); + $this->expectOutputString("/"); } /** Port 888 and HTTP without module */ @@ -48,7 +48,7 @@ class test_route extends PHPUnit_Framework_TestCase $_SERVER["SCRIPT_NAME"] = "/index.php"; $route = new route (); echo $route->baseURL (); - $this->expectOutputString("./"); + $this->expectOutputString("/"); } /** Port 888 and HTTPS without module */ @@ -60,7 +60,7 @@ class test_route extends PHPUnit_Framework_TestCase $_SERVER["SCRIPT_NAME"] = "/index.php"; $route = new route (); echo $route->baseURL (); - $this->expectOutputString("./"); + $this->expectOutputString("/"); } /** Port 80 and HTTP with module */ @@ -72,7 +72,7 @@ class test_route extends PHPUnit_Framework_TestCase $_SERVER["SCRIPT_NAME"] = "/module/index.php"; $route = new route (); echo $route->baseURL ("module"); - $this->expectOutputString("./"); + $this->expectOutputString("/"); } /** Port 443 and HTTPS with module */ @@ -84,7 +84,7 @@ class test_route extends PHPUnit_Framework_TestCase $_SERVER["SCRIPT_NAME"] = "/module/index.php"; $route = new route (); echo $route->baseURL ("module"); - $this->expectOutputString("./"); + $this->expectOutputString("/"); } /** Port 888 and HTTP with module */ @@ -96,7 +96,7 @@ class test_route extends PHPUnit_Framework_TestCase $_SERVER["SCRIPT_NAME"] = "/module/index.php"; $route = new route (); echo $route->baseURL ("module"); - $this->expectOutputString("./"); + $this->expectOutputString("/"); } /** Port 888 and HTTPS with module */ @@ -108,7 +108,7 @@ class test_route extends PHPUnit_Framework_TestCase $_SERVER["SCRIPT_NAME"] = "/module/index.php"; $route = new route (); echo $route->baseURL ("module"); - $this->expectOutputString("./"); + $this->expectOutputString("/"); } /// ABSOLUTE /// diff --git a/route.php b/route.php index d0394ae..ab13de1 100644 --- a/route.php +++ b/route.php @@ -127,7 +127,10 @@ class route { // Calculate the root in relative $request = $this->requestURL (); - if (substr ($_SERVER["REQUEST_URI"], -1 * strlen ($request)) === $request) + if (! isset ($_SERVER["REQUEST_URI"])) + $this->baseURL = "/"; + elseif (substr ($_SERVER["REQUEST_URI"], -1 * strlen ($request)) === + $request) { $this->baseURL = substr ($_SERVER["REQUEST_URI"], 0, strlen ($_SERVER["REQUEST_URI"]) - strlen ($request)); @@ -156,7 +159,8 @@ class route if ($this->module != FALSE) { $this->baseURLmodule = $this->baseURL; - $this->baseURL = dirname ($this->baseURL)."/"; + if (dirname ($this->baseURL) !== "/") + $this->baseURL = dirname ($this->baseURL)."/"; } return $this->baseURL;