|
|
|
| взял на этом форуме скрипт авторизации, все работает немного подправил по свои нужды, но возникло несколько вопросов:
1. насколько безопасна такая авторизации.
2. как проверка авторизацию при переходе на разные страницы админке, т.е. можно просматривать их только авторизированным пользователями.
3. как реализовать выход из админки.
index.php
<?php
session_start();
session_unset();
?>
<html>
<head>
<title>Солненый берег</title>
<link type="text/css" rel="stylesheet" href="css/css.css"></link>
</head>
<body>
<form action=auth.php method=post>
Имя посетителя : <input type=text name=name value=<?php echo $_SESSION['user']; ?>>
Пароль : <input type=password name=password value=<?php echo $_SESSION['password']; ?>>
<div align="right">
<input type=submit value=Отправить>
</div>
</form>
</td>
</tr>
</table>
</div>
</body>
</html>
|
<?php
// Это файл handler.php
// Имя сервера базы данных, например $dblocation = "mysql28.noweb.ru"
// сейчас выставлен сервер локальной машины
$dblocation = "localhost";
// Имя базы данных
$dbname = "sb";
// Имя пользователя... Скорее всего будет совпадать с вашим доменным именем
// у нас, например $dbuser = "softtime";
$dbuser = "root";
// Пароль - в комментариях не нуждается ;-)
$dbpasswd = "";
// Соединяемся с сервером базы данных
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) {
echo( "<P>В настоящий момент сервер базы данных не
доступен, поэтому корректное отображение
страницы невозможно.</P>" );
exit();
}
// Выбираем базу данных
if (! @mysql_select_db($dbname,$dbcnx) ) {
echo( "<P>В настоящий момент база данных не доступна,
поэтому корректное отображение страницы
невозможно.</P>" );
exit();
}
// Формируем и выполняем SQL-запрос для посетителя с
// именем $_POST['name']
$query = "SELECT password FROM users WHERE name='".$_POST['name']."'";
$nme = mysql_query($query);
if(!$nme)
{
echo mysql_error();
echo "Ошибка выполнения запроса";
exit();
}
// Если запрос вернул результат - производим дальнейшую обработку
if(mysql_num_rows($nme) > 0)
{
// Получаем пароль
$password = mysql_result($nme, 0);
// Сравниваем пароль из базы данных и введённый посетителем
if (md5($_POST['password']) == $password)
{
// Идентификация прошла успешно - осуществляем
// "вход" посетителя. Для того, чтобы в течении текущей
// сесси посетитель не вводил своё имя пароль повторно -
// передаём их через сессию
if(session_start())
{
$_SESSION['user'] = $_POST['name'];
$_SESSION['password'] = $_POST['password'];
// Осуществляем автоматический переход на
// страницу index.php чтобы убедится, что
// посетитель "вошёл"
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=login.php'>
</HEAD><body>";
}
}
else
{
echo "Ошибка идентификации: неправильный пароль";
exit();
}
}
// Если в результате запроса не получено ни одной
// строки - посетитель с таким именем не зарегистрирован
else
{
echo "Ошибка идентификации: посетитель не зарегистрирован";
exit();
}
?>
|
login.php
<?php
session_start();
?>
<html>
<head>
<title>Солненый берег</title>
<link type="text/css" rel="stylesheet" href="css/css.css"></link>
<script type="text/javascript" src="script/jquery-1.2.6.pack.js"></script>
</head>
<body>
<div align="center">
if(isset($_SESSION['user'])) echo $_SESSION['user'];
?>
<form name="" action="index.php" method="post">
<input type="submit" value="Выйти">
</form>
</html>
|
| |
|
|