Я пишу код для математических задач - они следуют за форматом со случайными сгенерированными переменными, а затем я блокирую переменные в соответствии с приведенным ниже кодом. Что не работает - form03 позволяет пользователю завершить страницу математических задач и выполнить сброс для другого. Мне нужно уничтожить сеанс в этом состоянии. Но даже когда я ввожу данные в form03, так что он isset, старые значения сеанса остаются. ???PHP условный session_destroy не работает как ожидалось
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";
}
спасибо. Это не сработало. После нескольких входов я столкнулся со странным сценарием, увидев эхо «hello isset», но получив Undefined Index Notices для всех четырех терминов в if-сравнению isset ($ _ SESSION ['y']). – ptme
Ваш код предполагает, что когда 'y' установлен, то есть' x01' и 'x02'. Но 'y' устанавливается при уничтожении сеанса, поэтому никакие другие переменные сеанса не будут установлены. Я не уверен, что вы пытаетесь сделать с «y», когда вы установите его, прежде чем уничтожить сеанс. – Barmar
Спасибо, я думаю, мне нужно было не только переместить этот сброс SESSION ['y'] после уничтожения, но и просто избавиться от этого сброса SESSION ['y'] вообще (а остальная часть этого первого IF сравнение теперь стоит в том порядке, который вы предложили) .... Тем не менее, я все еще не могу перезагрузить сессию, когда я ввожу значение для $ user_input03. I * do * получить эхо «hello \ $ z», но значения сеанса по-прежнему установлены (если я вручную не уничтожу сеанс безоговорочно). – ptme