Form获胜';t将$score转发到下一页


Form won't forward $score to next page

当用户进行测验时,他们的分数会显示在$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);