За последние 24 часа нас посетили 22784 программиста и 1262 робота. Сейчас ищут 725 программистов ...

Проблемы с сессиями и закрытием доступа

Тема в разделе "PHP для новичков", создана пользователем giru, 16 янв 2018.

Метки:
  1. giru

    giru Новичок

    С нами с:
    20 дек 2017
    Сообщения:
    4
    Симпатии:
    1
    Добрый день! Перед нами стоит несколько задач.
    1) Чтобы не авторизованный пользователь не мог получить доступ ко внутренней странице.
    Т.е. когда не было сессии сессии был закрыт доступ к этой странице http://kuptso4c.beget.tech/levels и при нажатии кнопки начать срабатывала переадресация на авторизацию http://kuptso4c.beget.tech/avtorizacziya (это работает), но после успешной авторизации выкидывает на главную главную почему то http://kuptso4c.beget.tech/(.
    2) Так же чтобы нельзя было пройти по прямой ссылке http://kuptso4c.beget.tech/levels , а в случае если человек пытается перейти по ней то его переадресовывало на главную или на авторизацию. Пытались это сделать но нечего не вышло((
    3) Чтобы при нажатии кнопки выход которая находится на внутренней странице http://kuptso4c.beget.tech/levels сессия прекращалась и переадресовывала на главную http://kuptso4c.beget.tech/. Сделали снипет, вызвали его в html. так же прилагаю сам снипет
    PHP:
    1. <?php
    2. header('Location: /index');
    Код (Text):
    1.     <div class="inner-people">
    2.                         <li><a href="#" class=""><img src="img/people-icon.png" alt=""></a>
    3.                             <ul class="inner-menu-people">
    4.                                 <li><a href="">Мой профиль</a></li>
    5.                                 <li><a href="">Мои балы</a></li>
    6.                                 <li><a href="">Корзина</a></li>
    7.                                 <li><a href="">Блог</a></li>
    8.                                 <li><a href="">Мой прогресс</a></li>
    9.                                 <li><a href="[[logout?      ]]">Выход</a></li>
    10.                             </ul>
    11.                         </li>
    12.                     </div>
    Опыта много не имеем. Сайт работает на MODX, весь PHP код реализуется в снип. Привожу пример кода для авторизации. Там наверняка много ошибок.
    PHP:
    1. <?php
    2. $login = $_POST['login']; //Написать условия проверки
    3. if(isset($_POST['password']) && strlen($_POST['password'])>0){
    4.     $password = strip_tags($_POST['password']);
    5.     $password = md5($password);
    6.    
    7. }
    8. $whereLog = array(
    9.     'parent'=> 3,
    10.     'description' => $login
    11.     );
    12. $login = $modx->getObject('modResource', $whereLog);
    13. if(isset($login)){
    14.    if($password == $login->get('introtext'))
    15.    {
    16.        $id = $login->get('id');
    17.        $_SESSION['id'] = $id;
    18.        session_start();
    19.  
    20.        $_SESSION['login'] = TRUE;
    21.        header('Location: /');
    22.      
    23.    }
    24.    else
    25.  
    26.     if (! isset($_SESSION['login']))
    27.     {
    28.        header('Location: /nopass.html');
    29.        return;
    30.    }
    31.  
    32.  
    33. }
    34.  
    35. else
    36. if (! isset($_SESSION['password']))
    37. {
    38.     header('Location: /nouser.html');
    39.     return;
    40. }
    41. return;
    Буду признателен в решении проблемы)
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    738
    Адрес:
    Татарстан
    я конечно могу ошибаться, но зачем велосипед - я прямо очень сильно уверен - что в MODX есть стандартные средства авторизации и доступа к страницам авторизованными или нет пользователям
     
  3. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    если не смотреть на код
     
  5. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Спасибо! Люблю трешачок перед сном почитать.
     
    mahmuzar и mkramer нравится это.