Автор Тема: сессии  (Прочитано 19473 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
сессии
« Ответ #15 : 21 Ноября 2001, 19:45:37 »
nobody
Ты писал такой код:

$user_name 
$name
$user_phone $phone
session_register("user_name"); 
session_register("user_phone"); 
Header("Location: step2.php"); 
exit; 


Сделаю несколько поправок.
1.ИМХО лучше все данные для сессии загонять в массив:

$sess
=array();
$sess[\'user_name\']=$name;
$sess[\'user_phone\']=$phone;


2. Лучше в файле step2.php сначало сделать

unset($sess);
session_start();

А то если твой скрипт вызовут так
step2.php?user_name=name&user_phone=02
будут у тебя проблемы с безопасностью


Цитировать
После авторизации я пишу в базу данных этому пользователю время и дату авторизации, после чего при переходе от страници к страници я проверяю существует ли пользователь в базе если нет ганю его в шею, если существует то проверяю не слишком ли много времени прошло с момента авторизации, если нет то перезаписываю время.

По поводу авторизации.
Я делаю так. Проверяю логин/пароль если все правильно то в сессию запиисываю "признак авторизации":
$sess[\'auth\']=1;
В последующих страницах просто проверяю эту переменную. Если она равна 1 значит пользователь прошел авторизацию.
То есть в моем методе не нужно делать лишний запрос к БД.
Что касается старых сессий то насколько я знаю PHP их сам удляет. В переменной gc_maxlifetime - через сколько после последнего обращения нужно удалить эту сессию.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
сессии
« Ответ #16 : 22 Ноября 2001, 02:47:49 »
Цитировать
А то если твой скрипт вызовут так
step2.php?user_name=name&user_phone=02
будут у тебя проблемы с безопасностью

База вернет 0, а это будет означать что такого пользователя несуществует и погонит его в шею.


Цитировать
Что касается старых сессий то насколько я знаю PHP их сам удляет. В переменной gc_maxlifetime - через сколько после последнего обращения нужно удалить эту сессию.

Чистка старых сессий на самом деле делаеться обработчиком handle_gc(), но поскольку это процес слишком ресурсоемкий разработчики сделали session.gc_probabilityА я думаю мало у кого сдесь есть возможность устонавливать такие пораметры. А именно им устанавливаеться в процентах, какова вероятность того, что при следующем запуске сценария будет выбран обработчик "Чистка мусора"...
А если ресурс имеет невысокую посещаемость велика вероятность сохронения старых сессий.
.::dO_ob::.

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
сессии
« Ответ #17 : 22 Ноября 2001, 03:41:47 »
unset($auth) лучше делать, например, если ты ввел переменную $auth=1 в урле, а потом ее проверяешь, то поломать защиту проще простого. (кстати, на том же php.spb.ru про это написано)
Евгений aka Razor,

Оффлайн Art

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
безопасность
« Ответ #18 : 07 Марта 2002, 14:06:23 »
советую сделать небольшой файлик со следующим содержимым:

unset($var1);
session_start();
session_register("var1");
?>

и инклудить этот файлик в начало любого файлика, в котором вы жаждете использовать сессии и var1..
исчезает возможность передачи var1 через адресную строку (...?var1=vasya)...да и удобно так)

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
сессии
« Ответ #19 : 07 Марта 2002, 17:22:59 »
имхо, воспользоваться готовыми безопасными решениями и не переизобретать велосипед.
с уважением,
магистр белой магии.

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
эх, млин
« Ответ #20 : 07 Марта 2002, 21:54:39 »
http://php.spb.ru/php/session.html
Art
Зачем тему поднимать, к-рая уже давно закрыта???
Евгений aka Razor,

Оффлайн KBA-KBA

  • Прыгает все время...
  • Постоялец
  • ***
  • Сообщений: 125
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cold.13pm.ru/
сесии не удаляются...
« Ответ #21 : 21 Апреля 2002, 02:31:29 »
session_unset();
session_unregister("user");
session_destroy();

ни одна из этих функций ни к чему не приводит...
в чем тут дело?
---
зы
одну закрыли, другую подняли...

Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля
сессии
« Ответ #22 : 22 Апреля 2002, 10:11:52 »
KBA-KBA
Наверное юзаешь ПХП под виндой?

Оффлайн Kuulest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
to Dm
« Ответ #23 : 22 Апреля 2002, 14:38:56 »
Цитировать
имхо, воспользоваться готовыми безопасными решениями и не переизобретать велосипед.


Kakimi imenno?
I bet you knew it !!

Оффлайн KBA-KBA

  • Прыгает все время...
  • Постоялец
  • ***
  • Сообщений: 125
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cold.13pm.ru/
сессии
« Ответ #24 : 22 Апреля 2002, 16:16:28 »
ну да под виндой... а у нее что траблы с сесиями???

Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля
сессии
« Ответ #25 : 22 Апреля 2002, 18:13:16 »
Да нет с сесиями все впорядке, просто она их не удаляет ;)

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
сессии
« Ответ #26 : 22 Апреля 2002, 20:47:30 »
с уважением,
магистр белой магии.

Оффлайн Kuulest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
to Dm
« Ответ #27 : 22 Апреля 2002, 20:54:49 »
Spasibo, eshe ne uspel razobratsya no vrode chto interesnoe..
I bet you knew it !!

Оффлайн KBA-KBA

  • Прыгает все время...
  • Постоялец
  • ***
  • Сообщений: 125
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cold.13pm.ru/
сессии
« Ответ #28 : 23 Апреля 2002, 00:24:10 »
как так не удаляет? совсем???
и значения изменить не может? и отситить значения?

Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля
сессии
« Ответ #29 : 23 Апреля 2002, 10:25:08 »
Нет все работает нормально. Не удаляет автоматически. Т.е. после того как заканчивается время сессии.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28