繁体   English   中英

php,jquery-登录后登录到同一页面

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM