我正在建立一个受密码保护的网站,但我似乎无法正常使用它。如果密码正确,我可以将它设置为主页。如果密码不正确,请转到其他页面。我编写了代码,但每次运行代码时,如果密码错误,它都会显示在页面上。我知道代码中缺少某些东西,但我不确定它是什么。
HTML
<table>
<form action="index.php" method="post">
<tr>
<td><input type="password" name="password" /></td>
<td><input type="submit" name="submit" value="Request Permission" /></td>
</tr>
</form>
</table>
PHP
$pass = $_POST['password'];
if ($pass == "Password") {
header('Location:home.php');
} else {
header('Location:wrong.php');
exit;
}
你能帮帮我吗?
答案 0 :(得分:2)
您未检查表单是否已提交。你只是直接进入你的逻辑。
检查页面是否收到表单提交的简便方法是检查请求方法。
if('POST' === $_SERVER['REQUEST_METHOD']) {
$pass = $_POST['password'];
if ($pass == "Password") {
header('Location:home.php');
} else {
header('Location:wrong.php');
exit;
}
}
您还可以查看是否设置了$_POST['submit']
并具有值。
仅供参考,可能希望在第一次拨打exit
后加header()
。此外,这不是检查密码的好方法。可能要考虑使用数据库和散列密码。您还应该添加一些数据验证(即确保密码字段不是空白)。
答案 1 :(得分:0)
if ( $_POST['password'] AND $_POST['password'] == "Password")
{
header('Location:home.php');
} else
{
header('Location:wrong.php');
exit;
}
答案 2 :(得分:0)
在PHP周围添加:
if(isset($_POST['submit'])) {
}
它会正常工作,然后在页面加载时正在读取代码,并且由于$ _POST [&#39;密码&#39;]在此阶段没有价值,您将被重定向到错误.PHP。
答案 3 :(得分:0)
试试这个
if('POST' === $_SERVER['REQUEST_METHOD']) {
$pass = $_POST['password'];
if ($pass == "Password") {
header('Location:home.php');
} else {
header('Location:wrong.php');
exit;
}
}
else{
echo'<table>
<form action="index.php" method="post">
<tr>
<td><input type="password" name="password" /></td>
<td><input type="submit" name="submit" value="Request Permission" /></td>
</tr>
</form>
</table>';
}
答案 4 :(得分:0)
使用以下页面考虑以下系统:
index.php - 这里我们将有登录表单
<?php
session_start();
if ((isset($_POST['password']) && $_POST['password'] == "Password") || $_SESSION['auth'] == 1)
{
header('Location:home.php');
}
else
{
header('Location:wrong.php');
}
?>
<table>
<form action="index.php" method="post">
<tr>
<td><input type="password" name="password" /></td>
<td><input type="submit" name="submit" value="Request Permission" /></td>
</tr>
</form>
</table>
您的home.php文件
<?php
session_start();
if ($_GET['logout'] == 1)
{
session_destroy();
}
if ($_SESSION['auth'] == 1)
{
//show stuff to the logged in user
//display log-out option
echo '<a href="home.php?logout=1">Logout</a>';
}
else
{
//redirect the user to the login page
header('Location:index.php');
}
?>