Pass varchar(16) NOT NULL '',
PRIMARY KEY (name) )TYPE=MyISAM"); if($result) echo " Таблица auth создана <br>"; //отправляем запрос текущей активной БД на сервере и //создаем список привилегий, //которые могут быть применены ко всем таблицам базы данных auth //пользователем admin с хоста localhost с паролем 12345 $result=mysql_query("grant select, insert, update, delete on auth.* to admin@localhost identified by '12345'; "); if($result) echo "Привилегии созданы"; ?> Далее следует определить пользователей, которым будет предоставлен доступ к защищенным ресурсам. Для этого нужно присвоить им login и pass . Создадим двух таких пользователей (оставим прежнего root и добавим нового testuser): use auth; Insert into auth values ('root', 'Z10N0101'); Insert into auth values ('testuser', 'test123'); Листинг index_1.html - страница с формой для улучшения механизма аутентификации из-за применения MySQL. <html> <head> <title>АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЯ MySQL </title> </head> <body> <h1>Пожалуйста зарегистрируйтесь</h1> <p>Зарегистрировавшись, Вы получите доступ к защищенной странице.</p> <p>Имя и Пароль можно получить у администратора.</p> <form method=post action=secretdb.php> Имя : <input type=text name=login> <br> Пароль : <input type=password name=pass> <br> <input type=submit v а 1ue = Отправить ><br> </form> </body> </html> Листинг secretdb.php — сценарий извлечения текста из полей формы и сравнение его с текстом из базы данных <? if(!isset($_POST['login'])&&!isset($_POST['pass'])) { //Посетитель должен ввести имя и пароль ?> <html> <head> <title>АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЯ MySQL </title> </head> <body> <h1>Пожалуйста зарегистрируйтесь</h1> <p>Зарегистрировавшись, Вы получите доступ к защищенной странице.</p> <p>Имя и Пароль можно получить у администратора.</p> <form method=post action=secretdb.php> Имя : <input type=text name=login> <br> Пароль : <input type=password name=pass> <br> <input type=submit v а 1ue = Отправить ><br> </form> </body> </html> <? } Else { //Подключиться к MySQL $mysql=mysql_connect('localhost','root',''); if(!$mysql) { echo 'К базе данных не удалось подключиться.'; exit ; } //Выбрать нужную базу данных $ mysql = mysql _ select _ db ( ' auth ' ); if(!$mysql) { echo 'Нужную базу данных не удалось выбрать.'; exit ; } //Запрос к базе данных для проверки, существует ли соответствующая запись $query = "select count(*) from auth where login = $_POST['login'] and pass = $_POST['pass']"; $result = mysql_query($query); if(!$result) { echo 'Запрос к базе данных не может быть осуществлен.'; exit; } $count = mysql_result( $result, 0, 0 ); if ( $count > 0 ) { //Комбинация имени и пароля посетителя правильная echo "< h 1> Эта страница для зарегистрированных пользователей!</ h 1>"; echo " Мы рады тому, что Вы посетили нашу страничку."; } Else { // Комбинация имени и пароля посетителя неправильная echo "< h 1> ВНИМАНИЕ!</ h 1>"; echo " Вы ввели неправильно имя и пароль."; } } ?> Проверка того, что пользователь ввел данные, осуществляется функцией isset . При создании сценария извлечения текста из полей формы hello.php применена инструкция if- else. Инструкция if - else — условный оператор. Его формат таков: if (логическое_выражение) инструкция_1 ; Else инструкция_2; Действие инструкции следующее: если логическое_выражение истинно, то выполняется инструкция_1, а иначе — инструкция_2. Как и в любом другом языке, конструкция else может опускаться. В этом случае при получении ложного значения просто ничего не делается. В качестве логического выражения применена логическая функция isset, которая проверяет, установлена ли переменная, логический оператор для проверки булевых условий НЕ (!) и И (and или &&): (!isset($_POST ['login'])&&!isset($_POST ['pass'])) Листинг secretdb.php — применение MySQL для улучшения механизма аутентификации. <? $name = $_POST['name'] $password = $_POST['password'] if(!isset($name)&&!isset($password)) { //Если имя и пароль не существуют, посетитель должен зарегистрироваться, т.е. ввести имя и пароль ?> < h 1>Пожалуйста зарегистрируйтесь</ h 1> < p >Зарегистрировавшись, Вы получите доступ к защищенной странице.</ p > <form method = post action = "secretdb.php"> <table border = 1> <tr> <th> Имя </th> <td> <input type = text name = name> </td> </tr> <tr> <th> Пароль </th> <td> <input type = password name = password> </td> </tr> <tr> <td colspan =2 align = center> <input type = submit value = " Вход "> </td> </tr> </table> </form> <? } Else { //Подключиться к MySQL $ mysql = mysql _ connect ( ' localhost ', ' root ', '' ); if (!$ mysql ) { echo ' К базе данных не удалось подключиться.'; exit ; } //Выбрать нужную базу данных $ mysql = mysql _ select _ db ( ' auth ' ); if (!$ mysql ) { echo ' Нужную базу данных не удалось выбрать.'; exit ; } //Запрос к базе данных, чтобы проверить, существует ли соответствующая запись $query = "select count(*) from auth where name = '$name' and pass = '$password'"; $result = mysql_query( $query ); if(!$result) { echo ' Запрос к базе данных не может быть осуществлен.'; exit; } $count = mysql_result( $result, 0, 0 ); if ( $count > 0 ) { //Комбинация имени и пароля посетителя правильная echo "< h 1> Эта страница для зарегистрированных пользователей!</ h 1>"; echo " Мы рады тому, что Вы посетили нашу страничку."; } Else { // Комбинация имени и пароля посетителя неправильная echo "< h 1> ВНИМАНИЕ!</ h 1>"; echo " Вы ввели неправильно имя и пароль."; } } ?> Используемую в примере базу данных можно создать, подключившись к MySQL как пользователь root и запустив показанный в листинге 14.3 сценарий. Листинг 14.3. createauthdb.php —запросы для создания базы данных auth, таблицы auth и двоих пользователей. create database auth; use auth; Create table auth (
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (178)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |