PHP4 session may not work as it should, unless you use it consistent way.
i.e. Use session_(un)register() and only use globals, OR enable track_vars and
disable register_globals and only use $HTTP_SESSION_VARS w/o
session_(un)register(). It may work even if register_globals is on. I didn't
test session module with this configuration enough.
Following code works as expected on my systems (PHP4.0.4-PHP4.0.5RC1/Apache
SAPI/W2K and PHP4.0.4-PHP4.0.4RC6/Apache SAPI/Linux at least)
=== code begin ===
<?php
require_once('lib/session.inc'); // Define my custom session handlers and start
session
?>
<html>
<head>
<title>Session Test</title>
</head>
<body bgcolor="#FFFFFF">
<pre>
<?php
if (isset($HTTP_GET_VARS['a'])) {
$HTTP_SESSION_VARS['a'] = array( 'a'=>1, 'b'=>2 );
print_r($HTTP_SESSION_VARS);
}
elseif (isset($HTTP_GET_VARS['b'])) {
unset($HTTP_SESSION_VARS['a']['a']);
print_r($HTTP_SESSION_VARS);
}
else {
print_r($HTTP_SESSION_VARS);
}
?>
</pre>
</body>
</html>
==== code end ====
It should work as expected when you enable track_vars AND disable
register_globals in your php.ini.
The reason why there is session_register()/unregister() is there is no way for
session module to know which variables are session variables. With
$HTTP_SESSION_VARS, session module knows all variable in $HTTP_SESSION_VARS are
session variables. So programmer does not have to use session_(un)register().
There is also known problem that $HTTP_SESSION_VARS does not work like other
$HTTP_*_VARS. You will see what I mean if you write some test codes with
register_globals = on.
I don't know why many people use
register_globals = on
track_vars = off
magic_quote = on
Life would be much easier with
register_globals = off
track_vars = on
magic_quote = off
Hope this helps,
--
Yasuo Ohgaki
""Tobias Talltorp"" <[EMAIL PROTECTED]> wrote in message
9bempj$a77$[EMAIL PROTECTED]">news:9bempj$a77$[EMAIL PROTECTED]...
> I did it!
> Too much work for something as simple as this though IMO. I think I will
> write a function for this...
>
> <?
> session_start();
> $newarray = $HTTP_SESSION_VARS["array"];
> unset ($newarray["one"]);
> $array = $newarray;
> session_register("array");
> ?>
>
> Thanks,
> // Tobias
>
>
> ""Yasuo Ohgaki"" <[EMAIL PROTECTED]> wrote in message
> 9bdeag$88r$[EMAIL PROTECTED]">news:9bdeag$88r$[EMAIL PROTECTED]...
> > You are registered $array as session,
> > You need to unset() element. I think it should work.
> >
> > Regards,
> > --
> > Yasuo Ohgaki
> >
> >
> > ""Tobias Talltorp"" <[EMAIL PROTECTED]> wrote in message
> > 9bd8un$kqt$[EMAIL PROTECTED]">news:9bd8un$kqt$[EMAIL PROTECTED]...
> > > I know how to unset a specific value in an ordinary array:
> > > unset ($array["one"]);
> > > How do I do this if my array is in a session?
> > >
> > > Here is my code:
> > > <?
> > > session_start();
> > > $array = array(one=> "number one", two=> "Number two", three=> "Number
> > > three");
> > > session_register("array");
> > > ?>
> > >
> > > I tried this... Didn't work:
> > > <?
> > > session_start();
> > > session_unregister("array[one]");
> > > ?>
> > >
> > > Thanks,
> > > // Tobias Talltorp
> > >
> > >
> > >
> > >
> > > --
> > > PHP General Mailing List (http://www.php.net/)
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > To contact the list administrators, e-mail: [EMAIL PROTECTED]
> > >
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > To contact the list administrators, e-mail: [EMAIL PROTECTED]
> >
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]
- [PHP] unregister part of array in session Tobias Talltorp
- Re: [PHP] unregister part of array in session Brian Clark
- Re: [PHP] unregister part of array in session Brian Clark
- Re: [PHP] unregister part of array in session Yasuo Ohgaki
- Re: [PHP] unregister part of array in session Tobias Talltorp
- Yasuo Ohgaki