PHP会话变量不会改变

时间:2016-08-16 22:26:22

标签: php html session session-variables

我有一个由4个单选按钮组成的表单,每个单选按钮代表一个不同的形状,无论是长方体,圆锥体,圆柱体还是球体,我还为每个形状都有一个会话变量(每个都设置为0),当用户选择一个单选按钮并提交表单我希望它添加1到这里选择的任何形状是我的代码

HTML

<form action="question2.php" method="post">
    <input type="radio" name="ans" value="cuboid">
    <input type="radio" name="ans" value="cone">
    <input type="radio" name="ans" value="cylinder">
    <input type="radio" name="ans" value="sphere">
    <input type="submit" value="Submit">
</form>

PHP

<?php
    if(isset($_POST['submit'])) {
        if(isset( $_POST['ans'])) {
             $selected_answer = $_POST['ans'];
             if($selected_answer == "cuboid") {
                 $_SESSION["cuboid"] = ((int)Session["cuboid"]) + 1;
             }
        }
    }
?>

然而这不起作用。 $ _SESSION [&#34; cuboid&#34;]只停留0.有谁能告诉我哪里出错了?

编辑 - 我在上一页中定义了Session变量,如下所示

$_SESSION["cuboid"] = 0;

此外,我的所有页面顶部都有以下内容

<?php
    session_start();
?>

1 个答案:

答案 0 :(得分:4)

如果您还没有这样做,则需要使用session_start

如果您启用了错误报告,则还会出现语法错误。

更改,

$_SESSION["cuboid"] = ((int)Session["cuboid"]) + 1;

要,

$_SESSION["cuboid"] = ((int)$_SESSION["cuboid"]) + 1;

另一件事......

您的if (isset($_POST['submit']))条件检查将永远不会运行,因为您实际上没有为其设置name属性。

错误报告

要启用错误报告以查看您所犯的任何错误,

error_reporting(-1);
ini_set('display_errors', 'On');