問題があります。PHP で設計されたフォーム ログインが Ajax で検証されています。フォーム ログインはうまく機能しますが、ユーザー タイプ (管理者、ユーザー) の検証を追加する必要があり、コードを次のように変更しました。
$.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;
}
?>
ありがとう...