Bug #44545 [Com]: Numeric keys in sessions fail silently
| From: | william at piecewise dot com | Date: | Thu, 30 Aug 2012 16:21:40 +0000 |
| Subject: | Bug #44545 [Com]: Numeric keys in sessions fail silently | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-173025@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=44545&edit=1
ID: 44545
Comment by: william at piecewise dot com
Reported by: info at concept47 dot com
Summary: Numeric keys in sessions fail silently
Status: Not a bug
Type: Bug
Package: Session related
Operating System: Windows Xp sp2
PHP Version: 5.2.5
Block user comment: N
Private report: N
New Comment:
I would have to agree. I had no idea about this rule for session vars and as a
result lost about an hour and a half before I stumbled across this post.
Previous Comments:
------------------------------------------------------------------------
[2008-03-27 12:46:57] info at concept47 dot com
And as this $_SESSION is "special" we can not add any errors when it's
passed invalid data
--- can you elaborate more on this? because that it is what I don't understand.
Why will
$1234 = "me";
fail fantastically but ...
$_SESSION['1234'] = "me"
not.
------------------------------------------------------------------------
[2008-03-27 11:31:14] jani@php.net
And as this $_SESSION is "special" we can not add any errors when it's passed invalid
data. You just have to _know_ this.
------------------------------------------------------------------------
[2008-03-27 11:30:28] jani@php.net
RTFM: "The keys in the $_SESSION associative array are subject to the same limitations as
regular variable names in PHP, i.e. they cannot start with a number and must start with a letter or
underscore. For more details see the section on variables in this manual. "
Found at http://php.net/session
------------------------------------------------------------------------
[2008-03-27 10:42:02] info at concept47 dot com
Description:
------------
trying to use numeric keys for sessions vars, fails, silently. This is bad and can lead to lost
hours/money for developer. I am just asking for this sort of assignment to fail in a far more
obvious manner.
Reproduce code:
---------------
$_SESSION['1234'] = "boooo!"
Expected result:
----------------
I expect the session variable to be stored or else fail miserably like this assignment would
$123 = "dummy!"
Actual result:
--------------
the session variable with a numeric key is never stored ... and it might take a developer a while to
figure out why, as other session vars are stored just fine.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=44545&edit=1