如何使用密码重定向到页面,但无法通过URL访问该页面



我正在学习网络开发,我正在创建一个益智网站,主页上只有答案输入,并根据答案将用户重定向到下一个益智游戏。例如,解决了第一个级别,并且答案是"0";解决方案";。当键入";解决方案";用户将被重定向到第二级别。

但重要的是,用户只能使用密码访问二级页面,否则将不允许。

我有一个超级基本的草案,可以根据答案正确地重定向用户,但我不知道如何正确地将直接访问限制到下一个级别。

主页输入:

<form method="post" action="validation.php">
Answer: <input type="text" name="answer">
<input type="submit">
</form>

validation.php:

<?php
$input = $_POST["answer"];
if ($input == "correct answer 1") {
header("Location: /levels/level2/level2.php"); }
if ($input == "correct answer 2") {
header("Location: /levels/level3/level3.php"); }
if ($input == "correct answer 3") {
header("Location: /levels/level4/level4.php"); }
?>

答案的顺序无关紧要;如果用户输入了7级的密码,而没有首先经历之前的级别,那么他应该被带到7级。我也不太关心安全问题;我只想和一些朋友玩个游戏。我相信有一种方法可以用PHP和JS做到这一点,但任何有效的解决方案都是好的。

如果您使用post变量进行验证,那么这非常简单。

例如,您可以添加进一步的验证,例如:

if (isset($_POST["answer"]) )  //*we ask if there's an answer...*//
{
$input = $_POST["answer"];
if ($input == "correct answer 1") {
header("Location: /levels/level2/level2.php"); }
if ($input == "correct answer 2") {
header("Location: /levels/level3/level3.php"); }
if ($input == "correct answer 3") {
header("Location: /levels/level4/level4.php"); }
}else{
header("Location: accessDenied-page.php"); //*if there's not an answer, we can redirect users to other page.*//
}

我不确定这是否是你想要的,如果不是,请告诉我。

在EveryLevel.php中,您需要重新验证whithisset,如下所示:

<?php
if (isset($_POST["answer"]) )  //*we check if there's an answer...*//
{
header("Location: accessDenied-page.php");  //*we redirect user somewhere else*//
}
?>

最新更新