За последние 24 часа нас посетил 22081 программист и 1125 роботов. Сейчас ищут 795 программистов ...

Админ панель

Тема в разделе "Сделайте за меня", создана пользователем Griz, 27 май 2016.

  1. Griz

    Griz Новичок

    С нами с:
    27 май 2016
    Сообщения:
    3
    Симпатии:
    0
    Вообщем такое дело. У меня в MYSQL есть поле Admin которое равно 0 или 1. 1 это админ. и есть форма входа.
    Код (Text):
    1. <?php // Заключаем форму в php-скрипт для возможности прописівать скрипты прямо в этом файле
    2.  
    3. //  вся процедура работает на сессиях. В сессии хранятся данные  пользователя, пока он находится на сайте. Запускается сессия в начале странички
    4.     session_start();
    5. echo "
    6. <html>
    7. <head>
    8. <link rel='stylesheet' type='text/css' href='style.css' />
    9. <title>Форма входа на PHP</title>
    10. </head><body>"?>
    11. <?php
    12. if(isset($_SESSION['login']))
    13. {$login='Здравствуйте, '.$_SESSION['login'].'!';}
    14. // Проверяем, пусты ли переменные логина и id пользователя
    15.     if (empty($_SESSION['login']) or empty($_SESSION['id']))
    16. // Если пусты, то
    17.     {
    18.         echo "<p style='margin-left:60px;'>Вы вошли на сайт, как гость</p><br>
    19. <!--Подключение обработчика формы--><form id='forma' action='script1.php' method='post'>
    20. <h1>Форма входа</h1>
    21. <p>Заполните поля для входа на сайт</p>
    22. <p>Логин<br /><input type='text' name='login'></p>
    23. <p>Пароль<br /><input type='password' name='password'></p>
    24. <p><input type='submit' name='submit' value='Войти'>
    25. <!--**** Кнопка (type='submit') отправляет данные на страничку script1.php ***** -->
    26. <br></p></form><p style='margin-left:60px;'><a href='registration.php'>Регистрация</a></p>";
    27.     }
    28. else
    29. // Если не пусты, то
    30.     {
    31.     echo "<br /><br />Вы вошли на сайт, как ".$_SESSION['login']."<br><br />";
    32.         echo ('<form action="close.php" method="POST">
    33.                 <input type="submit" value="Выход"/>
    34.             </form>');
    35. }
    36. echo"
    37. </body></html>";
    38. ?>
    как мне сделать чтобы есть заходи админ его перекидывало в админку ?? и как сделать проверку для доступа админки только админам???
    Кода файла Script.php
    Код (Text):
    1. <?php
    2. session_start();//вся процедура сверки логина и паролей работает на сессиях. Именно в них хранятся данные  пользователя, пока он находится на сайте. Запускать сессию нужно в начале странички
    3.  
    4. header('Refresh: 5; URL=http://lora.in.ua/php-uroki/avtorizaciya/vhod.php'); //redirect с задержкой
    5. echo 'Вы будете перенаправлены на главную страницу через 5 секунд.'; //вывод сообщения
    6.  
    7. if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    8.  
    9. if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
    10.  
    11. if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаём ошибку и останавливаем выполнение скрипта
    12.     {
    13.     exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    14.     }
    15.    
    16. $login = stripslashes($login);//удаляет экранирование символов, произведенное функцией addslashes()
    17.    
    18. $login = htmlspecialchars($login);//преобразует специальные символы в HTML-сущности (обрабатываем их, чтобы теги и скрипты не работали на случай от действий умников-спамеров)
    19.  
    20. $password = stripslashes($password); //удаляет экранирование символов, произведенное функцией addslashes()
    21.    
    22. $password = htmlspecialchars($password);
    23.  
    24. $login = trim($login);//удаляет пробелы (или другие символы) из начала и конца строки
    25. $password = trim($password);
    26. // Задаём переменные для подключения к БД
    27. $db_host = 'localhost';
    28. $db_user = 'root';
    29. $db_password = '';
    30. $database = 'baza';
    31. // Подключаемся к БД mysql_connect($db_host, $db_user, $db_password);
    32. mysql_select_db($database);
    33.  
    34. $result = mysql_query("SELECT * FROM reg_users WHERE login='$login'"); //извлекаем из базы из таблицы зарегистрированных пользователей все данные о пользователе с введенным логином
    35.     $myrow = mysql_fetch_array($result);
    36.  
    37. if (empty($myrow['password']))
    38.     {
    39.     //если пользователя с введенным логином не существует
    40.     exit ("<br /><br />Извините, введённый вами login или пароль неверный!");
    41.     }
    42.    
    43. else {
    44.     //если существует, то сверяем пароли
    45.  
    46. if ($myrow['password']== md5( "$password" )){
    47.     //если пароли совпадают, то запускаем данному пользователю сессию
    48.     $_SESSION['login']=$myrow['login'];
    49.     $_SESSION['id']=$myrow['id'];//эти данные очень часто используются, поэтому сессия запускается с использованием этих данных
    50.     //Выводим информацию, что пользователь авторизован и снизу ссылку для перехода на главную страницу (можно на любую поставить ссылку)
    51.     echo "<br /><br />Поздравляем! Вы успешно вошли на сайт! <br /><a href='/php-uroki/avtorizaciya/vhod.php'>Главная страница</a><br /><a href='/php-uroki/avtorizaciya/reg.php'>Регистрация</a>";
    52.     }
    53.  
    54. else {
    55.     //если пароли не совпали, выводим на экран информацию об этом и пользователя не авторизовываем
    56.  
    57.     exit ("<br /><br />Извините, введённый вами login или пароль неверный!");
    58.     }
    59.     }
    60.     ?>
    Сам в этом не БУМ БУМ. Хелп ми.
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    По какому учебнику учишься?

    1. mysql уже удалён из php. Используй mysqli или PDO.
    2. логин и пароль совершенно не требуют тех обработок, которые тут есть. Нужно экранировать символы перед запросом к СУБД - этого тут как раз нет.
    3. подставляя строковую переменную в аргумент функции, совершенно не обязательно захватывать её в двойные кавычки. Переменная в строке в двойных кавычках заменяется её строковым значением. То есть "$password" - лишняя нагрузка на создание строки, в которую потом будет скопировано значение переменной.

    Ты же юзера выбрал из базы, значит тебе доступно поле где ноль-единица. По этому полю и решай, куда сделать редирект.

    Ну ты же юзера выбрал из базы и даже что-то записал в сессию. На всех "защищенных" страницах проверяй значение нужного поля (в сессии) и если оно не единица - запрещай доступ.
     
  3. Griz

    Griz Новичок

    С нами с:
    27 май 2016
    Сообщения:
    3
    Симпатии:
    0
    вот это код проверки не могу найти везде пишут про htaccess.
    Ни по какому учебнику. Нас в колледже ничему не учили, а теперь просят сайт.Поэтому читаю в интернете и пробую.
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @Griz ты хочешь готовый код или учиться?
     
  5. Griz

    Griz Новичок

    С нами с:
    27 май 2016
    Сообщения:
    3
    Симпатии:
    0
    Сейчас мне код нужен, чтобы.доделать работу вовремя (,но думаю по коду научись на практике