Перенаправить на разные страницы в зависимости от результатов запроса
(Новичок) Пишу сайт с php-бэкэндом. Встрял на странице входа в аккаунт. Столкнулся с задачей: на php выполняю запрос к бд. В зависимости от результата запроса мне нужно либо вернуться на исходный html, а в js передать некое значение (условно bool error), либо перейти на другой html, передав ему немного другое значение. Как можно провернуть сию операцию? Примерный код:
php:
$login = $_POST["login"];
$password = $_POST["password"];
$result = mysqli_query($connect,
"select
`account_id`
from
accounts
where
`account_login` = '$login' and `account_password` = '$password'
");
html:
<form class="form__login" action="login.php" method="post">
<div class="error__login" style="color: red;"></div>
<div class="input">
<input
type="text"
class="input__login"
name="login"
placeholder="Логин">
<input
type="text"
class="input__login"
name="password"
placeholder="Пароль">
<button class="submit" type="submit">Войти</button>
</div>
</form>
js:
if (error) {
$('.error__login').append('Неверный логин или пароль!');
}
Ответы (2 шт):
if(!empty($result[0]['account_id'])) {
// некоторые действия, связанные с успешной авторизацией. к примеру, запись в сессию идентификатора
// перенаправление на следующую страницу
header('Location: http://mysite.ru/nextpage');
} else {
// сообщение об ошибке
echo 'error';
}
Из описания задачи не совсем понял каким методом Вам это нужно сделать. Так что, тут два способа реализации - в PHP - как выше написал @bars либо методом отправки ajax-запроса к php-файлу который отдаст ответ и зависимости от этого ответа уже перенаправлять на нужную страницу уже с помощью js
$.ajax({
url: 'login.php',
type: 'POST',
data: 'login='+$('.form__login input[type=text][name=login]').val()+'&password='+$('.form__login input[type=password][name=password]').val(),
error: function(req, text, error) {
alert('Ajax Error:'+error);
},
success: function ( data) {
if ( data ) {
if ( parseInt(data['code']) == 1) {
window.location='/profile.php';
} else { alert('Неверное имя пользователя или пароль!'); }
} else { alert('Unknown server response!'); }
},
});
Ну и login.php
$login = $_POST["login"];
$password = $_POST["password"];
$result = mysqli_query($connect,
"select
`account_id`
from
accounts
where
`account_login` = '$login' and `account_password` = '$password'
");
$result = [];
if(!empty($result[0]['account_id'])) {
//Успешно авторизованы - возвращаем код 1
$result['code'] = 1;
} else {
//Не нашли такого пользователя либо неверный пароль - возвращаем код 0
$result['code'] = 0;
}
echo json_encode( $result);