PHP ajax redirect

У меня есть знак в форме. Когда пользователь вводит неверный пароль или отправляет по электронной почте код php, он проверяет его, и ajax дает ему предупреждение о некотором увеличении ширины div id.

но проблема в том, что, когда пользователь вводит правильный адрес электронной почты и пароль, мне нужен он для перенаправления на индексную страницу, вместо этого он показывает мне индексную страницу внутри fade effect div.

Как перенаправить пользователя на индексную страницу?

Код HTML:

<form action="./sign_in.php" method="post" id="form_sign_in"> <input type="text" name="sign_in_email" id="sign_in_email"> <input type="text" name="sign_in_pass" id="sign_in_pass"> <input type="submit" name="connect" id="connect" value="Go"> </form> 

Вход в систему:

 function sign_in_func($user_email, $user_pass) { $user_email = mysql_real_escape_string($user_email); $user_pass = mysql_real_escape_string($user_pass); $query = "SELECT user_id FROM users WHERE user_email = '{$user_email}' AND user_pass = '{$user_pass}' limit 1"; $result = mysql_query($query); $count = mysql_num_rows($result); if ($count == 1) { while ($row = mysql_fetch_array($result)) { $_SESSION['user_id'] = $row['user_id']; return TRUE; } } else { return FALSE; } 

знак – это код php:

 if (isset($_GET['sign_in_email']) && !empty($_GET['sign_in_email'])) { $user_email = $_GET['sign_in_email']; } else { echo 'Email is required <br>'; } if (isset($_GET['sign_in_pass']) && !empty($_GET['sign_in_pass'])) { $user_pass = $_GET['sign_in_pass']; } else { echo 'Pass is required <br>'; } if (isset($_GET['sign_in_email']) && !empty($_GET['sign_in_email']) && isset($_GET['sign_in_pass']) && !empty($_GET['sign_in_pass'])) { if (sign_in_func($user_email, $user_pass)) { header("location: ../../index.php"); } else { echo 'Wrong email or password'; } } 

Код ajax

 $('#form_sign_in').submit(function(){ var sign_in_email = $('#sign_in_email').val(); var sign_in_pass = $('#sign_in_pass').val(); $.ajax({ url: 'scripts/php/sign_in.php', data: { sign_in_email: sign_in_email, sign_in_pass: sign_in_pass }, success: function(data){ $('#signInFeedback').html(data); $('#signInFeedback').fadeIn('slow', function(){ $('#signInFeedback').fadeOut(5000); }); } }); return false; 

});

В PHP у вас может быть массив с ключом success установленным в true и ключ html установленный на все, что вы могли бы отображать, если success не был прав, а затем вы можете эхом кодировать JSON и проанализировать его, когда он вернется к вашему JS-коду.

Пример:

 //at top of code $ret = []; if (isset($_GET['sign_in_email']) && !empty($_GET['sign_in_email']) && isset($_GET['sign_in_pass']) && !empty($_GET['sign_in_pass'])) { if (sign_in_func($user_email, $user_pass)) { $ret['success'] = true; } else { $ret['success'] = false; $ret['html'] = 'Wrong email or password'; } } echo json_encode($ret); 

Затем, в вашем JS:

 success: function(data){ var jsonData = JSON.parse(data); if(jsonData.success) window.location = 'your_redirect_url.php'; else{ $('#signInFeedback').html(jsonData.html); $('#signInFeedback').fadeIn('slow', function(){ $('#signInFeedback').fadeOut(5000); }); } }