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

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

$questionNumber = $_GET['question'];


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

最佳答案

您可以使用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;
}

10-02 10:51