За последние 24 часа нас посетили 22404 программиста и 1029 роботов. Сейчас ищут 704 программиста ...

Авторизация пользователей

Тема в разделе "PHP для новичков", создана пользователем Артур Шевцов, 23 янв 2018.

  1. Артур Шевцов

    Артур Шевцов Новичок

    С нами с:
    30 окт 2017
    Сообщения:
    13
    Симпатии:
    0
    Как мне сделать авторизацию для админа и модератора?Что б, приветствие соответствовало пользователю, то есть «Здравствуйте, Администратор» или «Здравствуйте, Модератор».
    PHP:
    1. <?php
    2.     session_start();
    3.         $login = 'admin';
    4.         $password = '1234';
    5.         if (isset($_POST['auth'])) {
    6.  
    7.             $_SESSION['login'] = $_POST['login'];
    8.             $_SESSION['password'] = $_POST['password'];
    9.             $error = true;
    10.         }
    11.         if (isset($_GET['f']) && $_GET['f'] == 'logout') {
    12.             unset($_SESSION['login']);
    13.             unset($_SESSION['password']);
    14.         }
    15.         $auth = false;
    16.         $iss = isset($_SESSION['login']) && isset($_SESSION['password']);
    17.         if ($iss && $_SESSION['login'] === $login && $_SESSION['password'] === $password) {
    18.             $auth = true;
    19.             $error = false;
    20.         }
    21.  
    22.  
    23.  
    24. ?>[html]
    25. <?php if ($error) { ?><p>Неверные логин и/или пароль!</p><?php } ?>
    26. <?php if ($auth) { ?>
    27.     <p>Здравствуйте, <?=$login?>!</p>
    28.     <a href='index.php?f=logout'>Выход</a>
    29. <?php } else { ?>
    30. [html]<form name="auth" method="post" action="index.php">
    31.     <p>
    32.         Логин: <input type="text" name="login" />
    33.     </p>
    34.     <p>
    35.         Пароль: <input type="password" name="password" />
    36.     </p>
    37.     <p>
    38.         <input type="submit" name="auth" value="Войти" />
    39.     </p>
    40. </form>[/html]
    41. <?php } ?>
     
    #1 Артур Шевцов, 23 янв 2018
    Последнее редактирование: 23 янв 2018
  2. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
  3. Артур Шевцов

    Артур Шевцов Новичок

    С нами с:
    30 окт 2017
    Сообщения:
    13
    Симпатии:
    0
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    в вашем коде нет разграничений для Админов и Модеров... только один лог пасс Админа.... по нему вы никак не определите )))
    если планируется например 2 и более пользователей с разными уровнями - лучше конечно хранить их в БД, там же хранить и уровень доступа (Админ, модератор).

    Если хотите просто .. например для двух пользователей выводить их логины.. то как то так

    PHP:
    1.  $users = array(array('login'=>'admin','password'=>'1234'),array('login'=>'moder','password'=>'4321'));
    а этот кусок
    делаем так

    PHP:
    1. $auth = false;
    2.         if (isset($_SESSION['login']) && isset($_SESSION['password'])) {
    3.            foreach ($users AS $u) {
    4.              if ($u['login'] == $_SESSION['login']  && $u['password']==$_SESSION['password']) {
    5.               $auth = true;
    6.               $error = false;
    7.               $login = $u['login'];
    8.              break 1;
    9.         }
     
  5. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
  6. Артур Шевцов

    Артур Шевцов Новичок

    С нами с:
    30 окт 2017
    Сообщения:
    13
    Симпатии:
    0
    Спасибо большое)