Есть тестовый сайт на котором форма регистрации находиться в одном файле,а обрабатываеться в другом,обработка устроенна так,что если логин/пароль верны,происходит редирект на форму и создается кука,если же логин/пароль не верны,то просто редирект на форму,но хотелось бы чтоб выше формы выводилась ошибка,которая присваевается некой переменной,а затем та переменная должна попасть в форму,как такое реализовать? Код формы:
<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');
}
?>
Это делается с помощью механизма сессий:
// Запуск сессии
session_start();
require_once 'includes/config.php';
// Если $_SESSION['error'] не пустой
if (! empty($_SESSION['error'])) {
// сохранить текст ошибки в переменную
$login_error = $_SESSION['error'];
// и очистить сессию, чтоб после обновления
// страницы текст ошибки не отображался
unset($_SESSION['error']);
} else {
$login_error = null;
}
$username = $_POST['username'] ?? '';
if (isset($_POST['do_auth'])) {
$password = md5($_POST['password']);
$signin = $connection->query("SELECT * FROM `admins` WHERE `username` = '" . $username . "' AND `password` = '". $password."'");
// Если произошла ошибка
if( mysqli_num_rows($signin) == 0 ) {
// сохранить её текст в сессии
$_SESSION['error'] = 'Incorrect username or password';
header('Location: admin.php');
die;
}
setcookie('user', $username, time() + 60, "/");
header('Location: admin.php');
}
?>
<form action="login.php" method="POST">
<h4 style="color: red;"><?= $login_error ?></h4><br>
<input type="text" name="username" placeholder="username" class="form-control" value="<?= $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>
И ещё - почитайте про "Подготовленные выражения", дабы убрать уязвимость из вашего sql-запроса:
"SELECT * FROM admins WHERE username = '" . $username . "' AND password = '". $password."'"
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Написал нейросеть на JavaScript (должна определять рисунки), однако возникла проблема при подключении самой библиотеки brainjs
Всем ку! Помогите плез разобратьсяПочему при следующем коде я получаю вывод 'ttps', а не 'facebook'? Почему не работает \?
Я использую карты leaflet, и мне нужно выделить определенные регионыЯ делаю выделение с помощью полигонов geoJSON
Я хочу, зайдя на определенный сайт, записывать в текстовый файл определенную информацию с помощью JS, тобеж просто вставить код скрипта в консоль...