我有登录页面,接受电子邮件和密码登录。当我按下登录,然后只有在Chrome
浏览器我得到错误,如"网页有重定向循环"。下面是JS代码:
function submitform(){
var email = $("#email").val();var password = $("#password").val();
var leaveblank = $("#leaveblank").val();var dontchange = $("#dontchange").val();
var dataString = 'email=' + email + '&password=' + password +
'&leaveblank=' + leaveblank+ '&dontchange=' + dontchange;
$("#loading").show();
$.ajax({
url: "includes/login_submit",
type: "POST",
data: dataString,
success: function (msg) {
if (msg == 1) {
$("#loading").hide();
window.location.reload();
} else {
$("#loading").hide();
$("#messagesuccerr").html("<span style=color:red;font-size:14px>Oops!!
Wrong Credentials!!</span>").fadeIn().delay(4000).fadeOut();
return false;
}
}
});
}
login_submit
代码
$query = "select * from `register_userfm` where `emailfm` = ? and
passwordfmenc = ?; ";
$resultfm1 = DB::instance()->prepare($query)->execute
(array($newlogemail,$hashedPWfm))->fetchAll();
if(count($resultfm1)>0){
foreach($resultfm1 as $rowrest1){
$_SESSION['authuser_fmd'] = $rowrest1['name'];
}
最后,Login.php
的代码if(!isset($_SESSION)){
session_start();
}
//----- Auth Block -----------//
if(isset($_SESSION['authuser_fmd'])){
$referrer = $_SERVER['HTTP_REFERER'];
$_SESSION['loginurlref'] = $referrer;
$urirediref = $_SESSION['loginurlref'];
header('location: '.$urirediref.'');
}
//--------Auth Block Ends ------------//
if(!isset($_SERVER['HTTP_REFERER'])){
$_SESSION['loginurlref'] = "http://example.com";
header('location: '.$_SESSION['loginurlref'].'');
}
现在,当用户点击登录,然后我得到错误像This webpage has redirect loop
。我试着删除验证块,错误消失了。但是我必须将用户重定向到他登陆登录页面的页面。
如果你想使用ajax,这可能会有帮助
$.ajax({
url: "includes/login_submit",
type: "POST",
data: dataString,
success: function (msg) {
if (msg == 1) {
$("#loading").hide();
window.location.assign('your redirect page');
} else {
$("#loading").hide();
$("#messagesuccerr").html("<span style=color:red;font-size:14px>Oops!!
Wrong Credentials!!</span>").fadeIn().delay(4000).fadeOut();
return false;
}
}
});
并从login_submit.php中删除所有重定向
或
你可以使用普通提交而不需要AJAX