如何停止URL参数操作

时间:2019-02-10 15:19:26

标签: php mysql

我在创建的Web应用程序上具有以下URL(当前在本地运行): http://localhost:8080/trustsurvey/questionView.php?question=1

问题= 1来自GET参数,该参数每次用户单击“下一步”按钮时都会递增。

$questionNumber = $_GET['question'];

?之后隐藏或编码URL中的参数的最佳推荐方法是什么,从而使用户难以操纵URL并手动更改参数?

1 个答案:

答案 0 :(得分:3)

您可以使用session variables代替URL参数。

类似这样的东西(不是“完整的”代码,缺少一些isset检查等):

questionView.php

<?php
session_start();
$questionNumber = $_SESSION['questionNumber'] = $_SESSION['questionNumber'] ?? 1;
?>

<form method="post" action="answer.php">
<!-- Display question $questionNumber here -->
</form>

answer.php

<?php
session_start();
$questionNumber = $_SESSION['questionNumber'];

if (answerOk()) {  // This checks answer with $_POST data
  $_SESSION['questionNumber']++;
  header('Location: questionView.php');
  die;
}