|
|
|
| Здравствуйте.
Подскажите пожалуйста ка проверить запущена ли сессия, т.е. вызывалась ли функция session_start()? | |
|
|
|
|
|
|
|
для: Alba
(15.01.2007 в 13:53)
| | isset($_SESSION['name']); | |
|
|
|
|
|
|
|
для: mindless
(15.01.2007 в 14:02)
| | Думаю, правильнее будет проверить session_id(). | |
|
|
|
|
|
|
|
для: Киналь
(15.01.2007 в 14:10)
| | Ыыы... опередил мну =( | |
|
|
|
|
|
|
|
для: mindless
(15.01.2007 в 14:02)
| | Спасибо, но мне нужно не это.
Нужно проверить вызывалась ли функция session_start().
Имеются подключаемые модули, подключается сразу несколько модулей, в разном порядке в зависимости от ситуации. В каждом из них нужно сделать проверку на запуск сессии, т.е. если в первом модуле сессия уже запущена, то в остальных уже не надо использовать session_start()...
На деюсь ясно изложил.
Тут идея пришла, если я буду проверять вот так:
if(!isset($_SESSION)){
session_start();
}
|
нормально будет?
вроде работает, но правильно ли так проверять? | |
|
|
|
|
|
|
|
для: Alba
(15.01.2007 в 14:16)
| | Ошибочка. Так делать не надо!
<?php
if (!session_id()) {
session_start();
}
?>
|
т.к. session_id() нужно вызвать после сессии. | |
|
|
|
|
|
|
|
для: Alba
(15.01.2007 в 13:53)
| |
<?php
session_start();
if (session_id()) {
print 'уже запущена';
}
?>
|
| |
|
|
|
|
|
|
|
для: Sergey89
(15.01.2007 в 14:11)
| | >
<?php
>session_start();
>
>if (session_id()) {
> print 'уже запущена';
>}
>?>
|
Спасибо, то что нужно. | |
|
|
|
|
|
|
|
для: Alba
(15.01.2007 в 13:53)
| | Не нужно писать своих функций, когда есть существующие...
http://ru.php.net/manual/ru/function.session-is-registered.php | |
|
|
|
|
|
|
|
для: mishaMC
(17.01.2007 в 11:48)
| | Ты бы хоть прочитал, что делает данная функция ;-). Плюс к этому:
>> If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(),
>> session_is_registered() and session_unregister(). | |
|
|
|
|
|
|
|
для: Sergey89
(17.01.2007 в 13:38)
| | немного продолжила эксперемент
<?php
session_start();
if (session_id()) {
print 'уже запущена session_id: ';
print (session_id());
}
session_destroy();
print '<br><br>session_id: ';
print (session_id());
?>
|
Вроде все работает, сессия начата - выводит ID, сессия разрушена - не выводит...
только если перезагрузить страницу, session_id не изменяется. Получается можно бесконечно создавать одинаковые сессии? Как сделать чтобы прикаждом заходе на страницу генерился уникальный id?
пример тут http://koni.nov.ru/test/session_id.php | |
|
|
|
|
|
|
|
для: Natusia
(22.01.2007 в 11:43)
| | Он и не должен менятся при обновлении. Меняется при открытии нового окна браузера. Если необходимо генерировать новый ИД каждый раз заного, то нужно перегрузить механизм обработки сессий. | |
|
|
|