|
|
|
| Здравствуйте, уважаемые программисты!
Впервые для себя взялся за создание механизма авторизации и идентификации пользователя на сайте. Ниже приведен псевдокод. Подскажите, есть ли в нём что-то ненужное, какие-либо недочёты, можно ли что-то добавить?
***** ВЫХОД с сайта / УНИЧТОЖЕНИЕ СЕССИИ *****
Код выхода с сайта должен быть выполнен прежде, чем начнётся выполнение основного кода.
Чтобы пользователь не видел себя авторизованным после того, как нажмет кнопку "ВЫХОД", нужно
уничтожить переменные сессии $username и $password до того, как код программы выведет их значения на экран.
если ( была нажата кнопка "ВЫХОД" ) {
- открываем сессию
- разыменовываем переменные сессии ($username и $password)
- разрушаем сессию
- проверяем вкл./выкл. поддержка cookie браузером на пользовательской машине
(!без понятия пока, как это сделать)
если ( cookie включены ) {
уничтожаем cookie-файлы c именем и паролем пользователя
}
}
***** ОТКРЫТИЕ СЕССИИ: *****
открываем сессию
***** АВТОРИЗАЦИЯ: *****
Код авторизации пользователя должен быть выполнен до того, как будет просмотрен массив $_SESSION,
т.к. данные (логин и пароль) в этот массив должны записаться заранее.
ecли ( пользователь отправил свои данные для авторизации, т.е. логин и пароль ) {
1. проверить на корректность введенные данные
2. сверить полученные от пользователя данные с базой данных зарегистрированных пользователей
если (пользователь зарегистрирован ) {
3. записываем пользовательские имя и пароль в переменные $_SESSION['username'] и
$_SESSION['password'] соответственно (эти переменные уже будут зарегистрированы в
сессии, т.к. основной код сайта успеет выполниться хотябы один раз перед тем, как пользователь
произведет авторизацию, поэтому регистрировать переменные в сессии не нужно)
4. проверяем вкл./выкл. поддержка cookie браузером на пользовательской машине
(!без понятия пока, как это сделать)
если ( cookie включены ) {
записать имя и пароль в cookie-переменные c именами username и password соответственно
}
}
}
!!!
Дабы избежать повторной авторизации при обновлении страницы кнопкой F5 или еще каким-то способом,
(т.е. повторной отправки данных формы) присваиваем переменной
POST['authorization'], идентифицирующей отправку формы авторизации, значение 'false'
если ( массив $_SESSION не пуст, т.е. определен ) {
извлекаем из него значения 'username' и 'password'
записываем их в переменные $username и $password
} в противном случае {
- регистрируем в сессии переменные username и password без присваивания им каких-либо значений
- извлекаем из ассоциативного массива $_SESSION значения username и password
- записываем их в переменные $username и $password
- проверяем вкл./выкл. поддержка cookie браузером на пользовательской машине
(!без понятия пока, как это сделать)
если ( cookie включены ) {
если ( существуют cookie-значения с именами username и password ) {
- записываем их в переменные $_SESSION['username'] и $_SESSION['password'] cоответственно
- присваиваем переменным $username и $password значения переменных $_SESSION['username']
и $_SESSION['password']
}
}
}
теперь у нас есть переменные $username и $password доступные в любой точке программы
***** Дальше идет код самого сайт, который использует переменные $username и $password *****
|
| |
|
|
|
|
|
|
|
для: SilentChild
(27.04.2011 в 13:05)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: Slo_Nik
(27.04.2011 в 14:10)
| | Спасибо! =) | |
|
|
|