有一个测试站点,其注册表单位于一个文件中,并在另一个文件中处理,处理被安排为如果登录名/密码正确,则重定向到表单并创建 cookie,如果登录/密码不正确,然后只是重定向到表单,但是我希望在表单上方显示一个错误,将其分配给某个变量,然后该变量应该进入表单,我该如何实现? 表格代码:
<form action="login.php" method="POST">
<h4 style="color: red;"><?=ВОТ СЮДА БУДУ ВСТАВЛЯТЬ ПЕРЕМЕННУЮ?></h4><br>
<input type="text" name="username" placeholder="username" class="form-control" value="<?=$_POST['username']?>"><br>
<input type="password" name="password" placeholder="password" class="form-control"><br>
<input type="submit" class="btn btn-success" name="do_auth" value="Log in">
</form>
PHP:
<?php
require_once 'includes/config.php';
$username = $_POST['username'];
$password = md5($_POST['password']);
if(isset($_POST['do_auth'])) {
$signin = $connection->query("SELECT * FROM `admins` WHERE `username` = '" . $username . "' AND `password` = '". $password."'");
if( mysqli_num_rows($signin) == 0 ) {
$login_error = 'Incorrect username or password'; //<<<--- Вот эту переменную нужно передать
header('Location: admin.php');
die();
}
setcookie('user', $username, time() + 60, "/");
header('Location: admin.php');
}
?>
这是使用会话机制完成的:
还有一件事 - 阅读“准备好的表达式”以从您的 sql 查询中删除漏洞: