[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: explode URL
johniek_comp
Например такой url
site.com/user/login

задача, подключить класс user и его метод login
делаю так:
$route = empty($_GET['route']) ? '' : $_GET['route'];
$exp = explode('/', $route);

$controller = new $exp[0]();
if(isset($exp[1])) {
$controller->$exp[1]();
} else {
$controller->index ();
}


если такого метода нет, то вызываем index

а получаю:
Notice: Undefined offset
Method name must be a string


вар_дамп показывает
array(2) { [0]=> string(4) "user" [1]=> string(5) "login" }

подсобите... :)



Спустя 4 минуты, 42 секунды (21.03.2012 - 02:05) m4a1fox написал(а):
Тебе же говорят имя метода должно быть строкой

Спустя 3 минуты, 14 секунд (21.03.2012 - 02:08) Winston написал(а):
А так ?
$route = empty($_GET['route']) ? '' : $_GET['route'];
$exp = explode('/', $route);

$controller = new $exp[0];
if(method_exists($controller, $exp[1])) {
call_user_func(array($controller, $exp[1]));
} else {
$controller->index ();
}

Спустя 3 минуты, 22 секунды (21.03.2012 - 02:12) johniek_comp написал(а):
Winston
if(method_exists($controller, $exp[1])) { - Undefined offset: 1

но начало хорошее smile.gif

Спустя 1 минута, 5 секунд (21.03.2012 - 02:13) Winston написал(а):
Посмотри для начала print_r($exp);

Спустя 2 минуты, 56 секунд (21.03.2012 - 02:16) johniek_comp написал(а):
Winston
Ага, в точку, вернуло только user, а login нету smile.gif

Спустя 5 часов, 42 минуты, 5 секунд (21.03.2012 - 07:58) Guest написал(а):
johniek_comp, это же скрипт, который работает при переходе к любому адресу? Интересно, куда его нужно сохранить?

Спустя 4 минуты, 30 секунд (21.03.2012 - 08:02) Игорь_Vasinsky написал(а):
а нафига тебе мутанина с именем пользователя и его логином? ты ещё псевдоним и поганяло добавь - чтоб круче было.

Спустя 1 час, 28 минут, 33 секунды (21.03.2012 - 09:31) forza написал(а):
Цитата (Игорь_Vasinsky @ 21.03.2012 - 05:02)
а нафига тебе мутанина с именем пользователя и его логином? ты ещё псевдоним и поганяло добавь - чтоб круче было.

Как я понял, здесь вызывается экшен "юзер" с методом "логин", видимо потом будет "логоут", "регистер"....

Спустя 27 минут, 39 секунд (21.03.2012 - 09:58) sharki написал(а):
johniek_comp
Ты же сейчас делаешь свой сайт на кохане. В кохане наверняка есть библиотеки, которые работают с роутерами, т.е мапинг.

Спустя 1 час, 20 минут, 54 секунды (21.03.2012 - 11:19) Ramzil_Nixon написал(а):
Цитата (johniek_comp @ 20.03.2012 - 23:00)
$_GET['route']

А это что?

Спустя 1 час, 43 минуты, 43 секунды (21.03.2012 - 13:03) Игорь_Vasinsky написал(а):
Цитата
$_GET['route']

А это что?


ph34r.gif внегласноый путь в урл роутера

Спустя 1 час, 26 минут, 43 секунды (21.03.2012 - 14:30) johniek_comp написал(а):
Guest
??? не понял?
sharki
хочу свою kohana smile.gif

Спустя 3 минуты, 9 секунд (21.03.2012 - 14:33) Invis1ble написал(а):
if (isset($exp[0]) && class_exists($exp[1], true)) {
$controller = new $exp[0]();
if (isset($exp[1]) && method_exists($controller, $exp[1]))
$controller->$exp[1]();
else if (method_exists($controller, 'index'))
$controller->index();
else
die('FAIL');
}
else
die('EPIC FAIL');

Спустя 5 часов, 55 минут, 46 секунд (21.03.2012 - 20:29) johniek_comp написал(а):
Invis1ble
Работать будет и если по-проще написать, проблема в том что site.com/class/method

method не находит!

Спустя 1 час, 6 минут, 30 секунд (21.03.2012 - 21:35) m4a1fox написал(а):
johniek_comp
Цитата
method не находит

ну так сделай его! В чем проблема?


_____________
user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.