Здравствуйте! Выложил сайт на хостинг, затем возникла проблема при регистрации на сайте, после заполнения и нажатия кнопки "регистрация" страница просто обновляется, сообщение о успешной регистрации не выходит, форма сама остаётся заполненной. До этого всё проверял в Denwer, там регистрация проходила успешно.
В журнале на хостинге, показывает такую ошибку при регистрации:
mod_fcgid: stderr: PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'SiteController' does not have a method 'actionIndextsite' in /var/www/vhosts/tddsv.ru/tddsv/components/Router.php on line 81, referer: https://tddsv.ru/user/register/. Могли вы пожалуйста помочь ?
Router.php
<?php
/**
* Класс Router
* Компонент для работы с маршрутами
*/
class Router
{
/**
* Свойство для хранения массива роутов
* @var array
*/
private $routes;
/**
* Конструктор
*/
public function __construct()
{
// Путь к файлу с роутами
$routesPath = ROOT . '/config/routes.php';
// Получаем роуты из файла
$this->routes = include($routesPath);
}
/**
* Возвращает строку запроса
*/
private function getURI()
{
if (!empty($_SERVER['REQUEST_URI'])) {
return trim($_SERVER['REQUEST_URI'], '/');
}
}
/**
* Метод для обработки запроса
*/
public function run()
{
// Получаем строку запроса
$uri = $this->getURI();
// Проверяем наличие такого запроса в массиве маршрутов (routes.php)
foreach ($this->routes as $uriPattern => $path) {
// Сравниваем $uriPattern и $uri
if (preg_match("~$uriPattern~", $uri)) {
// Получаем внутренний путь из внешнего согласно правилу.
$internalRoute = preg_replace("~$uriPattern~", $path, $uri);
// Определить контроллер, action, параметры
$segments = explode('/', $internalRoute);
$controllerName = array_shift($segments) . 'Controller';
$controllerName = ucfirst($controllerName);
$actionName = 'action' . ucfirst(array_shift($segments));
$parameters = $segments;
// Подключить файл класса-контроллера
$controllerFile = ROOT . '/controllers/' .
$controllerName . '.php';
if (file_exists($controllerFile)) {
include_once($controllerFile);
}
// Создать объект, вызвать метод (т.е. action)
$controllerObject = new $controllerName;
/* Вызываем необходимый метод ($actionName) у определенного
* класса ($controllerObject) с заданными ($parameters) параметрами
*/
$result = call_user_func_array(array($controllerObject, $actionName), $parameters);
// Если метод контроллера успешно вызван, завершаем работу роутера
if ($result != null) {
break;
}
}
}
}
}
SiteController
<?php
/**
* Контроллер CartController
*/
class SiteController
{
/**
* Action для главной страницы
*/
public function actionIndex()
{
// Список категорий для левого меню
$categories = Category::getCategoriesList();
// Список последних товаров
$latestProducts = Product::getLatestProducts(6);
// Список товаров для слайдера
$sliderProducts = Product::getRecommendedProducts();
// Подключаем вид
require_once(ROOT . '/views/site/index.php');
return true;
}