标题可能有点误导,但我会在这里解释一下。 基本上,当我将我的网站置于离线模式时#39;我有一个管理员可以使用密码登录的部分。 (他们不使用他们的帐户登录)密码是'密码'对于这个例子。当用户输入正确的密码时,它应该将其重定向到网页,不管它是什么,它只是回显“密码不正确”。 - 当它确实是正确的时候。
代码由我组成,你可能会说。我希望这不起作用,因为我还处于学习PHP的最初阶段
HTML:
<div class="backdroplogin">
<h2>Login to your account:</h2>
<form action="/Offline" method="GET">
<input type ="password" name="password_login" size="25" Value="" />
<input type="submit" name="login" value="Login" />
</div>
</form>
PHP:
//ADMIN LOGIN
$password = "AbCd0987connekt£*^%";
if (isset($_GET["password_login"])) {
$password_login = $_GET["password_login"];
if ($password_login == $password) {
header("Location:/Admin/Panel");
} else {
echo "Incorrect password";
}
}
感谢您的帮助。
答案 0 :(得分:1)
像Svetlio说的那样。使用get方法发送密码是一个坏习惯。因此,请在html表单中使用method="post"
,在php中使用$_POST["password_login"]
。
在你的文字中,你说你使用"password"
作为此工具的密码,而在你的php中你检查发送的密码是否等于"AbCd0987connekt£*^%"
,所以如果你输入密码你应该使用"AbCd0987connekt£*^%"
...或者您的意思是使用"$password"
另一个提示:为了您的代码的可读性,请尝试缩进:)
答案 1 :(得分:0)
您可以验证密码是否正确,并将标志放入会话变量中。然后在管理页面上检查该会话标志是否正确访问。
if($_SESSION['IsAdmin'] === true {
//load/redirect to page
} else {
die("You aren't an admin.");
}
另外,和其他人一样说 - 不要使用GET作为密码,并且绝对不能将它们作为明文传递。
答案 2 :(得分:0)
我同意评论。但只是回答你的问题:
你的脚本中的所有内容都可以正常运行,但我认为你在这个例子中说“密码是'密码'时会感到困惑,而密码恰好是:AbCd0987connekt£* ^%,因为你在代码中写了它我在你的平台上复制了你的代码(改变了动作),它可以按你的意愿工作。