Алгоритм авторизации.

 

1. ввод login и пароля;

2. проверка существующего login;

3. проверка пароля login;

5. проверка регистрации блока сессии;

6.сообщение об успешной авторизации, смена стиля шаблона страницы;

7. если переменная не зарегистрирована, он считается анонимом.

Можно сформировать запрос: выбрать все, если есть соответствие:

SELECT *

FROM users

WHERE login=”login” and pswd=”pswd”.

Чтобы исключить SQL инъекции необходимо выполнить запрос:

SELECT *

FROM users

WHERE login=”login”

Значение пароля из текущего набора данных сохраняем в переменную и сравниваем с введенным значением.

Logout:

<?php

#--------------------------Запуск сессии-------------------------

session_start ();

#-------------------------Установка соединения с сервером MSSQL----

/*

@ $conn=mssql_connect($DBHost, $DBUser, $DBPassword);

if (!#conn) {

include “./inc/top.php”; # прорисовать стандартный верх

echo “<table> <tr><td>”;

echo “Ошибка соединения с сервером базы данных!!!”;

echo “</td></tr></table>”;

exit ();

#----------------Выбор активной БД----------

mssql_select_db ($DB_ST);

#-------------------------------

$ui=”none”;

if (isset ($_SESSION[‘uid’])) {

$ui=$_SESSION[‘uid’];

}

$ip=”none”;

if (isset ($_SERVER[‘REMOTE_ADDR’])) {

$ip=$_SERVER[‘REMOTE_ADDR’];

}

# $str_sql=”exec pr_log_out ‘ “.$ui.” ‘ “;

# $data_set=mssql_query($str_sql); */

#-----------------------Удалить переменную сессии-----------

unset ($_SESSION[‘uid’]);

unset ($_SESSION[‘nam’]);

unset ($_SESSION[‘kod_podr’]);

include “./inc/top.php”; # прорисовать верх

include “./inc/main.php”; # прорисовать главную страницу

include “./inc/bottom.txt”; # прорисовать низ

?>

Login:

<?

#--------------Запуск сессии--------------

session_start();

#-------------------Загрузить файл настроек-------------

include “./inc/config.php”;

#---------------------

# если была нажата кнопка входа для деканатов

if (isset ($bt_auth)) {

# если не существуют

if (!isset ($login) l l !isset ($pswd)

include “./inc/top.php”; # прорисовать верх

include “./inc/main.php”; # прорисовать главную страницу

include “./inc/bottom.txt”;

exit ();

}

$login=trim ($login);

$pswd=trim ($pswd);

$login=substr ($login,0,12);

$pswd=substr($pswd,0,12);

# если пустое имя или пароль

if (empty ($login) l l empty ($pswd)) {

include “./inc/top.php”; # прорисовать верх

include “./inc/main.php”; # прорисовать главную страницу

include “./inc/bottom.txt”;

exit ();

}

# проверка строки пароля на вшивость

/* $spec=” \ ” ‘ \\{} [] () ! ? l - + = . * , ; ~ @ # $ % ^ & “;

if (ereg (“ [“.$spec.”]”, $pswd)) {

include “./inc/top.php”; # прорисовать верх

include “./inc/main.php”; # прорисовать главную страницу

include “./inc/bottom.txt”;

exit ();

} */

#-------------Установка соединения с сервером MySQL

@ $conn=mssgl_connect ($DBHost, $DBUser, $DBPassword);

if (!$conn) {

include “./inc/top.php”; # прорисовать стандартный верх

echo “<table> <tr><td>”;

echo “Ошибка соединения с сервером базы данных!!!”;

echo “</td></tr></table>”;

include “.inc/bottom.txt”;

exit ();

}

#---------------Выбор активной БД----------

mssql_select_db($DB_ST);

#---------------------Аутентификация пользователей----------

if (($login) &&($pswd)) {

$str_sql=”SELECT * FROM users WHERE login=’ “.$login.” ‘ “;

$data_set=mssql_query ($str_sql);

$spec=” \ “ ‘ \\ {} [] () ! ? l - + = . * , . ; ~ @ # $ % ^ & “;

if ($data_set) {

$rst=mssql_fetch_array ($data_set); # получить данные о пользователе

if ($rst) {

if (($rst[‘pswd’]==$pswd) &&!ereg (“[“.$spec.”]”, $pswd)) {

unset ($_SESSION[‘uid’]); #удалить переменную сессии

unset ($_SESSION[‘nam’]); # удалить переменную сессии

unset ($_SESSION[‘kod_podr’]); # удалить переменную сессии

# регистрация переменной сессии

$_SESSION[‘uid’]=$rst[‘uid’];

($_SESSION[‘kod_podr’]=$rst[‘kod_podr’];

$_SESSION[‘nam’]=$rst[‘nam’].” “.$rst[‘fam’];

}

}

}

#------------сохраняем все логины---

$file_log=”./logs/users.log”;

@ $fp=fopen ($file_log, “a”);

if ($fp) {

#result=”ok”;

if (!isset ($_SESSION[‘uid’])) {

$result=”error”;

}

$outstring.=”[“.date(“L M-d H:i:s Y”). ”] “;

$forward=getenv (“HTTP_X_FORWARDED_FOR”);

$ip=$_SERVER[“REMOTE_ADDR”];

if (($forward!=NULL)&&($forward!=$_SERVER [“REMOTE_ADDR”])) {

$outstring.=”[“.$login.”] “;

$outstring.=”[“.$pswd.”] “;

$outstring.=”[“.$result.”] “;

$outstring.= “\n”;

fwrite($fp, $outstring);

fclose($fp);

} # if ($fp) {

}

} # if ($bt_auth) {

# проверяем результаты авторизации

$top_page=”top_u.php”;

$main_page=”main.php”;

# если пользователь не прошел авторизацию

if (!isset ($_SESSION[‘uid’])) {

$top_page=”top.php”;

$main_page=”log_err.php”;

}

include “./inc/”.$top_page; # прорисовать верх

include “./inc/”/$main_page; # прорисовать главную страницу

include “./inc/bottom.txt”;

?>

 









Дата добавления: 2015-08-26; просмотров: 953;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.014 сек.