note 39125 added to ref.session
| From: | jc_s at NOSPAM dot com | Date: | Sun, 18 Jan 2004 00:21:43 +0000 |
| Subject: | note 39125 added to ref.session | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-63758@lists.php.net to get a copy of this message | ||
For those having problems with session variables such as:
$_SESSION['sessn_data']['somedata'] = 'somevar';
I have found that session_register('sessn_data') is required at least once (before setting
this variable) to keep this data saved in the users session. If you use only
$_SESSION['sessn_data'] = 'somevar';
And also use session_register('sessn_data') your session will be reset each time the
session_register('sessn_data') is called after you set the
$_SESSION['sessn_data'] variable.
Example:
Page 1:
session_start();
session_register('sessn_data');
$_SESSION['sessn_data'] = 'some-var';
Page 2:
session_start();
session_register('sessn_data');
echo $_SESSION['sessn_data'];
Will return false, also:
Page 1:
session_start();
$_SESSION['sessn_data']['some-var'] = 'some-value';
Page 2:
session_start();
echo $_SESSION['sessn_data']['some-var'];
Will return false if session_register('sessn_data') is not called before setting its
value.
You need to use in this instance:
Page 1:
session_start();
session_register('sessn_data');
$_SESSION['sessn_data']['some-var'] = 'some-value';
Page 2:
session_start();
echo $_SESSION['sessn_data']['some-var'];
Tested on Linux Op Sys, Apache 1.3.29 (Unix) and PHP 4.3.3 with register globals switched both on
and off, default PHP ini settings.
----
Manual Page -- http://www.php.net/manual/en/ref.session.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+39125
Delete -- http://master.php.net/manage/user-notes.php?action=delete+39125&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+39125&report=yes
Search -- http://master.php.net/manage/user-notes.php