Welcome Guest, Not a member yet? Register   Sign In
4.4.1 to 4.4.8 base_url php spark closes..
#1

(This post was last modified: 05-06-2024, 11:32 AM by xsPurX.)

Hi,
I'm working on updating to 4.4.8 and my base url is defined like below.
Code:
public string $baseURL = BASE_URL;

in config/Constants.php I have

Code:
$base_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME']) . (substr(dirname($_SERVER['SCRIPT_NAME']), -1) == '/' ? '' : '/');

defined('BASE_URL') || define('BASE_URL', $base_url);

when I run php spark on 4.4.1 it works fine, but on 4.4.8 it just exits out, and doesn't run the localhost server.

if i replace the $baseURL with http://localhost:8080/ it works, but I need the dynamic url. So why is 4.4.8 exiting out when 4.4.1 doesn't? I don't get any error, it just goes back the typing commands in command prompt, and doesn't run the local server.

Any help would be appreicated.
Reply
#2

Your code does not work with spark due to a PHP Fatal error.
> PHP Fatal error:  Uncaught CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL.

Code:
$ php spark serve
PHP Warning:  Undefined array key "HTTP_HOST" in /Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/Constants.php on line 96
PHP Stack trace:
PHP  1. {main}() /Users/kenji/work/codeigniter/official/CodeIgniter4/spark:0
PHP  2. CodeIgniter\Boot::bootSpark($paths = class Config\Paths { public string $systemDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../system'; public string $appDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/..'; public string $writableDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../writable'; public string $testsDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../tests'; public string $viewDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../Views' }) /Users/kenji/work/codeigniter/official/CodeIgniter4/spark:84
PHP  3. CodeIgniter\Boot::loadConstants() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Boot.php:87
PHP  4. require_once() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Boot.php:210

Warning: Undefined array key "HTTP_HOST" in /Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/Constants.php on line 96

Call Stack:
    0.0006    399456  1. {main}() /Users/kenji/work/codeigniter/official/CodeIgniter4/spark:0
    0.0017    450136  2. CodeIgniter\Boot::bootSpark($paths = class Config\Paths { public string $systemDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../system'; public string $appDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/..'; public string $writableDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../writable'; public string $testsDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../tests'; public string $viewDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../Views' }) /Users/kenji/work/codeigniter/official/CodeIgniter4/spark:84
    0.0018    450720  3. CodeIgniter\Boot::loadConstants() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Boot.php:87
    0.0020    465496  4. require_once('/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/Constants.php') /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Boot.php:210


CodeIgniter v4.5.1 Command Line Tool - Server Time: 2024-05-07 08:45:47 UTC+00:00

PHP Fatal error:  Uncaught CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:201
Stack trace:
#0 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php(147): CodeIgniter\HTTP\SiteURI->normalizeBaseURL(Object(Config\App))
#1 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php(102): CodeIgniter\HTTP\SiteURI->determineBaseURL(Object(Config\App), NULL, NULL)
#2 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php(212): CodeIgniter\HTTP\SiteURI->__construct(Object(Config\App), '/', NULL)
#3 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php(42): CodeIgniter\HTTP\SiteURIFactory->createURIFromRoutePath('/')
#4 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(807): CodeIgniter\HTTP\SiteURIFactory->createFromGlobals()
#5 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::uri(NULL, false)
#6 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(250): CodeIgniter\Config\BaseService::__callStatic('uri', Array)
#7 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(800): CodeIgniter\Config\BaseService::getSharedInstance('uri', NULL)
#8 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(320): CodeIgniter\Config\Services::uri()
#9 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(201): CodeIgniter\Config\BaseService::__callStatic('uri', Array)
#10 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(568): CodeIgniter\Config\BaseService::get('uri')
#11 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(320): CodeIgniter\Config\Services::incomingrequest(Object(Config\App), false)
#12 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(526): CodeIgniter\Config\BaseService::__callStatic('incomingrequest', Array)
#13 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::request(NULL, false)
#14 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(250): CodeIgniter\Config\BaseService::__callStatic('request', Array)
#15 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(522): CodeIgniter\Config\BaseService::getSharedInstance('request', NULL)
#16 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(320): CodeIgniter\Config\Services::request()
#17 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php(129): CodeIgniter\Config\BaseService::__callStatic('request', Array)
#18 [internal function]: CodeIgniter\Debug\Exceptions->exceptionHandler(Object(CodeIgniter\Exceptions\ConfigException))
#19 {main}
  thrown in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

Fatal error: Uncaught CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

Call Stack:
    0.0880    5306512  1. CodeIgniter\Debug\Exceptions->exceptionHandler($exception = class CodeIgniter\Exceptions\ConfigException { protected $message = 'Config\\App::$baseURL "http://./" is not a valid URL.'; private string ${Error}string = ''; protected $code = 0; protected string $file = '/Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php'; protected int $line = 201; private array ${Error}trace = [0 => [...], 1 => [...], 2 => [...], 3 => [...], 4 => [...], 5 => [...], 6 => [...], 7 => [...], 8 => [...], 9 => [...], 10 => [...], 11 => [...], 12 => [...], 13 => [...]]; private ?Throwable ${Error}previous = NULL }) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php:0
    0.0880    5306512  2. CodeIgniter\Config\BaseService::__callStatic($name = 'request', $arguments = []) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php:129
    0.0881    5306888  3. CodeIgniter\Config\Services::request($config = ???, $getShared = ???) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0881    5306888  4. CodeIgniter\Config\BaseService::getSharedInstance($key = 'request', ...$params = variadic(NULL)) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:522
    0.0881    5307640  5. CodeIgniter\Config\BaseService::__callStatic($name = 'request', $arguments = [0 => NULL, 1 => FALSE]) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:250
    0.0881    5307640  6. CodeIgniter\Config\Services::request($config = NULL, $getShared = FALSE) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:311
    0.0881    5308016  7. CodeIgniter\Config\BaseService::__callStatic($name = 'incomingrequest', $arguments = [0 => NULL, 1 => FALSE]) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:526
    0.0881    5308712  8. CodeIgniter\Config\Services::incomingrequest($config = NULL, $getShared = FALSE) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0891    5409376  9. CodeIgniter\Config\BaseService::get($key = 'uri') /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:568
    0.0891    5409376  10. CodeIgniter\Config\BaseService::__callStatic($name = 'uri', $arguments = []) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:201
    0.0892    5409752  11. CodeIgniter\Config\Services::uri($uri = ???, $getShared = ???) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0892    5409752  12. CodeIgniter\Config\BaseService::getSharedInstance($key = 'uri', ...$params = variadic(NULL)) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:800
    0.0892    5410504  13. CodeIgniter\Config\BaseService::__callStatic($name = 'uri', $arguments = [0 => NULL, 1 => FALSE]) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:250
    0.0892    5410504  14. CodeIgniter\Config\Services::uri($uri = NULL, $getShared = FALSE) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:311
    0.0897    5443392  15. CodeIgniter\HTTP\SiteURIFactory->createFromGlobals() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:807
    0.0897    5443392  16. CodeIgniter\HTTP\SiteURIFactory->createURIFromRoutePath($routePath = '/') /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php:42
    0.0897    5443776  17. CodeIgniter\HTTP\SiteURI->__construct($configApp = class Config\App { public string $baseURL = 'http://./'; public array $allowedHostnames = []; public string $indexPage = 'index.php'; public string $uriProtocol = 'REQUEST_URI'; public string $permittedURIChars = 'a-z 0-9~%.:_\\-'; public string $defaultLocale = 'en'; public bool $negotiateLocale = FALSE; public array $supportedLocales = [0 => 'en']; public string $appTimezone = 'UTC'; public string $charset = 'UTF-8'; public bool $forceGlobalSecureRequests = FALSE; public array $proxyIPs = []; public bool $CSPEnabled = FALSE }, $relativePath = '/', $host = NULL, $scheme = ???) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php:212
    0.0897    5443776  18. CodeIgniter\HTTP\SiteURI->determineBaseURL($configApp = class Config\App { public string $baseURL = 'http://./'; public array $allowedHostnames = []; public string $indexPage = 'index.php'; public string $uriProtocol = 'REQUEST_URI'; public string $permittedURIChars = 'a-z 0-9~%.:_\\-'; public string $defaultLocale = 'en'; public bool $negotiateLocale = FALSE; public array $supportedLocales = [0 => 'en']; public string $appTimezone = 'UTC'; public string $charset = 'UTF-8'; public bool $forceGlobalSecureRequests = FALSE; public array $proxyIPs = []; public bool $CSPEnabled = FALSE }, $host = NULL, $scheme = NULL) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:102
    0.0897    5443776  19. CodeIgniter\HTTP\SiteURI->normalizeBaseURL($configApp = class Config\App { public string $baseURL = 'http://./'; public array $allowedHostnames = []; public string $indexPage = 'index.php'; public string $uriProtocol = 'REQUEST_URI'; public string $permittedURIChars = 'a-z 0-9~%.:_\\-'; public string $defaultLocale = 'en'; public bool $negotiateLocale = FALSE; public array $supportedLocales = [0 => 'en']; public string $appTimezone = 'UTC'; public string $charset = 'UTF-8'; public bool $forceGlobalSecureRequests = FALSE; public array $proxyIPs = []; public bool $CSPEnabled = FALSE }) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:147

PHP Fatal error:  Uncaught CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:201
Stack trace:
#0 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php(147): CodeIgniter\HTTP\SiteURI->normalizeBaseURL(Object(Config\App))
#1 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php(102): CodeIgniter\HTTP\SiteURI->determineBaseURL(Object(Config\App), NULL, NULL)
#2 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php(212): CodeIgniter\HTTP\SiteURI->__construct(Object(Config\App), '/', NULL)
#3 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php(42): CodeIgniter\HTTP\SiteURIFactory->createURIFromRoutePath('/')
#4 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(807): CodeIgniter\HTTP\SiteURIFactory->createFromGlobals()
#5 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::uri(NULL, false)
#6 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(250): CodeIgniter\Config\BaseService::__callStatic('uri', Array)
#7 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(800): CodeIgniter\Config\BaseService::getSharedInstance('uri', NULL)
#8 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::uri()
#9 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(201): CodeIgniter\Config\BaseService::__callStatic('uri', Array)
#10 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(568): CodeIgniter\Config\BaseService::get('uri')
#11 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::incomingrequest(Object(Config\App), false)
#12 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(526): CodeIgniter\Config\BaseService::__callStatic('incomingrequest', Array)
#13 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::request(NULL, false)
#14 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(250): CodeIgniter\Config\BaseService::__callStatic('request', Array)
#15 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(522): CodeIgniter\Config\BaseService::getSharedInstance('request', NULL)
#16 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::request()
#17 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php(129): CodeIgniter\Config\BaseService::__callStatic('request', Array)
#18 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php(252): CodeIgniter\Debug\Exceptions->exceptionHandler(Object(ErrorException))
#19 [internal function]: CodeIgniter\Debug\Exceptions->shutdownHandler()
#20 {main}
  thrown in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

Fatal error: Uncaught CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

Call Stack:
    0.0880    5306512  1. CodeIgniter\Debug\Exceptions->exceptionHandler() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php:0
    0.0880    5306512  2. CodeIgniter\Config\BaseService::__callStatic() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php:129
    0.0881    5306888  3. CodeIgniter\Config\Services::request() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0881    5306888  4. CodeIgniter\Config\BaseService::getSharedInstance() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:522
    0.0881    5307640  5. CodeIgniter\Config\BaseService::__callStatic() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:250
    0.0881    5307640  6. CodeIgniter\Config\Services::request() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:311
    0.0881    5308016  7. CodeIgniter\Config\BaseService::__callStatic() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:526
    0.0881    5308712  8. CodeIgniter\Config\Services::incomingrequest() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0891    5409376  9. CodeIgniter\Config\BaseService::get() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:568
    0.0891    5409376  10. CodeIgniter\Config\BaseService::__callStatic() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:201
    0.0892    5409752  11. CodeIgniter\Config\Services::uri() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0892    5409752  12. CodeIgniter\Config\BaseService::getSharedInstance() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:800
    0.0892    5410504  13. CodeIgniter\Config\BaseService::__callStatic() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:250
    0.0892    5410504  14. CodeIgniter\Config\Services::uri() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:311
    0.0897    5443392  15. CodeIgniter\HTTP\SiteURIFactory->createFromGlobals() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:807
    0.0897    5443392  16. CodeIgniter\HTTP\SiteURIFactory->createURIFromRoutePath() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php:42
    0.0897    5443776  17. CodeIgniter\HTTP\SiteURI->__construct() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php:212
    0.0897    5443776  18. CodeIgniter\HTTP\SiteURI->determineBaseURL() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:102
    0.0897    5443776  19. CodeIgniter\HTTP\SiteURI->normalizeBaseURL() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:147
Reply
#3

(This post was last modified: 05-07-2024, 06:53 AM by xsPurX.)

(05-07-2024, 01:50 AM)kenjis Wrote: Your code does not work with spark due to a PHP Fatal error.
> PHP Fatal error:  Uncaught CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL.

Code:
$ php spark serve
PHP Warning:  Undefined array key "HTTP_HOST" in /Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/Constants.php on line 96
PHP Stack trace:
PHP  1. {main}() /Users/kenji/work/codeigniter/official/CodeIgniter4/spark:0
PHP  2. CodeIgniter\Boot::bootSpark($paths = class Config\Paths { public string $systemDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../system'; public string $appDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/..'; public string $writableDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../writable'; public string $testsDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../tests'; public string $viewDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../Views' }) /Users/kenji/work/codeigniter/official/CodeIgniter4/spark:84
PHP  3. CodeIgniter\Boot::loadConstants() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Boot.php:87
PHP  4. require_once() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Boot.php:210

Warning: Undefined array key "HTTP_HOST" in /Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/Constants.php on line 96

Call Stack:
    0.0006    399456  1. {main}() /Users/kenji/work/codeigniter/official/CodeIgniter4/spark:0
    0.0017    450136  2. CodeIgniter\Boot::bootSpark($paths = class Config\Paths { public string $systemDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../system'; public string $appDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/..'; public string $writableDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../writable'; public string $testsDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../../tests'; public string $viewDirectory = '/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/../Views' }) /Users/kenji/work/codeigniter/official/CodeIgniter4/spark:84
    0.0018    450720  3. CodeIgniter\Boot::loadConstants() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Boot.php:87
    0.0020    465496  4. require_once('/Users/kenji/work/codeigniter/official/CodeIgniter4/app/Config/Constants.php') /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Boot.php:210


CodeIgniter v4.5.1 Command Line Tool - Server Time: 2024-05-07 08:45:47 UTC+00:00

PHP Fatal error:  Uncaught CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:201
Stack trace:
#0 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php(147): CodeIgniter\HTTP\SiteURI->normalizeBaseURL(Object(Config\App))
#1 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php(102): CodeIgniter\HTTP\SiteURI->determineBaseURL(Object(Config\App), NULL, NULL)
#2 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php(212): CodeIgniter\HTTP\SiteURI->__construct(Object(Config\App), '/', NULL)
#3 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php(42): CodeIgniter\HTTP\SiteURIFactory->createURIFromRoutePath('/')
#4 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(807): CodeIgniter\HTTP\SiteURIFactory->createFromGlobals()
#5 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::uri(NULL, false)
#6 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(250): CodeIgniter\Config\BaseService::__callStatic('uri', Array)
#7 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(800): CodeIgniter\Config\BaseService::getSharedInstance('uri', NULL)
#8 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(320): CodeIgniter\Config\Services::uri()
#9 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(201): CodeIgniter\Config\BaseService::__callStatic('uri', Array)
#10 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(568): CodeIgniter\Config\BaseService::get('uri')
#11 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(320): CodeIgniter\Config\Services::incomingrequest(Object(Config\App), false)
#12 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(526): CodeIgniter\Config\BaseService::__callStatic('incomingrequest', Array)
#13 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::request(NULL, false)
#14 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(250): CodeIgniter\Config\BaseService::__callStatic('request', Array)
#15 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(522): CodeIgniter\Config\BaseService::getSharedInstance('request', NULL)
#16 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(320): CodeIgniter\Config\Services::request()
#17 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php(129): CodeIgniter\Config\BaseService::__callStatic('request', Array)
#18 [internal function]: CodeIgniter\Debug\Exceptions->exceptionHandler(Object(CodeIgniter\Exceptions\ConfigException))
#19 {main}
  thrown in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

Fatal error: Uncaught CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

Call Stack:
    0.0880    5306512  1. CodeIgniter\Debug\Exceptions->exceptionHandler($exception = class CodeIgniter\Exceptions\ConfigException { protected $message = 'Config\\App::$baseURL "http://./" is not a valid URL.'; private string ${Error}string = ''; protected $code = 0; protected string $file = '/Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php'; protected int $line = 201; private array ${Error}trace = [0 => [...], 1 => [...], 2 => [...], 3 => [...], 4 => [...], 5 => [...], 6 => [...], 7 => [...], 8 => [...], 9 => [...], 10 => [...], 11 => [...], 12 => [...], 13 => [...]]; private ?Throwable ${Error}previous = NULL }) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php:0
    0.0880    5306512  2. CodeIgniter\Config\BaseService::__callStatic($name = 'request', $arguments = []) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php:129
    0.0881    5306888  3. CodeIgniter\Config\Services::request($config = ???, $getShared = ???) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0881    5306888  4. CodeIgniter\Config\BaseService::getSharedInstance($key = 'request', ...$params = variadic(NULL)) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:522
    0.0881    5307640  5. CodeIgniter\Config\BaseService::__callStatic($name = 'request', $arguments = [0 => NULL, 1 => FALSE]) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:250
    0.0881    5307640  6. CodeIgniter\Config\Services::request($config = NULL, $getShared = FALSE) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:311
    0.0881    5308016  7. CodeIgniter\Config\BaseService::__callStatic($name = 'incomingrequest', $arguments = [0 => NULL, 1 => FALSE]) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:526
    0.0881    5308712  8. CodeIgniter\Config\Services::incomingrequest($config = NULL, $getShared = FALSE) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0891    5409376  9. CodeIgniter\Config\BaseService::get($key = 'uri') /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:568
    0.0891    5409376  10. CodeIgniter\Config\BaseService::__callStatic($name = 'uri', $arguments = []) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:201
    0.0892    5409752  11. CodeIgniter\Config\Services::uri($uri = ???, $getShared = ???) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0892    5409752  12. CodeIgniter\Config\BaseService::getSharedInstance($key = 'uri', ...$params = variadic(NULL)) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:800
    0.0892    5410504  13. CodeIgniter\Config\BaseService::__callStatic($name = 'uri', $arguments = [0 => NULL, 1 => FALSE]) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:250
    0.0892    5410504  14. CodeIgniter\Config\Services::uri($uri = NULL, $getShared = FALSE) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:311
    0.0897    5443392  15. CodeIgniter\HTTP\SiteURIFactory->createFromGlobals() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:807
    0.0897    5443392  16. CodeIgniter\HTTP\SiteURIFactory->createURIFromRoutePath($routePath = '/') /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php:42
    0.0897    5443776  17. CodeIgniter\HTTP\SiteURI->__construct($configApp = class Config\App { public string $baseURL = 'http://./'; public array $allowedHostnames = []; public string $indexPage = 'index.php'; public string $uriProtocol = 'REQUEST_URI'; public string $permittedURIChars = 'a-z 0-9~%.:_\\-'; public string $defaultLocale = 'en'; public bool $negotiateLocale = FALSE; public array $supportedLocales = [0 => 'en']; public string $appTimezone = 'UTC'; public string $charset = 'UTF-8'; public bool $forceGlobalSecureRequests = FALSE; public array $proxyIPs = []; public bool $CSPEnabled = FALSE }, $relativePath = '/', $host = NULL, $scheme = ???) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php:212
    0.0897    5443776  18. CodeIgniter\HTTP\SiteURI->determineBaseURL($configApp = class Config\App { public string $baseURL = 'http://./'; public array $allowedHostnames = []; public string $indexPage = 'index.php'; public string $uriProtocol = 'REQUEST_URI'; public string $permittedURIChars = 'a-z 0-9~%.:_\\-'; public string $defaultLocale = 'en'; public bool $negotiateLocale = FALSE; public array $supportedLocales = [0 => 'en']; public string $appTimezone = 'UTC'; public string $charset = 'UTF-8'; public bool $forceGlobalSecureRequests = FALSE; public array $proxyIPs = []; public bool $CSPEnabled = FALSE }, $host = NULL, $scheme = NULL) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:102
    0.0897    5443776  19. CodeIgniter\HTTP\SiteURI->normalizeBaseURL($configApp = class Config\App { public string $baseURL = 'http://./'; public array $allowedHostnames = []; public string $indexPage = 'index.php'; public string $uriProtocol = 'REQUEST_URI'; public string $permittedURIChars = 'a-z 0-9~%.:_\\-'; public string $defaultLocale = 'en'; public bool $negotiateLocale = FALSE; public array $supportedLocales = [0 => 'en']; public string $appTimezone = 'UTC'; public string $charset = 'UTF-8'; public bool $forceGlobalSecureRequests = FALSE; public array $proxyIPs = []; public bool $CSPEnabled = FALSE }) /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:147

PHP Fatal error:  Uncaught CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:201
Stack trace:
#0 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php(147): CodeIgniter\HTTP\SiteURI->normalizeBaseURL(Object(Config\App))
#1 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php(102): CodeIgniter\HTTP\SiteURI->determineBaseURL(Object(Config\App), NULL, NULL)
#2 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php(212): CodeIgniter\HTTP\SiteURI->__construct(Object(Config\App), '/', NULL)
#3 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php(42): CodeIgniter\HTTP\SiteURIFactory->createURIFromRoutePath('/')
#4 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(807): CodeIgniter\HTTP\SiteURIFactory->createFromGlobals()
#5 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::uri(NULL, false)
#6 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(250): CodeIgniter\Config\BaseService::__callStatic('uri', Array)
#7 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(800): CodeIgniter\Config\BaseService::getSharedInstance('uri', NULL)
#8 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::uri()
#9 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(201): CodeIgniter\Config\BaseService::__callStatic('uri', Array)
#10 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(568): CodeIgniter\Config\BaseService::get('uri')
#11 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::incomingrequest(Object(Config\App), false)
#12 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(526): CodeIgniter\Config\BaseService::__callStatic('incomingrequest', Array)
#13 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::request(NULL, false)
#14 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(250): CodeIgniter\Config\BaseService::__callStatic('request', Array)
#15 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php(522): CodeIgniter\Config\BaseService::getSharedInstance('request', NULL)
#16 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php(311): CodeIgniter\Config\Services::request()
#17 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php(129): CodeIgniter\Config\BaseService::__callStatic('request', Array)
#18 /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php(252): CodeIgniter\Debug\Exceptions->exceptionHandler(Object(ErrorException))
#19 [internal function]: CodeIgniter\Debug\Exceptions->shutdownHandler()
#20 {main}
  thrown in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

Fatal error: Uncaught CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

CodeIgniter\Exceptions\ConfigException: Config\App::$baseURL "http://./" is not a valid URL. in /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php on line 201

Call Stack:
    0.0880    5306512  1. CodeIgniter\Debug\Exceptions->exceptionHandler() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php:0
    0.0880    5306512  2. CodeIgniter\Config\BaseService::__callStatic() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Debug/Exceptions.php:129
    0.0881    5306888  3. CodeIgniter\Config\Services::request() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0881    5306888  4. CodeIgniter\Config\BaseService::getSharedInstance() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:522
    0.0881    5307640  5. CodeIgniter\Config\BaseService::__callStatic() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:250
    0.0881    5307640  6. CodeIgniter\Config\Services::request() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:311
    0.0881    5308016  7. CodeIgniter\Config\BaseService::__callStatic() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:526
    0.0881    5308712  8. CodeIgniter\Config\Services::incomingrequest() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0891    5409376  9. CodeIgniter\Config\BaseService::get() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:568
    0.0891    5409376  10. CodeIgniter\Config\BaseService::__callStatic() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:201
    0.0892    5409752  11. CodeIgniter\Config\Services::uri() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:320
    0.0892    5409752  12. CodeIgniter\Config\BaseService::getSharedInstance() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:800
    0.0892    5410504  13. CodeIgniter\Config\BaseService::__callStatic() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:250
    0.0892    5410504  14. CodeIgniter\Config\Services::uri() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/BaseService.php:311
    0.0897    5443392  15. CodeIgniter\HTTP\SiteURIFactory->createFromGlobals() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/Config/Services.php:807
    0.0897    5443392  16. CodeIgniter\HTTP\SiteURIFactory->createURIFromRoutePath() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php:42
    0.0897    5443776  17. CodeIgniter\HTTP\SiteURI->__construct() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURIFactory.php:212
    0.0897    5443776  18. CodeIgniter\HTTP\SiteURI->determineBaseURL() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:102
    0.0897    5443776  19. CodeIgniter\HTTP\SiteURI->normalizeBaseURL() /Users/kenji/work/codeigniter/official/CodeIgniter4/system/HTTP/SiteURI.php:147

Ah okay So I changed the code to this, don't know if there is a more elegant way to do this? lol Thanks for your help Smile

Code:
<?php
if(isset($_SERVER['HTTP_HOST']))
    {
    $httphost = $_SERVER['HTTP_HOST'];
    }
else
    {
    $httphost = 'localhost:8080';
    }
$base_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://') . $httphost . dirname($_SERVER['SCRIPT_NAME']) . (substr(dirname($_SERVER['SCRIPT_NAME']), -1) == '/' ? '' : '/');

defined('BASE_URL') || define('BASE_URL', $base_url);
Reply
#4

I forgot to mention that the above code is vulnerable because it does not validate the value of $_SERVER['HTTP_HOST'].
In a production environment, all user input should be validated.
Reply
#5

(This post was last modified: 05-09-2024, 06:21 AM by xsPurX.)

(05-09-2024, 05:36 AM)kenjis Wrote: I forgot to mention that the above code is vulnerable because it does not validate the value of $_SERVER['HTTP_HOST'].
In a production environment, all user input should be validated.

Can you elborate on that? what would be a way to validate it. I thought that comes from the server end. If they change the domain name, it wouldn't load my site it would load a different site? It's not entered anywhere so I don't understand how this would be considered user input?
Reply
#6

An attacker can send any host name.
So the value of $_SERVER['HTTP_HOST'] can be anything.
So you should check the value is your server's host name.

But if your web sever is configured as it does not execute CI4 when undefined host name comes,
your site is not vulnerable.

PHP Code:
<?php

namespace App\Controllers;

class 
Home extends BaseController
{
    public function index(): string
    
{
        return $_SERVER['HTTP_HOST'];
    }


Request:
Code:
$ telnet 127.0.0.1 8080
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
Host: developer.mozilla.org
Accept-Language: fr

Response:
Code:
HTTP/1.1 200 OK
Host: developer.mozilla.org
Date: Thu, 09 May 2024 22:55:40 GMT
Connection: close
X-Powered-By: PHP/8.2.18
Cache-Control: no-store, max-age=0, no-cache
Content-Type: text/html; charset=UTF-8

developer.mozilla.org
Reply
#7

this works for me

PHP Code:
$HTTPHOST 'http://localhost:' . (PHP_SAPI === 'cli' '8080' $_SERVER['SERVER_PORT']));

if (! empty(
$_SERVER['HTTP_HOST'])) {
    $HTTPHOST $_SERVER['HTTP_HOST'];
}

$BASEURL = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' 'https://' 'http://') . $HTTPHOST;

defined('BASE_URL') || define('BASE_URL'$BASEURL); 
Reply




Theme © iAndrew 2016 - Forum software by © MyBB