保存会话变量将被覆盖

时间:2016-03-07 15:34:09

标签: php session-variables

我问用户他想要掷骰子多少次。 脚本显示输出。

session_start();
$number = $_POST["dice"]; // capture the amount of rolls from htmlpage
$count1 = 0; //have six of these, for each number

然后我继续初始化存储在服务器端的会话变量。

$_SESSION["one"] = $count1; // for all six different numbers

echo "You rolled a 1 " . $_SESSION["one"] . " times<br>";

我的问题很自然,会话变量不会存储旧卷,而是会在每个卷上重置。我怎样才能改变这个?

我认为我需要像isset(_SESSION["one"]这样的东西,但在这里我的逻辑放弃了我。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

我重读了你的问题:

<?php
session_start();

$number_of_rolls = $_POST['dice'];

for($i = 0; $i <= $number_of_rolls; ++$i)
{
    $roll_result = roll_dice_algorithm();
    $_SESSION['rolls'][$roll_result] = (isset($_SESSION['rolls'][$roll_result]) ? ($_SESSION['rolls'][$roll_result]+1) : 1);
}

ksort($_SESSION['rolls']);

foreach($_SESSION['rolls'] as $k=>&$v)
{
    echo 'You have rolled a '.$k.': '.$v.' times<br>';
}
unset($v);
?>

答案 1 :(得分:0)

您自己说过,每次运行脚本时都会初始化会话变量...

$_SESSION["one"] = $count1; // for all six different numbers

所以它总会重新开始......试试这个

$_SESSION["one"] = isset($_SESSION["one"]) ? $_SESSION["one"] : 0;