0

我在下面有一段代码,其中包含$_SESSION变量:

if (isset($_POST['id'])) {

$_SESSION['id'] = $_POST['id'];

}

if(isset($_SESSION['sessionNum'])){
            //Declare my counter for the first time

            $_SESSION['initial_session'] = $_SESSION['sessionNum'];
            $_SESSION['sessionNumber'] = intval($_SESSION['sessionNum']);
            $_SESSION['sessionCounting'] = 1;

    }

...

ASSESSMENT: (<?php echo $assessment ?>) TOTAL ASSESSMENTS: <?php echo $_SESSION['initial_session'] ?>

上面的语句显示了这一点:

ASSESMENT: (WESSF)  TOTAL ASSESSMENTS: 2

但是接下来的两页(completesession.php)我想使用其中的几个$_SESSION变量。但问题是,如果我只做 a var_dump($_SESSION['sessionNum'])then itint(1)而不是 value 2。但它确实输出(WESSF). var_dump($_SESSION['id'])为什么是这样?

下面是完整的session.php) 页面:

<?php

ini_set('session.gc_maxlifetime',12*60*60);
ini_set('session.gc_divisor', '1');
ini_set('session.gc_probability', '1');
ini_set('session.cookie_lifetime', '0');
require_once 'init.php'; 

error_reporting(E_ALL);
ini_set('display_errors', 1);

session_start();

  var_dump($_SESSION['id']);
  var_dump($_SESSION['sessionNum']);

?>
4

1 回答 1

0

您可能在这里查看了错误的会话密钥。采用:

var_dump($_SESSION);

显示所有会话密钥。

此外,您发布的代码没有计算任何数字,因此数字1看起来是正确的(我可以看到少数),并且2不会是正确的。

最后一点:因为您可以成功地看到int(1)它表明您的 PHP 设置中的会话功能实际上正在工作。所以你可能只是在某个地方犯了一些错误来设置正确的键/值。

于 2013-01-03T22:02:36.613 回答