Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Помогите допилить роутер
Вроде все маршрутизирует, но не хочет перенаправлять на страницу ошибки! Никак! Вместо этого php просто выдает в браузере ошибку, что такого класса не найдено и у меня в файле router.php ошибка в строке $controller->$action();
Где я напортачил?
Panoptik
Отправлено: 23 Мая, 2014 - 22:00:00
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
во-первых убедитесь есть ли у вас соответствующие гет-параметры а-ля option
во-вторых попробуйте посмотреть в сторону исключений и обрабатывать ошибки с помощью их
в третьих обратите внимание на функцию method_exists
----- Just do it
DelphinPRO
Отправлено: 23 Мая, 2014 - 23:51:12
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Теперь браузер выдает ошибку Fatal error: Method name must be a string in W:\home\localhost\www\avtocms\core\router.php on line 38
Конкретно на строку $controller->$action();
Понятно, что ругается на скобки, ну т.е. что типа метод должен быть строкой.
Только теперь я не пойму как это исправить?
Мелкий
Отправлено: 24 Мая, 2014 - 20:25:31
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
razorg1991 пишет:
Только теперь я не пойму как это исправить?
Используйте call_user_func
----- PostgreSQL DBA
razorg1991
Отправлено: 25 Мая, 2014 - 12:23:45
Частый гость
Покинул форум
Сообщений всего: 131
Дата рег-ции: Сент. 2013
Помог: 0 раз(а)
Мелкий пишет:
razorg1991 пишет:
Только теперь я не пойму как это исправить?
Используйте call_user_func
Честно сказать не совсем понял как ее использовать
Типа такого?
В таком случае выдает ошибку Warning: call_user_func() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in W:\home\localhost\www\avtocms\core\router.php on line 39
Мелкий
Отправлено: 25 Мая, 2014 - 12:33:11
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Так все-равно та же ошибка Warning: call_user_func() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in W:\home\localhost\www\avtocms\core\router.php on line 39
Мелкий
Отправлено: 25 Мая, 2014 - 14:46:14
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Сделайте var_dump($controller, $action);
Что-то потеряли.
----- PostgreSQL DBA
razorg1991
Отправлено: 25 Мая, 2014 - 15:22:36
Частый гость
Покинул форум
Сообщений всего: 131
Дата рег-ции: Сент. 2013
Помог: 0 раз(а)
Мелкий пишет:
Сделайте var_dump($controller, $action);
Что-то потеряли.
Сделал - получил NULL NULL
Warning: call_user_func() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in W:\home\localhost\www\avtocms\core\router.php on line 40
Теперь я вообще в тупике
Мелкий
Отправлено: 25 Мая, 2014 - 15:31:41
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Собственно. Таких переменных и нет, а у вас отключен E_NOTICE, чтобы PHP мог сам об этом сказать.
Переменная $controller, например, инициализируется только в том случае, если $_GET['view'] не пусто.
----- PostgreSQL DBA
razorg1991
Отправлено: 25 Мая, 2014 - 15:54:50
Частый гость
Покинул форум
Сообщений всего: 131
Дата рег-ции: Сент. 2013
Помог: 0 раз(а)
Мелкий пишет:
Собственно. Таких переменных и нет, а у вас отключен E_NOTICE, чтобы PHP мог сам об этом сказать.
Переменная $controller, например, инициализируется только в том случае, если $_GET['view'] не пусто.
Да, действительно, когда я в строке написал к примеру еще ?view=main он мне выдал в дампе имя объекта, но отругался на пустой метод, ввел ?view=main&option=index все сработало как надо. НО по сути же не работает Route::ErrorPage404, он же должен был сработать еще до создания объекта, при проверке существования класса в условии.
И сразу тогда еще один вопрос: что мне тогда делать объектом и классом по умолчанию? Проверять
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.