在将变量数据存储在数组中,然后将数组存储到会话时,我遇到了一个问题。只有一次,该值存储在0索引的数组中,但当下一页加载时,单击"下一步"按钮加载下一个测试,数组的值将被覆盖。
<?php session_start();
$cat_name = $_POST["cat_name"];
$which_test_id = $_POST["which_test_id"];
echo $correct = $_POST["correct"];
$answers[] = array('correct' => $correct);
$_SESSION["results"] = $answers;
print_r($_SESSION["results"]); ?>
只需在设置前得到答案:)
<?php session_start();
$cat_name = $_POST["cat_name"];
$which_test_id = $_POST["which_test_id"];
echo $correct = $_POST["correct"];
$answers = (array_key_exists("results", $_SESSION)) ? $_SESSION["results"] : array();
$answers[] = array('correct' => $correct);
$_SESSION["results"] = $answers;
print_r($_SESSION["results"]);
?>
如果提交,则值显示
<?php session_start();
if(isset($_POST['submit']))
{
$cat_name = $_POST["cat_name"];
$which_test_id = $_POST["which_test_id"];
echo $correct = $_POST["correct"];
$answers[] = array('correct' => $correct);
$_SESSION["results"] = $answers;
}
print_r($_SESSION["results"]); ?>
1.声明数组时不需要"[]"。
2.数据会被覆盖,因为您没有首先检查数据是否已设置。
<?php
ini_set('session.cookie_domain',"localhost");
session_start();
if(isset($_POST['submit']))
{
$cat_name = $_POST["cat_name"];
$which_test_id = $_POST["which_test_id"];
echo $correct = $_POST["correct"];
$answers = array('correct' => $correct);
if(!isset($_SESSION["results"]))
{
$_SESSION["results"] = $answers;
}
}
print_r($_SESSION["results"]); ?>