我希望你身体健康。你的代码中有很多问题。我想补充几点。
我是一个新用户,我有一个简单的问题。如何设置用户使用PHP登录我的网站的密码?我没有MySQL数据库,只有一个iOS代码/主机应用程序。我知道这不是最安全的选择,但只有我和我的朋友在网站上,所以这无关紧要。我尝试了以下方法:
$password = [
'john' => 'password1',
'paul' => 'password2',
'george' => 'password3',
'robert' => 'password4'
];
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$pass = $password[ $_POST['username'] ];
if (password_verify($_POST['password'], $pass)) {
echo "Log in successful<br>";
}
else {
echo "Invalid log in<br>";
}
}
这是我的HTML登录表单代码供参考:
<body>
<center> <h1>Login</h1> </center>
<form>
<div class="container">
<label>Username:</label>
<input type="text" placeholder="Enter Username" name="" required>
<label>Password:</label>
<input type="password" placeholder="Enter Password" name="" required>
<button type="submit">Login</button>
<input type="checkbox" checked="checked"> Remember me
<button type="button" class="cancelbtn"> Cancel</button>
<a href="">Forgot password?</a>
</div>
</form>
</body>
</html>
但它没有起作用…所以任何帮助都是感激的。
- 您没有在输入字段中将用户名和密码设置为名称
- 您在PHP代码中使用POST方法,但在HTML中缺少表单的方法属性
- 最重要的是,添加password_verify条件的方式不正确
您可以使用以下代码。我已经测试过了。
<?php
$password = [
'john' => 'password1',
'paul' => 'password2',
'george' => 'password3',
'robert' => 'password4'
];
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$pass = @$password [ $_POST['username'] ];
if (!isset($pass))
{
echo "Invalid log in<br>";
}
else
{
if ($_POST['password'] == $pass)
{
echo "Log in successful<br>";
}
else
{
echo "Invalid log in<br>";
}
}
}
?>
<body>
<center> <h1>Login</h1> </center>
<form action="" method="POST">
<div class="container">
<label>Username:</label>
<input type="text" placeholder="Enter Username" name="username" required>
<label>Password:</label>
<input type="password" placeholder="Enter Password" name="password" required>
<button type="submit">Login</button>
<input type="checkbox" checked="checked"> Remember me
<button type="button" class="cancelbtn"> Cancel</button>
<a href="">Forgot password?</a>
</div>
</form>
</body>
</html>