jQuery消息验证器无法正常工作

时间:2014-04-12 03:35:48

标签: javascript php jquery

我正在使用jQuery做一个基本的登录系统,看起来对我来说一切都很好,但我总是在这里输入我的jquery:alert('Error in system');

但它非常奇怪,因为当我执行此操作时alert(answer);显示我$_SESSION['userlogin']的所有数据。

有人知道可能出现什么问题吗?

我有这个jQuery以登录表单显示验证者消息:

    $('form').submit(function(){
        var login = $(this).serialize() + '&action=login';
        $.ajax({
            url: 'switch/login.php',
            data: login,
            type: 'POST',
            success: function(answer){
                if(answer == 'errorEmpty'){
                    $('.msg').empty().html('<p class="warning">Informe seu usuário e senha!</p>').fadeIn('slow');
                }
                else if (answer == 'errorPass'){
                    $('.msg').empty().html('<p class="error">Error ,wrong pass or username!</p>').fadeIn('slow');

                }
                else if(answer == 'sucess'){
                    window.setTimeout(function(){
                        $(location).attr('href','dashboard.php');
                 },1000);
               }
                else{
                    alert('Error in system');
                }
                alert(answer);
            },
            beforeSend: function(){
                $('.loginbox h1 img').fadeIn('fast');
            },
            complete: function(){
                $('.loginbox h1 img').fadeOut('slow');
            },
            error: function(){
                alert('Error in system');
            }

       });
        return false;
    });

});

然后我有我的php文件:

switch ($action){
    case 'login':
        $user = $_POST['user'];
        $pass = $_POST['pass'];

        if(!$user || !$pass){
            echo 'errorEmpty';
        }else{  
            $searchUser = $pdo->prepare("SELECT * FROM admins WHERE login=:login AND pass=:pass"); 
            $searchUser->bindValue(":login", $user);  
            $searchUser->bindValue(":pass", $pass); 
            $searchUser->execute();
            $num_rows = $searchUser->rowCount();
            $result = $pesquisaUser->fetch(PDO::FETCH_ASSOC);

            if($num_rows>=1){

                $_SESSION['userlogin'] = $result;
                echo 'sucess';
                print_r($_SESSION['userlogin']);
            }
            else{
                echo 'errorPass';
            }
        }
    break;
    default:
        echo 'Error';

}

1 个答案:

答案 0 :(得分:0)

return;声明之后加echo sucess,我认为问题是print_r($_SESSION['userlogin']);

放置return;后,print_r将不会执行。

echo 'sucess';
return;