我有一个由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();
?>
答案 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');