Мегаобучалка Главная | О нас | Обратная связь


Pass varchar(16) NOT NULL '',



2019-07-03 178 Обсуждений (0)
Pass varchar(16) NOT NULL '', 0.00 из 5.00 0 оценок




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 (



2019-07-03 178 Обсуждений (0)
Pass varchar(16) NOT NULL '', 0.00 из 5.00 0 оценок









Обсуждение в статье: Pass varchar(16) NOT NULL '',

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (178)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)