У меня проблема с классами, которых нет в PHP.
Первое, что я делаю, это «require_once» файл, который «require_once» содержит все остальные файлы. При загрузке никаких проблем не проявляется. Но когда я начинаю вызывать свою функцию (Users::verificate();), я получаю следующую ошибку:
Fatal error: Class 'Users' not found in /Applications/XAMPP/xamppfiles/htdocs/sparks/dashboard.php on line 4
Для проверки я добавил простой класс с функцией, которая выводит строку только методом эха. Это работает, поэтому проблема должна быть с этим классом. Функция MySql, которую я вызываю таким образом, просто работает.
$mySql = new MySql();
$mySql->executeQuery('...');
Простой класс имеет статическую статическую функцию, которую я вызываю так (О, это работает):
simple::launch();
В классе Users я вызываю нестатические функции из класса MySql из статической функции. Может ли это быть проблемой?
Как и в другом вопросе здесь, на SO, проблема заключается не в использовании коротких открывающих тегов php вместо традиционного открывающего тега php.
Даже небольшая подсказка может мне помочь :). Спасибо за ваше время!
Изменить: я добавил соответствующий код из класса User. Вот в принципе как все это выглядит:
<?php
class Users {
public static function authenticate($email, $password) {
$mySql = new MySql();
$mySqlResult = $mySql->executeQuery("selectUser", [$email]);
...
}
public static function isAdmin() {
if ($_SESSION['isAdmin']) {
return true;
}
return false;
}
...
}
Редактировать 2: я пытаюсь показать процесс: из Dashboard.php это первые строки кода:
<?php
require_once('code/init.php');
simple::launch();
if (!Users::verify()) {
header("Location: index.php");
}
?>
простой:: запуск(); это код, который я использовал для тестирования. Это хорошо работает. Отсюда файл init.php выглядит так:
<?php
session_start();
require_once('simple.php');
require_once('MySql.php');
require_once('Users.php');
require_once('Projects.php');
Имена файлов правильные, так как я получаю видимую ошибку, когда они неверны.
Dashboard.php находится в корне. Оттуда есть папка с именем «код», которая содержит все эти файлы.