скрыть контент на странице

187
28 октября 2018, 09:50

проблема состоит в следующем:

  1. есть страница к примеру default.html на этой странице есть контейнер content, в него помещаются другие страницы (формы, таблицы и прочее),

    <main>      
    <?=$data['content']?></main>
    

    а так же меню и какие нибудь кнопки, которые появляются или исчезают в зависимости от сессии.

    <?php if( Session::get('login') ) { ?>
    <a href="/users/logout" >Вихід</a>
    <?php } ?>
    
  2. есть форма логина, которая так же встраивается в шаблон default.html вот тут вся суть проблемы. При логине идёт проверка, если в сессии нет юзера или админа, то редирект на форму логина.

        $layout = self::$router->getRoute();
    if ( $layout == 'default' && Session::get('role') !='user' && Session::get('role') !='admin'){
        if ( $controller_method !='login'){
            Router::redirect('/users/login');
        }
    }
    

    в теории всё работает верно, то бишь не залогиненый пользователь не может вызвать страницу и не увидит контент который скрыт, НО после логина представим что пользователь бродил по сайту и начинает тыкать на кнопку назад(в браузере), и доходя до формы логина, контент который закрывался с помощью проверки на сессию не скрывается.

Пытался сделать редирект, если сессия не пустая то редирект на default.html (но происходит зацикливание редиректов). Раздумывал над принудительным сбросом сессии, но тогда невозможно залогиниться. Так же был вариант просто написать отдельную страницу логина, но тогда будет очень длинный путь url что тоже не очень то и красиво. Подскажите возможные варианты правильного решения.

Answer 1

Вообщем придумал некоторый костыль... поставил в странице default.html запрос url. Таким образом я фиксирую где сейчас юзер, и если он долистывает до страницы с логином то с помощью (КОСТЫЛЯ) делаю следущее:

<?php 
if( Session::get('login') ) { ?>
<a <?php if($layout == "/users/login" or $layout == "/users/login/") { ?>
hidden="true" <?php } ?> href="/users/logout" >Вихід</a>
<?php } ?>
READ ALSO
WooCommerce REST API передача массива

WooCommerce REST API передача массива

Пытаюсь добавить товар при помощи WooCommerce REST API, так сказать - снаружи, POST-запросомВсе шло нормально, пока не понадобилось соотносить товар...

192
Помогите с ошибкой

Помогите с ошибкой

Notice: Undefined index: country_id in /home/a0226150/domains/a0226150xsph

190