Помогите с роутингом

InstantCMS 1.X
#1 1 февраля 2018 в 17:28
Нужно подхватывать логин из url страницы

В frontent.php добавил:

  1.  
  2. if ($do=='test'){
  3.  
  4. $login = $inCore->request('login', 'str', 0);
  5.  
  6. $smarty = cmsPage::initTemplate('components', 'com_test.tpl');
  7. $smarty->assign('login', $login);
  8. $smarty->display('com_test.tpl');
  9.  
В router.php добавил

  1.  
  2. $routes[] = array(
  3. '_uri' => '/^test\/([a-zA-z0-9\.]+)\/test.html$/i',
  4. 'do' => 'test'
  5. 1 => 'login'
  6. );
  7.  
Смысл что в том что при добавлении в роуте вот этого — 1 => 'login', страница выпадает в ошибку 500

а если без этой строчки то можно например в шаблон свой логин пробросить и все работает вот так $login = cmsCore::request('login', 'str', ''.$inUser->login.'');
#2 1 февраля 2018 в 20:20
Что-то странно вы делаете. Зачем передавать логин методом get? Передавайте методом post.
Можно тогда url в роутере сделать очень простым:
  1. $routes[] = array(
  2. '_uri' => '/^test\/test.html$/i',
  3. 'do' => 'test'
  4. );
А в своем примере вы после строчки 'do' => 'test' запятую не поставили.
#3 1 февраля 2018 в 20:43
Странник, спасибо, попробую, как только пойму как. Я по примеру делал. 5 лет сидел на печи и вот пытаюсь развиватся по бразильской системе.
#5 2 февраля 2018 в 09:46
Странник, спасибо огромное, дело было в запятой. Мануал читал, но страничку про post и get не уловил почему то сам.
Как я понимаю можно и методом get логин передавать, тем более если заработало, он же не скрывается в системе.

p.s. интересно, на сколько открытый логин безопасно. Интересно, а можно запретить его использовать при авторизации, чтобы только email подходил? Или это не повлияет на безопасность пользователей.
#6 2 февраля 2018 в 09:57

Как я понимаю можно и методом get логин передавать

Александр
Можно, конечно. Только зачем светить его в адресной строке браузера? Хотя дело ваше, вам виднее.
#7 2 февраля 2018 в 10:05
Странник, в данном случае это без разницы, т к на этой страничке будет как раз логин в форму вводится, хотя если подумать то да, можно его скрыть и отобразить вместо логина никнейм, но два аргумента почему с этим не обязательно заморачиваться, во первых логины не скрыты в системе и любой желающий его может посмотреть в профиле пользователя, во вторых логины используются и "светятся" даже в премиум компонентах, например в биллинге при переводе денег.
Так что если делать то переделывать всё разом как я думаю, но я могу ошибаться, исхожу из чистой логики, а не знаний.
#8 3 февраля 2018 в 13:40
Можете,, например, логин “приплюснуть” в нижний регистр и сравнивать в коде с настоящим но также “приплюснутым”…
будет хоть небольшая помеха…
А “по-большому“ ( счёту ) •Странник• прав — нет смысла его задавать в роуте, это не компонент «Юзеры», где это кажется логичным…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.