можно ли узнать есть ли сессия не открывая ее

zerok

Новичок
можно ли узнать есть ли сессия не открывая ее

собсно вопрос
могу ли я узнать была ли уже открыта сессия не открывая ее ?
то бишь не вставляя
session_start();
 

Falc

Новичок
zerok
Ты можешь проверить наличие сессионой переменной в $_REQUEST.
 

zerok

Новичок
для какой версии php это справедливо?

то есть у меня есть 3 файла:

index.html :
<body>
<form action=login.php method=post>
<input type=text name=login><input type=password name=pass><input type=submit value=войти>
</form>
</form>
</body>

login.php
<?
if (($login == 'login') && ($pass=='parol')) {
session_start();
session_register("sess");
$sess['login']='login';
header("Location: index.php"); /* Redirect browser */
} else {

header("Location: index.html"); /* Redirect browser */
}
?>

index.php

<?

if (isset($_SESSION)) {
session_start();
session_register("sess"); // объявляем
} else {
header("Location: index.html"); /* Redirect browser */
exit;
}
?>

не работает.
 

zerok

Новичок
почему я не должен этого хотеть ?
узнать открыта она или нет ?
я не хочу лишний раз стартовать сессию если она мне там не нужна,
 

Crazy

Developer
Простые вопросы:

1. Чем тебе мешает "лишний старт сессии"?
2. Если ты узнаешь, что существует сессия с данным ID, то как ты содираешься использовать это при авторизации?
 

AlexVN

Новичок
Хм... Можно попробовать еще так:
array_key_exists('PHPSESSID', $_COOKIE);
Т.е. если в куке есть ID сессии, значит она потенциально заданна.
 

Demiurg

Guest
AlexVN
к твоему сведению идентификатор сессии передается не только через кукисы и имеет имя не только PHPSESSID. Так что не надо давать глупых советов.

>я не хочу лишний раз стартовать сессию если она мне там не нужна
так не стартуй, если не нужна.
 

zerok

Новичок
Фанат

потому что до старта сессии ее там нет.

Demiurg

ну а как узнать в сессии человек или нет? без старта сессии?
он был на другой странице, авторизовался.
как мне узнать что он авторизовался? не запуская сессии?
 

Demiurg

Guest
Может ты все же пояснишь, чем тебя так пугает старт сессии ?
 

AlexVN

Новичок
> он был на другой странице, авторизовался.
> как мне узнать что он авторизовался? не запуская сессии?

А... Вот в чем дело... Т.е. ты засунул переменную в сессию, а потом хочешь узнать, есть переменная в сессии не запуская её. Тогда простой ответ: никак.
Используй куку для этого.
 

Falc

Новичок
zerok
Сначало ты проверяешь заводилась ли сесия раньше для данного пользователя (описано в первом посте). Дальше, если сесиия есть, то стартуешь(продолжаешь) ее, и проверяешь авторизировался ли человек.

Crazy
>>Чем тебе мешает "лишний старт сессии"?

Старт сеиии шлет заголовки запрета на кеширование, это не очень хорошо.
 

Фанат

oncle terrible
Команда форума
потому что до старта сессии ее там нет.
НУ ТАК ТЕБЕ ЭТО И НАДО!

как мне узнать что он авторизовался? не запуская сессии?
НИКАК, ТОРМОЗ!
Сессия для того и служит, чтобы ты узнал, авторизовался человек, или нет.

чтобы получить из сессии данные об авторизации, ЕДИНСТВЕННЫЙ СПОСОБ - сделать Session_start
а вот Session_start уже, если не хочешь дергать зря, поднимай по наличию сида в реквесте. Неужели так трудно дотумкать?
 

Фанат

oncle terrible
Команда форума
AlexVN, если ты будешь продолжать в том же духе, то тебе светит Read-only team.
Оба твоих ответа в эту тему совершенно бессмысленные. второй - особенно идиотский.

Настоятельно советую тебе больше читать, еще больше - думать, и как можно меньше писать.
 
Сверху