[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Router
Страницы: 1, 2, 3
OleKh
Цитата (Wind @ 7.10.2015 - 18:34)
тут по моему еще легче запутаться

почему?

application/model/News/model_news.php
application/controller/News/controller_news.php
application/view/News/view_news.php


а так можно и запутаться) с одинаковыми тремя news.php

application/model/News/news.php
application/controller/News/news.php
application/view/News/news.php
VeRTak
Цитата (OleKh @ 7.10.2015 - 20:38)
Wind
Давай так. Ты читал рекомендации и подправил регулярку, как я говорил. Верно? Зацитируй конкретный пункт из рекомендаций, который повлиял на регулярку и что ты изменил в ней. 


Читал - да, зугулил - да, Нашел ответ -не совсем. Раз регулрка не так написана, значит я позабыл... пошел обратно где юзал все это -> https://school-php.com. Сам себе напомнил. из регулярки убрал /u так как зачем мне UTF, если я разрешаю только англ. символы, убрал инверсию и отрицание из нее, дальше оставил строку поиска только тех символов которые я решил разрешил(которые мне понадобиться в урлах). далее проверка. Я что то сделал не так? unsure.gif
OleKh
Цитата (inpost @ 7.10.2015 - 18:33)
Я не гуглить предлагаю, а почитать здоровенные доки от поисковика, где пишут о том, как должен выглядеть сайт.

я только за двумя руками) даже не надо предлагать)
VeRTak
OleKh

Кстати, да. Спасибо, что касается редактора, удобно.
Только я говорил не об этом, а именно о название в ключе массива, контроллер
inpost
Wind
https://support.google.com/webmasters/answer/76329?hl=en

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
VeRTak
inpost

if(preg_match('[a-z 0-9\-\/]', $route))
show404();
OleKh
Цитата (Wind @ 7.10.2015 - 18:48)
Я что то сделал не так?

давай разберем регулярку, я не против, на первый взгляд ничего такого левого, сам делал? я обычно использую этот символ - #, что тут у тебя все символы от a до z, от 0 до 9, _ и \ надо бы добавить https ...

'#^[a-z 0-9_\/]+$#u'

или вот так поправь :)

http://regexlib.com/REDetails.aspx?regexp_...CookieSupport=1

^(http(?:s)?\:\/\/[a-zA-Z0-9]+(?:(?:\.|\-)[a-zA-Z0-9]+)+(?:\:\d+)?(?:\/[\w\-]+)*(?:\/?|\/\w+\.[a-zA-Z]{2,4}(?:\?[\w]+\=[\w\-]+)?)?(?:\&[\w]+\=[\w\-]+)*)$



OleKh
Цитата (Wind @ 7.10.2015 - 18:50)
Кстати, да. Спасибо, что касается редактора, удобно.
Только я говорил не об этом, а именно о название в ключе массива, контроллер

Какого редактора? не ма за шо)

Так если это контроллер, так и называй контроллер, я же выше пример скинул, controller, action, params.
VeRTak
Цитата (OleKh @ 7.10.2015 - 21:04)
Какого редактора?


Phpstorm, когда много вкладок открыто видно только название файла без пути при одинаковых названиях, впрочем для себя я нашел + в этом. А на счет регулярки, то уже завтра, спать пора, мозг отказывается работать ph34r.gif
stump
Цитата (Wind @ 7.10.2015 - 13:34)

/**
* Инициализация переменной
*/

$route = trim(isset($_GET['route']) ? $_GET['route'] : 'welcome', '/');
/**
* Фильтр URL
*/

if(!preg_match('/^[a-z 0-9_\/]+$/u', $route))
show404();
/**
* Маршрут
*/

$fragments = explode('/', $route);
$result = [
'directory' => array_shift($fragments),
'controller' => array_shift($fragments),
'segments' => $fragments
];

if(empty($result['controller']))
$result['controller'] = 'index';
if(!is_dir(LIF_PATH . '/application/controllers/' . $result['directory']) && !is_file(LIF_PATH . '/application/controllers/' . $result['directory'] . '/' . $result['controller'] . '.php'))
show404();


Все ли нормально? ПЕРВЫЙ ЭТАП

Че работает, да?

Цитата
    $route = trim(isset($_GET['route']) ? $_GET['route'] : 'welcome', '/');

Надо так:
define('Url', 'welcome/');
$route = isset($_GET['route'] ? trim($_GET['route']) : Url;
...


    if(!preg_match('/^[a-z 0-9_\/]+$/u', $route))
show404();


Надо так:
    if(!preg_match('/^[a-z0-9_\-=\?\/]+$/iu', $route))
show404();


Остальное тоже было бы неплохо порефакторить :)...

_____________
Трус не играет в хокей
Быстрый ответ:

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