Ajax验证问题 - PHP

时间:2013-07-24 23:10:36

标签: php ajax jquery

我有一个问题,我有一个用Ajax验证的PHP设计的表单登录,表单登录工作很好,但我需要为用户类型添加验证(管理员,用户),我修改了我的代码,就像这样:

$.ajax({
    type: 'POST',
    url: 'log.inout.ajax.php',
    data: 'login_username=' + $('#login_username').val() + '&login_userpass=' + $('#login_userpass').val(),

    success:function(msj){
        if ( msj == 1 ){
            $('#alertBoxes').html('<div class="box-success"></div>');
            $('.box-success').hide(0).html('Validacion Completa, Bienvenido al Sistema');
            $('.box-success').slideDown(timeSlide);
            setTimeout(function($tipo){
            if ($tipo=='ADMIN'){
                window.location.href = "../Main2/Index.php";
                }else{
                window.location.href = "../Main1/Index.php";
                }
            },(timeSlide + 500));
        }
        else{
            $('#alertBoxes').html('<div class="box-error"></div>');
            $('.box-error').hide(0).html('Datos Incorrectos, No Tiene Acceso al Sistema ');
            $('.box-error').slideDown(timeSlide);
        }
        $('#timer').fadeOut(300);
    },
    error:function(){
        $('#timer').fadeOut(300);
        $('#alertBoxes').html('<div class="box-error"></div>');
        $('.box-error').hide(0).html('Ha ocurrido un error durante la ejecución');
        $('.box-error').slideDown(timeSlide);
    }
});

问题是变量“$ type”没有验证AJAX,所以我需要你的帮助来解决这个问题

这是表单的验证文件:

<?php
session_start();
$user = $_POST['login_username'];
$pwd = $_POST['login_userpass'];

if ( !isset($_SESSION['username']) && !isset($_SESSION['userid']) ){
    if ( $idcnx = mssql_connect('(local)','sa','.') ){
        if ( mssql_select_db('DB_Demo',$idcnx) ){

            $sql = "SELECT [USER],PASSWD,NOMBRE,APELLIDOP,TIPO FROM T_LOGIN WHERE [USER] ='$user' AND PASSWD ='$pwd'";

            if ( $res = mssql_query($sql) ){
                if ( mssql_num_rows($res) == 1 ){

                    $user = mssql_fetch_array($res);
                    $_SESSION['userid'] = $user[0];
                    $_SESSION['username'] = $user[1];
                    $_SESSION['unombre'] = $user[2];
                    $_SESSION['uapellido'] = $user[3];
                    $_SESSION['utipo'] = $user[4];
                    $tipo = $_SESSION['utipo'];

                    $_SESSION['autentificado']= 'SI'; 
                    $_SESSION['ultimoAcceso']= date('Y-n-j H:i:s'); 

                    echo 1;
                }else{
                    echo 0;
                    }
            }
            else{
                echo 0;
                }
        }
        mssql_close($idcnx);
    }
    else{
        echo 0;
        }
}
else{
    echo 0;
}
?>

感谢...

2 个答案:

答案 0 :(得分:0)

你正试图将一个php变量发送回ajax ..对吗?

执行此操作的标准方法是json编码您尝试从php获取的任何项目,然后将其回显。我注意到你正在回显数字并在jquery中使用它们。你需要以同样的方式发送$ tipo。您可以将它们放在一个数组中,然后使用json_encode将它们回显出来。示例

echo json_encode(array('number' => 1,'type' => $tipo));

然后你将在javascript中使用msj变量。它将包含两个变量

var bothVariables = jQuery.parseJSON(msj);
console.log(msj.number)  // will give you 1
console.log(msj.tipo)   // will give you Admin

另一个简单的例子

这里是ajax.php

echo json_encode(array('number' => 1,'type' => 'Admin'));

这里是jquery从

获取变量
        $.ajax({url:"ajax.php",success:function(result){
                result = $.parseJSON(result);
                console.log(result.number);  // 1
                console.log(result.type); // Admin
          }});

答案 1 :(得分:0)

我正试图像@hamobi那样解决这个问题,但是Ajax尚未验证变量$ tipo .....我认为更好地发布Ajax原始文件

$(document).ready(function(){

    var timeSlide = 1000;
    $('#login_username').focus();
    $('#timer').hide(0);
    $('#timer').css('display','none');
    $('#login_userbttn').click(function(){
        $('#timer').fadeIn(300);
        $('.box-info, .box-success, .box-alert, .box-error').slideUp(timeSlide);
        setTimeout(function(){
            if ( $('#login_username').val() != "" && $('#login_userpass').val() != "" ){

                $.ajax({
                    type: 'POST',
                    url: 'log.inout.ajax.php',
                    data: 'login_username=' + $('#login_username').val() + '&login_userpass=' + $('#login_userpass').val(),

                    success:function(msj){
                        if ( msj == 1 ){
                            $('#alertBoxes').html('<div class="box-success"></div>');
                            $('.box-success').hide(0).html('Validacion Completa, Bienvenido al Sistema');
                            $('.box-success').slideDown(timeSlide);
                            setTimeout(function(){
                                window.location.href = "../Main2/Index.php";
                            },(timeSlide + 500));
                        }
                        else{
                            $('#alertBoxes').html('<div class="box-error"></div>');
                            $('.box-error').hide(0).html('Datos Incorrectos, No Tiene Acceso al Sistema '/* + msj*/);//msj significa el error que presenta el login
                            $('.box-error').slideDown(timeSlide);
                        }
                        $('#timer').fadeOut(300);
                    },
                    error:function(){
                        $('#timer').fadeOut(300);
                        $('#alertBoxes').html('<div class="box-error"></div>');
                        $('.box-error').hide(0).html('Ha ocurrido un error durante la ejecución');
                        $('.box-error').slideDown(timeSlide);
                    }
                });

            }
            else{
                $('#alertBoxes').html('<div class="box-error"></div>');
                $('.box-error').hide(0).html('Los campos estan vacios');
                $('.box-error').slideDown(timeSlide);
                $('#timer').fadeOut(300);
            }
        },timeSlide);

        return false;

    });

    $('#sessionKiller').click(function(){
        $('#timer').fadeIn(300);
        $('#alertBoxes').html('<div class="box-success"></div>');
        $('.box-success').hide(0).html('Terminando Sesion....Espere....&#133;');
        $('.box-success').slideDown(timeSlide);
        setTimeout(function(){
            window.location.href = "logout.php";
        },2500);
    });

});