我有一个问题,我有一个用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;
}
?>
感谢...
答案 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....…');
$('.box-success').slideDown(timeSlide);
setTimeout(function(){
window.location.href = "logout.php";
},2500);
});
});