PHP条件session_destroy无法按预期工作

时间:2015-08-21 02:05:08

标签: php

我正在为数学问题编写代码 - 它们遵循一种格式,随机生成变量,然后根据下面的代码锁定变量。什么是无效的 - form03允许用户完成数学问题页面并重置为另一个。我需要在这种情况下销毁会话。但即使我在form03中输入数据,因此设置,旧的会话值仍然存在。 ???

require_once 'random.php';
require_once 'forms-functions.php';

if (isset($_SESSION['z'])) {
   $_SESSION['y'] = "";
   session_start();
   session_destroy();
}

session_start();

if (isset($_SESSION['y'])) {
   echo "hello isset<br>";
   $x01 = $_SESSION['x01'];
   $x02 = $_SESSION['x02'];
   $output01b = $_SESSION['output01b'];
   $output02b = $_SESSION['output02b'];

} else {
   echo "hello else<br>";

   ob_start();
   random1();
   $output01 = ob_get_clean();
   $output01b = "single string: ".$output01."";
   $x01 = $x;

   ob_start();
   random1();
   $output02 = ob_get_clean();
   $output02b = "single string: ".$output02."";
   $x02 = $x;

   $_SESSION['x01'] = $x01;
   $_SESSION['x02'] = $x02;
   $_SESSION['output01b'] = $output01b;
   $_SESSION['output02b'] = $output02b;

   $y = "1";
   $_SESSION['y'] = $y;     
}

echo $output01b;
$user_input01 = form01('user_input01');

echo $output02b;
$user_input02 = form02('user_input02');

$user_input03 = form03('user_input03');

if(isset($user_input03)) {
   $z = 1;
   $_SESSION['z'] = $z;
   echo "hello \$z";
} 

1 个答案:

答案 0 :(得分:1)

在尝试访问会话变量session_start()之前,您需要调用z。在销毁旧会话并开始新会话后,您需要设置新的会话变量y

session_start();
if (isset($_SESSION['z'])) {
    session_destroy();
    session_start();
    $_SESSION['y'] = "";
}