Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > организация session


Автор: Vreden 24.8.2006, 22:18
Нужно в одном сценарии организовать сессию например с двумя переменными.
А в другом с этими переменными работать.
Как правильно организовать её, плиз дайте код!!!  smile 

Автор: ewolf 24.8.2006, 22:32
Код


<?php
session_start(); //  В самом начале твоего скрипта

if( !isset($_SESSION['foo']) )
   $_SESSION['foo'] = 'data';
else
   echo $_SESSION['foo'];

?>



также
http://www.php.net/manual/ru/ref.session.php

Автор: jzZ 24.8.2006, 22:34
Код

session_start();
$_SESSION['a'] = $a;
$_SESSION['b'] = $b;

Потом во втором .php файле делаем так:
Код

session_start();
$c = $_SESSION['a']; 
$d = $_SESSION['b'];

Теперь значения переменных d и c содержут значения переменных из файла 1.

Автор: Vreden 24.8.2006, 22:43
спасибо ребят, но у меня такой вопрос:
ликвидируются ли переменные сессии, после того как юзер закроет браузер, это очень важно для меня?
и еще:
у меня в хтмл файле есть пхп код, будут ли работать в хтмл файле эти переменные?

Автор: Добряк 24.8.2006, 23:08
Цитата(Vreden @  24.8.2006,  23:43 Найти цитируемый пост)
ликвидируются ли переменные сессии, после того как юзер закроет браузер, это очень важно для меня?

Да.
Цитата(Vreden @  24.8.2006,  23:43 Найти цитируемый пост)
у меня в хтмл файле есть пхп код, будут ли работать в хтмл файле эти переменные? 

Да, будут. Только в самом начале файла (перед выводом информации) пропиши session_start().

Автор: Vreden 24.8.2006, 23:10
спасибо Добряк, и еще вопросик, как мне ликвидировать самому переменные сессии по завершению сценария?
В том смысле, что они должны уничтожаться в конце кода сценария, ну или не обязательно в конце, вообщем после того, как я с ними поработал, есть какая-нибудь функция?

Автор: Добряк 24.8.2006, 23:13
Код

session_unregister('var');

Автор: Muchenik 24.8.2006, 23:14
Цитата

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

Когда создаешь сессию session_start(); в кукки сохраняется id сессии. До тех пор пока храниться этот id пользователь может закрывать браузер. 
Время хранения этой куки, если не ошибаюсь, выставляется в  php.ini опцией session.gc_maxlifetime.

session.gc_maxlifetime - этот параметр наверное все таки для данных, а не для кукки...

Автор: Vreden 24.8.2006, 23:15
спасибо Добряк!  smile

Добавлено @ 23:17 
Muchenik, а если мне нужно чтобы они закрывались не в определенный временной период, а именно по закрытию браузера, однако!! Это возможно?

Автор: Muchenik 24.8.2006, 23:37
session.cookie_lifetime - вот параметр для кукки
если равно 0 (по-умолчанию), то кука, хранящяя сессию, будет уничтожена на компьютера посетителя как только он закроет все окошки браузера. Если не нуль, то параметр задает число секунд для хранения куки.

Код

ini_set("session.cookie_lifetime", "0");

Автор: Mal Hack 25.8.2006, 01:01
Цитата(Добряк @  25.8.2006,  00:13 Найти цитируемый пост)
session_unregister('var');

Устарело. unset для этого есть.

Автор: Vreden 25.8.2006, 10:06
Все окошки не пойдет, нужно что бы как только страницу текущую. 
Ладно будем в ручную удалять!

Автор: BobiKK 25.8.2006, 10:24
Все-таки, session_register и session_unregister не рекомендуется использовать: 1) Устаревший подход, 2) требуется register_globals.
Чтобы удалить переменную, достаточно лишь написать unset($_SESSION['var_name']);

Автор: Vreden 25.8.2006, 10:46
Большое спасибо всем!!!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)