Header('Location: index.php'); не работает как исправить?
header('Location: index.php');
не работает.
(Отправка всех полей формы на сервер с помощью ajax jQuery).
Как исправить?
Если есть ошибка при заполнении, то нормально работает
А если успех бывает вот так:
Как можно сделать нормально? Заранее спасибо!
html код:
<form method="POST" id="form" action="javascript:void(null);">
Логин
<input type="text" name="username"/>
Пароль
<input type="password" name="password"/>
<button type="submit" name="submit">Войти</button>
</form>
<div id="results">вывод</div>
js код:
function call() {
var msg = $('#form').serialize();
$.ajax({
type: 'POST',
url: 'login.php',
data: msg,
success: function(data) {
$('#result').html(data);
},
error: function(xhr, str){
alert('Возникла ошибка: ' + xhr.responseCode);
}
});
}
php код:
<?php
include 'core/init.php';
if (empty($_POST) === false) {
$username = $_POST['username'];
$password = $_POST['password'];
if (empty($username) === true || empty($password) === true) {
$errors[] = 'Вы должны ввести имя пользователя и пароль.';
} else if (user_exists($username) === false) {
$errors[] = 'Мы не можем найти что имя пользователя. А вы зарегистрировались?';
} else if (user_active($username) === false) {
$errors[] = 'Вы еще не активировали свою учетную запись!';
} else {
$login = login($username, $password);
if ($login === false) {
$errors[] = 'Это сочетание имени пользователя или пароль неверен.';
} else {
$_SESSION['user_id'] = $login;
header('Location: index.php');
exit();
}
}
}
echo output_errors($errors);
?>
Источник: Stack Overflow на русском