За последние 24 часа нас посетили 133014 программистов и 7702 робота. Сейчас ищут 2038 программистов ...

Система авторизации пользователей

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

  1. Reizuz

    Reizuz Новичок

    С нами с:
    26 июн 2018
    Сообщения:
    2
    Симпатии:
    0
    Доброго времени суток дамы и господа. Написал сайт на котором работает система авторизации. Но вот беда. Я не знаю как правильно настроить систему прав. При регистрации пользователю в базе данных автоматически прописываются права 0. 1 - это администратор. Хотел бы что бы во время запуска сессии проверялось администратор пользователь или нет. и если да то в меню для него появлялась отдельная кнопка Администрирование. Пока система авторизации и меню выглядят так. В базе данных в таблице users столбцы ID Login Pass Prava
    Проверка авторизации
    PHP:
    1. <?php session_start();//запускаем сессию
    2. require_once "connection.php";//подкл БД
    3. if($_POST['submit']) {//если нажата кнопка
    4. if(!$_POST['login'] == "" && !$_POST['pass'] == "") {//если не пустое        
    5.     $login = $_POST['login'];
    6.     $login = htmlspecialchars($login);//превращаем весь html код в строку
    7.     $login = trim($login);//удаляем пробелы
    8.     $login = stripslashes($login);//удаляем обратный слэш        
    9.     $pass = $_POST['pass'];
    10.    
    11.  
    12.  
    13.            
    14.     //проверяем, на существование такого же логина в бд
    15.     $query = mysql_query("SELECT `login` FROM `users` WHERE login = '$login' && pass = '$pass'");
    16.     if(@mysql_num_rows($query) > 0) {//если есть
    17.        $_SESSION['user'] = $login;//создаем сессию
    18.        echo "<script>location.href = 'index.php' </script>"; //отправляем назад
    19.     }
    20.     else {//если нет такого логина
    21.        exit('извините, Вы не правильно ввели данные.');
    22.     }
    23.   }
    24.   else {//если какое-то поле пустое
    25.      exit('извините, Вы заполнили не все поля.');
    26.   }
    27. }
    28. else {//иначе
    29.   if($_POST['submit_close']) {//если нажата кнопка назад
    30.     unset($_SESSION['user']);//удаляем сессию
    31.     echo "<script>location.href = 'index.php' </script>";//отправляем на гл.стр
    32.   }
    33.   else {//если не нажал но как то попал на стр
    34.     exit('извините, ошибка. Проверьте URL');
    35.   }
    36. }
    37. ?>
    Форма авторизации
    PHP:
    1.    <?php if(isset($_SESSION['user'])) { ?>
    2.      <form name="myform" action="logchek.php" method="post">                
    3.           <h3>Добро пожаловать <?php echo $_SESSION['user'];?> </h3>  
    4.           <input name="submit_close" value="Выход" type="submit">
    5.         </form>
    6.    <?php
    7.    } else { ?>        
    8.     <form name="myform" action="logchek.php" method="post">            
    9.             <label>Имя пользователя:</label>
    10.               <input name="login" placeholder="Имя пользователя" type="text">
    11.               <label>Пароль:</label><input name="pass" type="password">
    12.          <input name="submit" value="Войти" type="submit">
    13.     </form>
    14.     <a href="reg.php">Создать аккаунт</a>
    15.    <?php }
    16.  
    17. ?>
    Меню
    HTML:
    1. <div style="position:relative; top:-30px; auto">
    2. <nav class="two">
    3.   <ul>
    4.     <li><a href="index.php"><i class="fa fa-home fa-fw"></i>Главная</a></li>
    5.     <li><a href="zakaz.php">Каталог</a></li>
    6.     <li><a href="About">О нас</a></li>
    7.  
    8.   </ul>
    9.  
    10. </nav>
    11. <div style="position:absolute; bottom:3px; right:3px;">   <login>
    12. <?php
    13. require_once "login.php" // покдлючаем файл Login.php к сайту
    14. ?>
    15. </login>
    16. </div>
    17. </div>
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    а ссылку на сайт? =)
     
  3. Reizuz

    Reizuz Новичок

    С нами с:
    26 июн 2018
    Сообщения:
    2
    Симпатии:
    0
    Сайт на локальной машине
     
  4. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Можете смело удалять то, что нагородили.
    Криво, дыряво + устаревший mysql_

    Есть готовые решения на PDO, MYSQLI_ не поленитесь нагуглить, найти и почитать.