Custom Session Func?

From: Date: Wed, 16 May 2001 00:41:20 +0000
Subject: Custom Session Func?
Groups: php.general 
Request: Send a blank email to php-general+get-52966@lists.php.net to get a copy of this message
Hi, Problem: I register a session variable and assign a value to it. The value is lost when I try to access it from a different webpage later. Must I use custom session_save_handler functions if I want to extend the life of a variable's value from Webpage to Webpage? Details: I'm using PHP's session management (PHP 4.0.3pl1). session.save_handler is set by default to files. According to the manual track_vars is always enabled for this version of PHP. I use the following code to manage my session. It is contained in a include file that is shared by all PHP pages: session_save_path("/usr/some/path/html/sessions/"); session_start(); $registered_user_key = false; if ( ! session_is_registered("user_key") ) { session_register("user_key"); $HTTP_SESSION_VARS["user_key"] = "dummy"; $registered_user_key = true; } function log_user_key($user_key = false) { global $HTTP_SESSION_VARS, $set_user_key, $get_user_key; $HTTP_SESSION_VARS["user_key"] = $user_key; $set_user_key = $user_key; $get_user_key = get_session_key("user_key"); } function log_session() { } function get_session_key($key_name) { global $HTTP_SESSION_VARS; return($HTTP_SESSION_VARS[$key_name]); } <testing> I submit a Webpage that includes a value for "user_key". <note> A session file is created in the subdirectory sessions. This file's filename coincides with the reported cookie session id. </note> <processing> The function log_user_key(...) is called with a legal value in response to my user input. </processing> <verification> In response to the user's input I generate webpage that reports the value that was saved. I report this value using the function log_user_key(). </verficiation> <failure> I submit another Webpage. This Webpage reports: a) The registration of the variable "user_key" was apparently preserved. How I know that? Because $registered_user_key is set to false, which means that the body of the if (! sesson_is_registerd ...) {} wasn't visited. b) I report the result of session_is_registered and it report 1 (i.e. true). c) get_session_key("user_key") does not return the value I previously assigned to "user_key" using the log_user_key function. </failure> I checked the session file in the sessions/ subdirectory. It is empty. Doesn't PHP's session manager keep its info in there? If it does, why wasn't it written to the file? Doesn't the default files session_save_handler take care of that? Or must I supply a custom handler set to ensure that the values are saved? TIA, Elan

« previous php.general (#52966) next »