[英]php, jquery - post login to the same page
我刚刚创建了很少的登录系统,但是存在一些难以置信的问题。 有时它登录,有时不登录。
通过以下代码登录:
if(isset($_POST['logedOut'])) {
setcookie('username', '', time() - 3600);
setcookie('userid', '', time() - 3600);
$logedIn = false;
} else if(isset($_POST['logedIn'])) {
echo 'POST SENT';
$expire = ($_POST['remember'] == true) ? time() + $GLOBALS['year'] : '';
setcookie('username', $_POST['logedIn'], $expire);
setcookie('userid', $_POST['id'], $expire);
$username = $_POST['logedIn'];
$userid = $_POST['id'];
$logedIn = true;
} else if (isset($_COOKIE['username'])) {
$logedIn = true;
$username = $_COOKIE['username'];
$userid = $_COOKIE['userid'];
} else {
echo 'POST NOT SENT';
$logedIn = false;
}
为简便起见:
if(isset($_POST['logedIn'])) {
echo 'POST SENT';
$logedIn = true;
} else {
echo 'POST NOT SENT';
$logedIn = false;
}
在JavaScript内部,我已致电
function checkUser (mail, pass, rem) {
var sectionName = 'checkUser';
$.ajax({
async: true,
type: 'POST',
url: 'php/readDB.php',
cache: false,
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
data: {section: sectionName, email: mail, password: pass, remember: rem},
dataType: 'text',
timeout: 3000,
beforeSend: function() {
console.log('Read from DB called');
},
success: function(data) {
if(data!='false') {
$('<form action="#" method="post"><input type="hidden" name="logedIn" value="' + mail + '" /><input type="hidden" name="remember" value="' + rem + '" /><input type="hidden" name="id" value="' + data + '" /></form>').appendTo('body').submit();
} else {
$('#afterDialog').html('Uživatelské jméno nebo heslo je špatně zadáno.');
$('#afterDialog').dialog('open');
}
},
error: function(request, errorType, errorMessage) {
alert('Error: ' + errorType + ' with message: ' + errorMessage);
},
complete: function() {
console.log('Read from DB completed');
}
});
}
每次我填写表单并单击按钮时,都会调用此函数,并且在每种情况下,如果正确填写了表单,它将转到$('...')。submit();,但是90%的尝试都没有POST数据被传输,PHP页面回显“ POST NOT SENT”。 用户成功登录的比率为10%(使用登录形式的相同输入数据(邮件,通行证,REM)登录。那么,任何想法,问题出在哪里?
最后,我明白了,问题出在jQuery UI对话框中。 填写表单后按Enter或单击对话框的“登录”按钮是不同的。 现在,我需要将表单的Enter键绑定到jqueryui的对话框按钮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.