cvs: php4(PHP_4_0_7) /ext/session session.c
| From: | Thies C. Arntzen | Date: | Sun, 02 Dec 2001 12:21:50 +0000 |
| Subject: | cvs: php4(PHP_4_0_7) /ext/session session.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-8379@lists.php.net to get a copy of this message | ||
thies Sun Dec 2 07:21:50 2001 EDT
Modified files: (Branch: PHP_4_0_7)
/php4/ext/session session.c
Log:
MFH
fix for $_SESSION
!!! please TEST, TEST, TEST !!!
Index: php4/ext/session/session.c
diff -u php4/ext/session/session.c:1.237.2.2 php4/ext/session/session.c:1.237.2.3
--- php4/ext/session/session.c:1.237.2.2 Thu Oct 11 19:52:00 2001
+++ php4/ext/session/session.c Sun Dec 2 07:21:50 2001
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: session.c,v 1.237.2.2 2001/10/11 23:52:00 ssb Exp $ */
+/* $Id: session.c,v 1.237.2.3 2001/12/02 12:21:50 thies Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -265,14 +265,15 @@
int php_get_session_var(char *name, size_t namelen, zval ***state_var TSRMLS_DC)
{
- HashTable *ht = &EG(symbol_table);
-
- if (!PG(register_globals))
- ht = PS(http_session_vars) ? Z_ARRVAL_P(PS(http_session_vars)) : NULL;
-
- if (!ht) return HASH_KEY_NON_EXISTANT;
-
- return zend_hash_find(ht, name, namelen + 1, (void **)state_var);
+ if (PS(http_session_vars)) {
+ if (zend_hash_find(Z_ARRVAL_P(PS(http_session_vars)), name, namelen+1, (void **)
state_var)==SUCCESS) {
+ return SUCCESS;
+ }
+ } else if (!PG(register_globals)) {
+ /* register_globals is disabled, but we don't have http_session_vars */
+ return HASH_KEY_NON_EXISTANT;
+ }
+ return zend_hash_find(&EG(symbol_table), name, namelen+1, (void **) state_var);
}
#define PS_BIN_NR_OF_BITS 8
@@ -534,12 +535,12 @@
uint variable_len;
ulong num_key;
HashPosition pos;
-
- if (!PG(register_globals)) {
- if (!PS(http_session_vars)) {
- return;
- }
-
+
+ if (!PG(register_globals) && !PS(http_session_vars)) {
+ return;
+ }
+
+ if (PS(http_session_vars)) {
for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(PS(http_session_vars)), &pos);
zend_hash_get_current_key_ex(Z_ARRVAL_P(PS(http_session_vars)), &variable,
&variable_len, &num_key, 0, &pos) == HASH_KEY_IS_STRING;
zend_hash_move_forward_ex(Z_ARRVAL_P(PS(http_session_vars)),&pos)) {