【发布时间】:2016-08-17 19:00:17
【问题描述】:
我有一个表单,这个表单在一个名为 question1.php 的页面上,我希望它在按下提交按钮时加载 question2.php。
<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" name="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;
}
}
}
?>
编辑:我做了一个更简单的演示来尝试更好地解释自己,我有三页。
page1.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<form action="page2.php">
<input type="submit" value="submit" name="submit">
</form>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
?>
</body>
</html>
page2.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<form action="page3.php" method="post">
<input type="radio" name="ans" value="color">
<input type="submit" value="submit" name="submit">
</form>
<?php
// Echo session variables that were set on previous page
if(isset($_POST['submit'])) {
if(isset($_POST['ans'])) {
$selected_answer = $_POST['ans'];
if($selected_answer == "color") {
$_SESSION["favcolor"] = "red";
}
}
}
?>
</body>
</html>
还有page3.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
echo "Favorite color is " . $_SESSION["favcolor"] . ".";
?>
</body>
</html>
所以在第一页我声明会话变量“favcolor”,然后在第二页如果用户选择单选按钮我想将颜色更新为红色,但它不会改变我,在第三页仍然是绿色的
【问题讨论】:
-
你可能忘记了
session_start()。没有开始的会话,没有保存/传播的数据 -
什么?您真的应该在php.net 上阅读更多关于 php 的真正含义
-
我有 session_start(),在我的测验结束时(5 个问题)我可以显示会话变量,但是它们在应该增加的时候没有增加
-
^ 他们总是说“事后”。
-
“我有 session_start(),在我的测验结束时(5 个问题)” - “在最后?”............我没有这个问题。