![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| neoks |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Просто у меня так получилось что __construct(),не работает )) пришлось немного помудрить чтоб сделать типа свой __construct(), но конструктор это все же запускается всего один раз ) он не как бы не подходит, так все равно мне нуно в какую-та var писать мов доступ запрещен и потом в каждом методе все равно проверять эту var разрешено или нет
Но темнемение __construct() удобен тем что в нем мона все проверить и потом назначить какой-та var true или false нежели в каждом методе проверять все параметры, а так нуно будет проверить одну var )) Но мне интересовало возможно ли вообще обойтись без проверки в методах ? чтоб за них делал какой-та специальный метод ? как я показал в примере, видимо это нереально, ну тогда буду значить и дальше проверять везде )) |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Зачем? У вас на каждое посещение адреса будет инстанцирование объекта, а значит вызовется конструктор. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| neoks |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ну а что толку мне от него ? вызываю модуль с адресной строки http://site.ru/МОДУЛЬ ТО ЕСТЬ CLASS/МЕТОД ТО ЕСТЬ ЛЮБОЙ/ПАРАМЕТРЫ а значит вот что ))
В результате если я не буду использовать $this->stop то по этому адресу http://site.ru/test/a вернет мне результат full access что значит не какой проверки не было и кто угодно может что угодно сделать без ведома админа )) Меня интересует именно метод без проверки на if($this->stop) return; Это сообщение отредактировал(а) neoks - 28.9.2012, 18:40 |
||||
|
|||||
| Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
феерично Вот в который раз убеждаюсь, что люди ищут не ответ на вопрос, а черти что. Ознакомьтесь
В качестве checkUserRights может стоять проверка в ACL - имеет ли доступ пользователь данной сессии к данному урлу. Но ваши проблемы проверки прав доступа к данному вопросу вообще не относятся. Поскольку более правильным будет другой подход. Т.е. у вас имеется приложение следующего вида:
Вопрос имеет ли право данный пользователь получить доступ к данному URL решается на этапе роутинга при помощи ACL Модулям должно быть вообще безразлично кто и какие права имеет. Соответственно, если проверка прав доступа провалена, то никакой модуль и метод не вызывается. Это сообщение отредактировал(а) Fortop - 28.9.2012, 19:44 -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
| neoks |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Как говорится лучше один раз увидеть чем сто раз ему объяснять что иди вон туда и гугли че тебе там нуно и не парь нам тут мозги )) Разуется для меня эти исключения что то новое и пока вообше непонятно что это такое ? пока погуглил немного прочитал и мой мозг пока это все еше не пережувал. Попробовал и мне выбело вот такую ошибку Fatal error: Uncaught exception 'Exception' with message 'Что-то пошло не так' Это что то не так написано или так и должно быть ? Вижу Exception' with message значит наверно так и должно быть, а как теперь избавится от этого сообщения ? ) Добавлено через 3 минуты и 30 секунд
Движок полностью модульный и роутер не имеет не каких php функций, все делают модули, + не на всех модулях нужно проверять а также помимо доступа нуно проверить и другие параметры если понадобится ) например работает ли БД и тд |
||||
|
|||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Подключение к БД - в конструктор. А роутер переписать будет достаточно легко. И это будет намного проще чем пытаться внедрить все эти проверки в каждый ваш модуль. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| neoks |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Набросал пример для теста какой та из того что понял что эта такое ))
Все также, вернуло Error (File: C:\Winginx\home\roki.com\public_html\index.php, line 54): Could not open the file !test result oblom )) Где test result oblom )) это результат метода someMethod
В этом и дело, из 10 модулей понадобится 2м проверка БД, МОДУЛЯ БД !!, модулю БД может понадобится проверка права доступа, другому модулю может понадобится проверить то и то, другим вообше что та другое и так далее ) Я не знаю кому что может понадобится проверить и следовательно в роутер я не могу впихнуть куча проверок ) |
||||
|
|||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| neoks |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ладно, буду дальше проверять как и проверял, пока в этот try cath не врубаюсь зачем оно нуно так как любой пример у меня не пашет, смысл не понятен
Вот грубый тест
Вернуло test module или я снова чет напутал ? )) |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Из конструктора нужно бросать исключение
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| neoks |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ну вот снова и таже история
Как там бросить ? че нуно сделать ? каким макаром ?, уже леплю тут из кусков хз что знает пытаюсь хоть чета добиться из этих огрызков кода и как обычно нуно вон туда чет вставить, опять ша буду шаманить, уже пробовал и не какого результата не добился. Мона один но нормальный пример показать ? |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
В мануал. И изучаем синтаксис, как бросать исключения. выше уже были примеры. У вас очень простая схема.
И вопрос собственно не в форумах и даже не в примерах, которых было достаточно. А в типах людей. Есть люди, способные сами решить вопрос и за ниточку распутать весь клубок, а есть люди, которые думать не хотят, но умеют копировать шаблоны. Вот вы к сожалению хотите идти по второму пути. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| neoks |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ну вот в этом и все дело, я не могу там цеплять проверки всякие, только после того как загружается модуль и вот там уже отсекать, я не пишу CMS где заявляют что их CMS полностью модульная, если у них стоит некая проверка на URL это уже знак того что CMS уже не модульная а нуждается в собственных функций )) У меня все же напротив, у меня есть роутер и автозагрузка класса, вот и весь движок, всего 2 файла не превышающие 140 строчек кода, а все остальное это самостоятельные модули. Разумеется что по вашей схеме я не могу так сделать, конечно у меня есть инициализатор и да я могу спокойно все отсечь, а вы попробуйте объяснить пользователям которые юзают движок как ша вы мне объясняете что нуно использовать try cath, разумеется они все это пропустят и появится дыры из за чего заслужу репутацию дырявого движка. Разумеется зачем мне это нужно ? когда модуль сам может самостоятельно все отсечь без вмешательств со стороны, вопрос как его заставить чтоб в каждом методе не проверять И да, мануалы я читал и примеры тестил, логику я пока не понял, что эта такое и зачем оно нужно мне не понятно, взял пример с проверкой соединения с базой данных, не знаю чем оно лучше if(), if() хоть правильно проверил а try cath даже не пискнул Следовательно здесь я хоть спросил как это сделать на примере чтоб врубится для чего же оно, в мануалах я уже второй день читаю и не вкуриваю, куча примеров перебробывал и все они почти не работают, как по мне лучше все таки if() юзать чем это |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Кто сказал что не можете? А как вы вообще планируете реализовывать ACL? Добавлено через 1 минуту и 6 секунд
И ваша система заслуженно будет считаться дырявой. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| neoks |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ну вот скажем роутер
Как мне тут реализовать ? Очень просто, через Инициализацию модулей которая настроена по стандарту, я настроил и забыл Модули успешно все отсекают если все проверять в каждом методе как я ша и делаю, просто мне интересовал метод чтоб не писать проверку в каждом методе чтоб все проверял только один метод ) |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |