note 39125 deleted from ref.session by betz
| From: | betz@php.net | Date: | Sun, 18 Jan 2004 10:27:39 +0000 |
| Subject: | note 39125 deleted from ref.session by betz | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-63773@lists.php.net to get a copy of this message | ||
Note Submitter: jc_s@NOSPAM.com
----
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.