当用户进行测验时,他们的分数会显示在$grade值中,该值会在测验主页上显示得很好。但是,如果我更改表单操作以将用户转发到一个新页面(grade.php),$grade就会失去它的价值。
如何获取值并将其显示在下一页上?PreviousURL和user_token的值显示。。。
<form action="grade.php" method="post" id="quiz">
<input type="hidden" name="PreviousURL" id="url" />
<input type="hidden" name="user_token" value="<?php echo $_SESSION['user_token']; ?>" />
<input type="submit" value="Submit Quiz" />
</form>
所以我试过了,但没用。。。
<input type="hidden" name="grade" value="<?php echo $_SESSION['grade'] ?>" />
在grade.php
上确保使用启动文件
session_start();
根据您的问题,我认为您没有在grade.php
上开始会话。没有太多关于文件的信息
如果您不启动会话,$_SESSION
的值将被销毁
不应将表单值保存在$_SESSION
中,因为表单值已在$_POST超全局中。
你可以像一样
<form action="grade.php" method="post" id="quiz">
<input type="hidden" name="PreviousURL" id="url" />
<input type="hidden" name="user_token" value="<?php echo isset($_POST['user_token']) ? $_POST['user_token'] : '' ; ?>" />
<input type="submit" value="Submit Quiz" />
</form>
因此,基本上它测试user_token字段中是否有值,它将应用该值,否则它将设置为"(无)。如果您不熟悉三元运算符语法,请参阅http://php.net/manual/en/language.operators.comparison.php
更新部分:
// Your form page goes like
<?php session_start();
print_r($_SESSION); // If there is a session your form should show the value of user_token
// Rest of the script + html
?>
// grade.php
<?php session_start();
// do a print_r to see if you are receving session variables by
print_r($_SESSION);