Вызов функции-члена load() на null при попытке вызвать страницу входа в систему
Я создаю CMS. При нажатии кнопки входа в систему должно выскочить меню. Но вместо этого я получаю
Fatal error: Uncaught Error: Call to a member function load() on null in C:\Program Files\Ampps\www\CMS\app_main\app\login.php:38 Stack trace: #0 {main} thrown in C:\Program Files\Ampps\www\CMS\app_main\app\login.php on line 38
Вот файл входа в систему
include("init.php"); if (isset($_POST['username'])) { // get data $CMS->Template->setData('input_user', $_POST['username']); $CMS->Template->setData('input_pass', $_POST['password']); // validate data if ($_POST['username'] == '' || $_POST['password'] == '') { // show error if ($_POST['username'] == '') { $CMS->Template->setData('error_user', 'required'); } if ($_POST['password'] == '') { $CMS->Template->setData('error_pass', 'required'); } $CMS->Template->setAlert('Please fill in all required fields', 'error'); echo '<script type="text/javascript">jQuery.colorbox.resize();</script>'; $CMS->Template->load(APP_PATH . "core/views/v_login.php"); } else if ($CMS->Auth->validateLogin($CMS->Template->getData('input_user'), $CMS->Template->getData('input_pass')) == FALSE) { // invalid login $CMS->Template->setAlert('Invalid username or password!', 'error'); echo '<script type="text/javascript">jQuery.colorbox.resize();</script>'; $CMS->Template->load(APP_PATH . "core/views/v_login.php"); } else { // successful log in $_SESSION['username'] = $CMS->Template->getData('input_user'); $_SESSION['loggedin'] = TRUE; $CMS->Template->load(APP_PATH . "core/views/v_loggingin.php"); } } else { $CMS->Template->load(APP_PATH . "core/views/v_login.php"); }
А вот включенный файл init
<?php // create application settings define("SITE_PATH", "http://localhost/CMS/app_main/%22); define("APP_PATH", str_replace("\", "/", dirname(FILE)) . "/"); define("SITE_RESOURCES", "http://localhost/CMS/app_main/resources/%22); define("APP_RESOURCES", "http://localhost/CMS/app_main//app/resources/%22); define("SITE_CSS", "http://localhost/CMS/app_main/app/resources/css/style.css%22); // database settings $server = 'localhost'; $user = 'root'; $pass = 'mysql'; $db = 'cms'; // error reporting mysqli_report(MYSQLI_REPORT_ERROR); // create FlightPath core object require_once(APP_PATH . "core/core.php"); $CMS = new CMS_Core($server, $user, $pass, $db);
основной файл, в котором находится CMS
<?php //main CMS file and functionality class CMS_Core{ public $Template, $Auth, $Database; function __construct($server, $user, $pass, $db) { //db connect $this->Database= new mysqli($server, $user, $pass, $db); // create template object include(APP_PATH . "core/models/m_template.php"); $this->$Template = new Template(); $this->$Template->setAlertTypes(array('success', 'warning', 'error')); //create auth object include(APP_PATH . "core/models/m_auth.php"); $this->Auth = new Auth(); /* session start */ session_start(); } function __destruct() { $this->Database->close(); } function head(){ if($this->Auth->checkLoginStatus()){ include(APP_PATH . "core/templates/t_head.php"); } if (isset($_GET['login']) && $this->Auth->checkLoginStatus() == false){ include(APP_PATH . "core/templates/t_login.php"); } } function body_class(){ if($this->Auth->checkLoginStatus()){ echo "cms_editing"; } } function toolbar(){ if($this->Auth->checkLoginStatus()){ include(APP_PATH . "core/templates/t_toolbar.php"); } } function login_link(){ if($this->Auth->checkLoginStatus()){ echo"<a href='" . SITE_PATH . "'app/logout.php'>Logout</a>"; }else{ echo"<a href='?login'>Login</a>"; } } }
И логин - файл с его кодом. На всякий случай.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Log in</title> <link rel="stylesheet" href="views/style.css"> </head> <body> <h1> Log In </h1> <div id="content"> <form action="" method="POST"> <div> <?php $alerts = $this->getAlerts(); if ($alerts !=''){echo '<ul class="alerts">' . $alerts . '</ul>';} ?> <div class="row"> <label for="username">Username: *</label> <input type="text" name="username" value="<?php echo $this->getData ('input_user')?>"> <div class="error"><?php echo $this->getData ('error_user'); ?></div> </div> <div class="row"> <label for="password">Password: </label> <input type="password" name="password" value="<?php echo $this->getData ('input_pass')?>"> <div class="error"><?php echo $this->getData ('error_pass'); ?></div> </div> <div class="row"> <p class="required"> required</p> <input type="submit" name="submit" class="submit" value="submit"> </div> </div> </form> </div> </body> </html>
Что я уже пробовал:
Я попытался изменить фиксированный путь к файлу для входа в систему и попытался посмотреть, есть ли что-то с файлом шаблона. Пока ничего.