I've posted several times mentioning that I am completely unable
to cause sessions to persist. Over the intervening time, I have
replicated this problem to a different machine, with the same
results. Here's a recap of the problem.
I am not using cookies. Sessions are automatically created (and
changing that makes no difference) The relevant session variables
(copied from phpinfo) are:
Session Support enabled
session.auto_start On <- hence no session_start
session.name PHPSESSID
session.use_cookies Off <- no cookies
session.use_trans_sid On
Environment is FreeBSD4.8. phpinfo for apache says:
Apache/1.3.29 (Unix) mod_perl/1.28 PHP/4.3.4 mod_ssl/2.8.16 OpenSSL/0.9.6d
Here is a cut/paste of the borwser screen for the code below:
Stage:0 SessionID: 04ace04b1fe0bc81d2cd678c9bab1619
_____ [Submit]
Stage:1 SessionID: 04ace04b1fe0bc81d2cd678c9bab1619 Request: Array ( )
So I type "foo" into the box and hit submit. And the session variable
is NOT preserved:
Stage:0 SessionID: 55c70989b7279d6a18edfd81b28d67a6
foo___ [Submit]
Stage:1 SessionID: 55c70989b7279d6a18edfd81b28d67a6 Request: Array ( [PHPSESSID] =>
04ace04b1fe0bc81d2cd678c9bab1619 [field] => foo )
The session directory IS writable and I see the expected information
being written there:
-rw------- 1 nobody wheel 10 May 21 13:35
sess_04ace04b1fe0bc81d2cd678c9bab1619
-rw------- 1 nobody wheel 10 May 21 13:38
sess_55c70989b7279d6a18edfd81b28d67a6
Apache runs as user "nobody" on this server. Both session files contain:
stage|i:1;
but the files never seem to be being read back!
Help!?
Here's the entire php code I'm testing with:
<?
if (!isset($_SESSION['stage'])) {
$_SESSION['stage'] = 0;
}
if (!isset($_POST['field'])) { $_POST['field'] = ""; }
?>
<html>
<head><title>PHP Test page</title></head>
<body>
<?
echo "Stage:"; echo $_SESSION['stage'];
echo " SessionID: "; echo session_id();
$_SESSION['stage'] = 1;
?>
<form method="post" action="xxx.php">
<input type="text" maxlength="7" size="7" name="field" value="<?echo
$_POST['field']?>">
<input type="submit" value="Submit">
</form>
<?
echo "Stage:"; echo $_SESSION['stage']; echo " ";
echo " SessionID: "; echo session_id(); echo " ";
echo " Request: "; print_r($_REQUEST);
?>
</body> </html>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php