krafty
new Exception
Реализация аутентификации пользователя
Я только начал изучать PHP. Раньше программил на Delphi. Сейчас работаю над созданием системы новостей с закрытой панелью администрирования. Хочу предложить на ваш суд проект аутентификации на PHP.
Вобщем есть файлы:
index.php - страница ввода пароля и логина
auth.php - введенные пароль и логин сравниваются с существующими в БД MySQL.
admin.php - главная страница администрирования со ссылочками на другие скрипты.
В БД есть таблицы: собственно новости, юзеры и юзеры в онлайне.
Защита такая: скрипт auth.php сравнивает логин и пароль; далее смотрит, есть ли такой юзер уже в онлайне (если нет заносим его в таблицу).
Создаем сессионную переменную
В скрипте admin.php делаем так:
В каждом из дополнительных скриптов (edit.php, ...) проверки такие же, как и в admin.php.
В файле auth.php думаю еще нашкрябать запросик удаления всех записей из users_online, где время по сравнению с текущим меньше более чем на 3 часа.
Скажите ваше мнение об идее вообще и о безопасности в часности. И может какие-то советы.
Я только начал изучать PHP. Раньше программил на Delphi. Сейчас работаю над созданием системы новостей с закрытой панелью администрирования. Хочу предложить на ваш суд проект аутентификации на PHP.
Вобщем есть файлы:
index.php - страница ввода пароля и логина
auth.php - введенные пароль и логин сравниваются с существующими в БД MySQL.
admin.php - главная страница администрирования со ссылочками на другие скрипты.
В БД есть таблицы: собственно новости, юзеры и юзеры в онлайне.
Защита такая: скрипт auth.php сравнивает логин и пароль; далее смотрит, есть ли такой юзер уже в онлайне (если нет заносим его в таблицу).
Создаем сессионную переменную
PHP:
session_register("logged_user");
PHP:
unset($logged_user); /*чтобы не передали через урл типа ?logged_user=hacker*/
session_start();
session_register($logged_user);
if (!isset($logged_user))
{
echo "Доступ запрещен";
die;
}
else
{
//этот кусок пока не работает, но суть такая
$res=mysql_query("SELECT * FROM users_online WHERE login LIKE '".$logged_user."'");
for ($i=0; $i<mysql_num_rows($res); $i++);
$f=mysql_fetch_assoc($res);
$date_db=$f[online_since];
$curr_date=date("Y-m-d H:i:s");
$id=$f[id];
/* потом проверяем, если разница с текущим временем более 3-х часов - пшел вон
*/
//ссылки формируются так:
a href="edit.php?<? echo "id=$id" ?>">Правка</a><br>
<a href="add.php?<? echo "id=$id" ?>">Добавление</a><br>
<a href="tools.php?<? echo "id=$id" ?>">Настройки</a>
}
В файле auth.php думаю еще нашкрябать запросик удаления всех записей из users_online, где время по сравнению с текущим меньше более чем на 3 часа.
Скажите ваше мнение об идее вообще и о безопасности в часности. И может какие-то советы.
.