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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: авторизация АДМИНА.

Сообщения:  [1-10]    [11-20]   [21-30]  [31-33] 

 
 автор: Axxil   (29.10.2005 в 11:08)   письмо автору
 
   для: 10100100   (29.10.2005 в 08:01)
 

Сессионные войны. Часть 2.

Краткое содержание предыдущей серии:
Мы научились сохранять данные о пользователе на его собственном компьютере используя куки. Т.е при первом входе на сайт мы читаем куку пользователя, и если такая существует определяем по ней его ID.
Конец краткого содержания предыдущей серии



Для начала создадим библиотеку работы с сессиями session.php:

Создаём таблицу session в БД. В этой таблице создаём два поля

user_id | sess_id | crete_time


<?
function saveSession($user_id,$sid){
  
$sql='insert into session values('.$user_id.','\''.$sid.'\'')';
  mysql_query($sql);
}
function getUserBySessionId($sid){
  $sql='
select user_id from session where sess_id=\''.$sid.'\'';
  
$query=mysql_query($sql);
  
$r=mysql_fetch_assoc($query);
  if(!empty(
$r['user_id']))
    return 
$r['user_id'];
  else
   return  
0;
}
function 
clearSessions($hours){
  
// $hours - время жизни сессии в базе:
  
$sql='delete from session where create_time<DATE_SUB(NOW(),interval '.$HOURS.' HOUR)';
  
mysql_query(); 
}
?>


Далее в начале страницы до любого вывода в браузер пишем:

<?
require_once('session.php');
clearSession(1);
if(empty(
$_SERVER['PHPSESSION'])){
  
session_start();
  
$sid=session_id();
  
// функция извлечения ID из куки например getCockie() получаем $ID
  
if($ID>0saveSession($ID,$sid);
}else{
  
$ID=getUserBySessionId($_SERVER['PHPSESSION']);
}
?>

Если добавить этот код на любую страницу, мы будем знать ID юзера всегда.

   
 
 автор: 10100100   (29.10.2005 в 08:01)   письмо автору
 
   для: cheops   (28.10.2005 в 23:57)
 

это как?

   
 
 автор: cheops   (28.10.2005 в 23:57)   письмо автору
 
   для: 10100100   (28.10.2005 в 19:11)
 

Хм... а в смысле чего делать? Ведь режим работы сессий не является критичным...

   
 
 автор: 10100100   (28.10.2005 в 19:11)   письмо автору
 
   для: cheops   (28.10.2005 в 19:01)
 

Получается эту инфу пробивать у хостера надо?
а если у него настройки другие то что мне тогда делать?

   
 
 автор: cheops   (28.10.2005 в 19:01)   письмо автору
 
   для: 10100100   (28.10.2005 в 15:38)
 

>но на сколько мне
>известно при закрытии браузера - сессии дохнут..
Это от настроек сервера зависит - можно и так и эдак настроить.

   
 
 автор: 10100100   (28.10.2005 в 18:06)   письмо автору
 
   для: Loki   (28.10.2005 в 17:45)
 

Локи - спасип! ток не ругайся... я не кляньчу код, просто я реально не врубаюсь... и в данный момент не имею достаточного колличества времени.... а если я допустим попробую снова сделать чтолибо сам и выложу сдесь Вы мне поможите?
просто я с этими СЕССИЯМИ теперь ещё окончательно запутался, с куками я всё понял но вот сессии...

   
 
 автор: Loki   (28.10.2005 в 17:45)   письмо автору
 
   для: 10100100   (28.10.2005 в 16:04)
 

Моя гражданская позиция велит мне вас игнорировать, но я все же скажу: "я ж пока что ломак в этом деле" - никоим образом вас не оправдывает и, вместо того чтобы кянчить код в каждом сообщении, вы могли бы потратить час на изучение учебника (находящегося на этом же сайте), и пару часов на то чтобы сделать все те функции, которые вы уже неделю вымогаете у людей. Тем более что реализиция всего этого, требует от вас самых начальных знаний.
Все. Возвращаюсь к своей гражданской позиции:)

   
 
 автор: 10100100   (28.10.2005 в 17:21)   письмо автору
 
   для: lina   (28.10.2005 в 17:09)
 

хм.. так это я понял, но я даже не представляю себе как должен выглядеть код.... так... смутновато....

   
 
 автор: lina   (28.10.2005 в 17:09)   письмо автору
 
   для: 10100100   (28.10.2005 в 16:04)
 

Тут то же есть не мало проблем. ID сессии сохраняется в кукисах. Для того, чтобы сессия сохранилась и после закрытия браузера устанавливается время хранения кукисов:

# Период хранения куки в секундах. Значение 0 означает "пока браузер не будет закрыт"
      ini_set('session.cookie_lifetime',$n); //$n часов


Но при этом если кукисы выключены, возникают проблемы, сам понимаешь. ;-)

   
 
 автор: 10100100   (28.10.2005 в 16:04)   письмо автору
 
   для: lina   (28.10.2005 в 15:42)
 

о а это как? я ж пока что ломак в этом деле..

   

Сообщения:  [1-10]    [11-20]   [21-30]  [31-33] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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