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

Reply via email to