RE: Sessions
| From: | James Duncan | Date: | Sun, 27 Aug 2000 23:25:42 +0000 |
| Subject: | RE: Sessions | ||
| References: | 1 | Groups: | php.windows |
| Request: | Send a blank email to php-windows+get-2190@lists.php.net to get a copy of this message | ||
Something weird is happening because session_unregister doesn't work (i.e. I
can still echo the global variable after unregister) but session_unset does
work. Still can't get the session file to 0 bytes with a session_destroy()
from another page, which is what is supposed to happen? Session_destroy()
always reports failure ;(
Thanks for the code below. Unfortunately "unlink" isn't built into my
version of PHP :( So I've had to use the following work around:
exec("cmd nul /c \"del $file\"");
This completely deletes the session file from the server. You are right in
that this only works after a "session_destroy()", so the destroy command is
doing something! Physically deleting the session file does give me a work
around but it's a rather nasty hack in my opinion. Surely
"session_destroy()" should work properly on Windows? Has anyone managed to
get it to work correctly?
Thanks
-----Original Message-----
From: Klaus Schmidt [mailto:ks@ksweb.de]
Sent: 27 August 2000 19:09
To: James Duncan
Cc: php-windows@lists.php.net
Subject: AW: Sessions
yes, it the same here on
WIN98,Apache 1.3.12, PHP4.0.2dev (based on the actual file from php.net)
I tried the following and the Server ist clean, no 'orphan'-session-files
hope it works
<?
session_start();
$id=session_id(); // I didn't try so set this variables
'behind' the
$path=session_save_path(); // _unset() and _destroy ...up2u
$file = $path . "sess_" . $id;
echo $file."<br>";
@session_destroy(); // shows a warning without that '@' :-)) an doesn't
destroy the file
// but without that line the unlink() don't works.
// so it seems that any important internal link/index
is destroyed!
echo unlink($file); // success
?>
outputs:
C:\usr\htdocs\ksweb\sessions\sess_6a8f3ec2809f5fa3b2a0975ab3191629
1
cu Klaus
p.s.:
here a important text from php.net.manual:
(hope you know that)
theo@alldarlings.com
09-Jan-2000 01:54
<PRE>
What session_start does is looks for an existing session, and if none
exists, it creates a new one. What it also does (that wasn't fully eplained
above by the statement "initializes variables" is looks for any session
variables, and sets them globally on the page that start got called from. If
you have any variables already set (say from a get/post from the previous
page) they will get overwritten. Also, changing a variable on a page will
not update its session counterpart.
Also, note that any call to session_register will automatically call
session_start (and therefore pull all session variables and set their local
counterparts.)
If I wasn't so lazy, I'd upload an example of what I mean.
</PRE>