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

Форум PHP

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

 

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

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

тема: Как получить PHPSESSID
 
 автор: Staglu   (08.02.2008 в 19:35)   письмо автору
 
 

Всем Добрый Вечер!!

У меня не большой вопросик возник. Вот к примеру если я вызываю $_SERVER["PHPSESSID"], до того как вызову функцию session_start(), то значение выдается пустое. А если после вызова старта сессии, значение PHPSESSID выдается нормально. Можно как нибудь получить PHPSESSID без вызова старта сессии. Или как сгенерировать индификатор пользователя и привязать его к пользователю.

Всем заранее Спасибо!!!

   
 
 автор: Staglu   (08.02.2008 в 20:21)   письмо автору
 
   для: Staglu   (08.02.2008 в 19:35)
 

Помогите пожайлуста!

   
 
 автор: bronenos   (08.02.2008 в 20:41)   письмо автору
 
   для: Staglu   (08.02.2008 в 20:21)
 

все делается само

   
 
 автор: Staglu   (08.02.2008 в 20:46)   письмо автору
 
   для: bronenos   (08.02.2008 в 20:41)
 

И невозможно присвоить не как индификатор, или сгенерировать самим. Просто очень нужно!

   
 
 автор: ddhvvn   (08.02.2008 в 20:57)   письмо автору
 
   для: Staglu   (08.02.2008 в 20:46)
 


<?php
  session_id
(md5(microtime)); //самый простой вариант
  
session_start();
?>

   
 
 автор: Staglu   (08.02.2008 в 21:04)   письмо автору
 
   для: ddhvvn   (08.02.2008 в 20:57)
 

Ну хорошо, это я понял. Но мне такое не подходит. Я пишу собственный межанизм сессий, и мне нужно создать индификатор сессси и так, чтобы он был привязан к пользователю. Если я к примеру через md5 пропущу ip + user_agen, как Вы думаете будет такое работать??? Если нет, то есть какой-нибудб подобный способ.

   
 
 автор: Staglu   (08.02.2008 в 21:35)   письмо автору
 
   для: Staglu   (08.02.2008 в 21:04)
 

Пожайлуста не молчите!

   
 
 автор: cheops   (09.02.2008 в 01:56)   письмо автору
 
   для: Staglu   (08.02.2008 в 21:04)
 

Лучше перезагрузите стандарный механизм сессий, как это описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5253.

   
 
 автор: а-я   (09.02.2008 в 05:09)   письмо автору
 
   для: Staglu   (08.02.2008 в 21:04)
 

IP- может быть динамическим, так что Вы потеряете людей.

можно использовать что-то вроде


<?php 
$new_sid 
md5(
               
$_SERVER['HTTP_USER_AGENT'].
               
substr(ip2long($_SERVER['REMOTE_ADDR']),0,6).
               
time()
              );
session_id($new_sid);
session_start();
?>


но вы должны узнавать время входа юзера.
1) записывать в БД. когда юзер зашел
или
2) узнавать время создания файла сессии

   
 
 автор: kasmanaft   (09.02.2008 в 07:04)   письмо автору
 
   для: Staglu   (08.02.2008 в 21:04)
 

Идентификатор запишите в БД. Установите пользователю куку с новым идентификатором.
При заходе пользователя аналогичный id из его куков извлекайте из своей БД...

PS или файл нужный открывайте.. Как у вас там...

   
 
 автор: Staglu   (09.02.2008 в 10:13)   письмо автору
 
   для: kasmanaft   (09.02.2008 в 07:04)
 

Вроде начало у меня получаться, спасибо всем!!!

   
 
 автор: Staglu   (09.02.2008 в 10:38)   письмо автору
 
   для: Staglu   (09.02.2008 в 10:13)
 

Вот прикол....

Если я понимаю правильно, то включен куки у поситителя или нет на создание сессии это не влияет. В Opera выключаю куки и пишу вот такой код:


<?php
session_start
();
$_SESSION["g"] = 'Hello Words';
echo 
session_id();
?>


Функция session_id() при каждом обновлении страницы, генерирует новы SID, а если включаю куки то все нормально SID остается тот же самый при обновлении страницы. И вот еще прикол в Explorer выключенные куки или нет на сессию не влияет.

Наверное меня просто уже глючит, надо идти спать!

   
 
 автор: Staglu   (10.02.2008 в 17:13)   письмо автору
 
   для: Staglu   (09.02.2008 в 10:38)
 

Это нормально или нет. Такое поведение Opera

   
 
 автор: Staglu   (11.02.2008 в 15:32)   письмо автору
 
   для: Staglu   (10.02.2008 в 17:13)
 

-

   
 
 автор: bronenos   (10.02.2008 в 18:05)   письмо автору
 
   для: Staglu   (09.02.2008 в 10:38)
 

Я хз, что там с ИЕ, но идентификатор сессии где-то должен временно храниться.
Это URL или куки

   
 
 автор: Staglu   (11.02.2008 в 15:33)   письмо автору
 
   для: bronenos   (10.02.2008 в 18:05)
 

Ладно, а не знаете какой header отправляет функция session_start();. Или хотя бы алгоритм примерный работы этой функции.

Так-то я понял примерно как написать собственный механизм сессий, но до меня не как не может дойти, вот к примеру мне нужно данные сохранить в массиве для того или иного пользователя, а как же потом извлечь данные, если я не знаю индификатора пользователя. Если я буду к примеру сессии хранить в файле, то у имени файл должен носить ID того или иного пользователя, чтобы я мог к нему абротиться и извлечь данные. Можно конечно сохранить на ашине клиента куки а потом смотреть какой у него индифкатор, а если у пользователя выключенны куки, то мне такое не подходит.

Помогите хотя бы какими-нибудь словесными алгоритмами и идеями!!.

   
 
 автор: Петр   (11.02.2008 в 16:22)   письмо автору
 
   для: Staglu   (11.02.2008 в 15:33)
 

Механизм сессий который ты делаешь будет очень медленно работать...

   
Rambler's Top100
вверх

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