データをajaxで取得して検証し、条件ごとにユーザーをリダイレクトします。ユーザーのログインに成功した場合と同様に、ダッシュボードにリダイレクトします。そうでない場合は、リダイレクトしてページを制限します。私はネットワークコンソール(開発者用ツール)の結果データを取得しますが、特定のページにリダイレクトできません。 ここにindex.phpのページがあります。ajaxからデータを取得した後にURLをリダイレクトできない
<div id="loginContainer">
<form id="loginFrm" method="post">
<h3>Members Login Area</h3>
<img id="divider" src="images/divider.png">
<input type="email" name="lemail" required placeholder="Enter a valid email address">
<input name="lpassword" placeholder="Password" type="password" required>
<input type="submit" value="Sign In">
<input id="submit" type="hidden" name="submit">
<p><a href="#">Forgot Password ?</a></p>
<p id="bottom">Don't have account? <a href="#" id="signup">Sign up here</a></p>
</form>
</div>
<script>
$(document).ready(function() {
$("#loginFrm").submit(function() {
var data = $("#loginFrm").serialize();
insertRecords(data);
return false;
});
function insertRecords(data) {
$.ajax({
url: 'loginProcess.php',
data: data,
type: 'POST',
dataType: 'html',
success: function (data) {
$("#result").html(data);
},
error: function() {
alert('Error : COde not work properly');
}
});
}
});
</script>
これは私のloginProcess.phpページで、ユーザーからのデータを取得します。
<?php
ob_start();
error_reporting(E_ALL);
print_r($_POST);// see all result in network console
require_once('inc/dbconnection.php');
require_once('inc/functions.php');
$emailErr = $password="";
if (isset($_POST['submit'])) {
if (empty($_POST["lemail"])) {
$emailErr = 'Please enter your email address.';
} else {
$email = filterEmail($_POST["lemail"]);
if ($email == FALSE) {
$emailErr = 'Please enter a valid email address.';
}
}
if (empty($_POST["lpassword"])) {
$passwordErr = 'Please enter your password here.';
} else {
$password = sha1($_POST['lpassword']);
}
}
// after pressing login, checking if the variables exist in the database
if (empty($emailErr) && empty($passwordErr)) {
$query = $db->prepare("SELECT password FROM users WHERE email=?");
$query->execute(array($email));
if ($query->fetchColumn() === $password) {
// starts the session created if login info is correct
session_start();
$_SESSION['email'] = $email;
header("Location: dashboard.php",true, 302);
exit;
} else {
header("Location: restrict.php",true, 302);
exit;
}
} else {
header("Location: index.php?Email=$emailErr&Password=$passwordErr",true, 302);
die;
}
ob_end_flush();
?>
注:私はあなたがAJAX
とphp
にリダイレクトすることはできませんヘッダー機能で
私は以下を使用しますが、私のためには機能しません。 echo( ""); –
このような成功関数で応答を試してください。===>成功:function(data){ window.location.href = 'dashboard.php' }、 –
条件が真でない場合、ページを制限する方法は? –