HEX
Server: Apache
System: Linux infong-uk86 4.4.400-icpu-106 #2 SMP Mon Sep 15 08:23:40 UTC 2025 x86_64
User: u44115835 (4976590)
PHP: 8.4.17
Disabled: NONE
Upload Files
File: /homepages/29/d194883696/htdocs/firstnetworking/router.php
<?php

/**
 * Router
 */
class Router
{

  private $_Views;
  private $_CSS;
  private $_Controller;
  private $_Menu;

  function __construct()
  {
    if (isset($_GET['route'])) {
      $this->_route = $_GET['route'];
      //explode /
      //protect against html & symbols
    }

    if (empty($this->_route)) {
      $this->SetView("home");
    }else {
      $this->SetView($this->_route);
    }
  }

  private function SetView($view){
    $this->_Views = "views/".$view.".php";

    if (!file_exists($this->_Views)) {
      $this->_Views = "views/404.php";
      $this->ViewController("Error");
      $view = "error";
    }else {
      $this->ViewController($view);
    }

    $this->_CSS = "css/".$view.".css";

    if (!file_exists($this->_CSS)) {
      $this->_CSS = "css/header.css";
    }else {

    }

  }

  private function SetMenu()
  {
    $MenuClassFile = "controllers/Menu.php";
    require_once($MenuClassFile);
    $Menu = new Menu;
    $this->_Menu = $Menu;
  }

  function GetPage(){
    return $this->_Views;
  }

  function GetCSS(){
    return $this->_CSS;
  }

  function ViewController($class){
    $class = ucfirst($class);
    $class = str_replace('-', "", $class);
    $Controller = "controllers/".$class.".php";

    if (file_exists($Controller)) {

      include $Controller;


      if (class_exists($class)) {
        $this->_Controller = new $class;
      }else {
        die("Router Error: Controller Class: $class does not exist. [ViewController::RouterClass]");
      }

    }else {
      require 'controllers/PageError.php';
      $this->_Controller = new PageError;
      $this->_Controller->SetErrorMessage("404 Error: Page '".$_GET['route']."' does not exist.");
    }
  }

  function Controller(){
    return $this->_Controller;
  }

  function Menu(){
    return $this->_Menu;
  }
}


?>