Bug #12600 Updated: Session_register & register_globals=off ---> strange behaviour?

From: Date: Sun, 25 Nov 2001 00:44:00 +0000
Subject: Bug #12600 Updated: Session_register & register_globals=off ---> strange behaviour?
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-71567@lists.php.net to get a copy of this message
ID: 12600 Updated by: sniper Reported By: tr909@bigfoot.com Old Status: Open Status: Closed Bug Type: Session related Operating System: linux redhat 7.1 PHP Version: 4.0.6 New Comment: Use $_SESSION[] which is introduced in PHP 4.1.0. Latest RC can be found here: http://www.php.net/~zeev/php-4.1.0RC3.tar.gz Previous Comments: ------------------------------------------------------------------------ [2001-08-06 15:39:56] jeroen@php.net Fixed title, didn't verify this. ------------------------------------------------------------------------ [2001-08-06 11:40:31] tr909@bigfoot.com function sess_reg($x){ global $HTTP_SESSION_VARS; $a = & $HTTP_SESSION_VARS[$x]; session_register($a); echo $a; $GLOBALS[$x] = & $HTTP_SESSION_VARS[$x]; } this seems to work but it is still strange that session_register("$HTTP_SESSION_VARS[$x]"); or even session_register("$HTTP_SESSION_VARS["foo"); do not work inside a function. even more strange is that HTTP_SESSION_VARS[$x] does not even exist at the time you set a reference to it? maybe, i'm curious now, that session_register() doesn't like arrays but with register_globals = off you just have the SESSION-VARS array ------------------------------------------------------------------------ [2001-08-06 11:23:34] tr909@bigfoot.com 1. when register_globals is off you have to SET and READ HTTP_SESSION_VARS this is wrong in the docs or at least confusing (example 1 on http://www.php.net/manual/en/ref.session.php ) BUG 2. session_register cannot be called from inside another funcion (when trying a by reference call this generates a call-time reference error on some servers) function & sess_reg($x){ global $HTTP_SESSION_VARS; session_register(& $HTTP_SESSION_VARS[$x]); $GLOBALS[$x] = & $HTTP_SESSION_VARS[$x]; } //session_start(); sess_reg("foo"); echo $foo++; when using session_register($HTTP_SESSION_VARS[$x]); the variable is NOT registered. and when used by reference (as in example above) generates a "Warning: Call-time pass-by-reference has been deprecated - argument passed by value;" Tr909 ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=12600&edit=1

« previous php.dev (#71567) next »