Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Система авторизации
 
 автор: Icen   (07.03.2007 в 12:15)   письмо автору
 
 

Здравствуйте, начнём с того что я студент, и опыта программирования на PHP у меня не так много как хотелось бы. Сейчас я разрабатываю CMS, она специально заточена для преподавателя. Пробалема у меня возникла с авторизацией, как её лучше сделать. Ведь мне нужно чтобы при выходе из браузера или по истечению определённого времени, если челокек не вышел из браузера, система "забывала" кто он такой и не давала ему совершать никакие действия, то есть не пускала его, при этом запрашивая пароль... Как это лучше слелать с помощью куков или сессий.. И я ещё слышал про функцию md5, стоит ли её использовать???

   
 
 автор: DEM   (07.03.2007 в 12:35)   письмо автору
 
   для: Icen   (07.03.2007 в 12:15)
 

md5() надо использовать, они шифрует пароли...
на счёт авторизации, для этого тогда надо использовать СЕСИИ. А проверка на то соклько пользователя не было можно сделать так:

<?
mysql_query
("DELETE FROM online WHERE time < NOW() - INTERVAL '20' MINUTE"); // Удаляем если пользователь был енактивен 20 минут
//Проверяем ИП и если такое есть, то обновить время на то, которое сейчас
$update_zapis mysql_query("SELECT * FROM online WHERE ip='".$_SERVER['REMOTE_ADDR']."'");
if(
mysql_num_rows($update_zapis) == 1)
{
  
$now time();
  
mysql_query("UPDATE online SET time=NOW(),
  lastactivity='"
.$now."'
  WHERE ip='"
.$_SERVER['REMOTE_ADDR']."'");
   
mysql_query("UPDATE $db_onliners_table SET lastactivity='$now' WHERE login='".$_SESSION['login']."'");

}
else
{
session_unregister("login");
session_unregister("pass");
}

?>


Думаю значения понятны... Талица ONLINE - это таблица в корой находятся юзеры онлайн, мы проверяем есть ли там юзер с таким айпишником как у пользователя, если есть, то обновляем запись, если нету, то просто очищаем СЕССИЮ с паролем и логином... Ну и еще ставим проверку, что бы все записи с активностью меньше 20 минут удалялись (собствено тогда и очистится сессия)

   
 
 автор: Icen   (07.03.2007 в 12:55)   письмо автору
 
   для: Icen   (07.03.2007 в 12:15)
 

Спасибо большое.. У меня есть ещё один вопросик, как вызывать функцию которая бы постоянно отслеживала состояние активности? в каждом .php файле?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования