首页 > 解决方案 > 使用 php 和 ajax 验证字段并使用部分

问题描述

我正在使用 php 和 ajax 验证表单中的数据,我发现了一个问题,那就是 php 文件将结果数发送到 javascript 文件,它在其中进行验证,但我有一个问题是php文件从一个echo非常罕见的发送数据的数量,那就是我创建了变量 SESSION,并根据用户的类型,我使用该函数重定向到某个页面header ('location: ../ client.php'),接下来发生的是php文件发送的所有代码在 js 文件中找到数据数量的页面,这会导致验证失败,那么由于重定向功能不起作用,我该如何解决此错误。

代码ajax


function iniciar_sesion() {
  $.ajax({  
    type: "POST",
    url: "Php/iniciar_sesion.php",
    data: $('#formularioini').serialize(),
    success:function(r) {
      console.log(r);
      if (r>0) {
        $('#formularioini')[0].reset();
      } else {
        swal("¡Error al ingresar!", "identificacion y/o contraseña, incorrectos", "error");
      }
    }
  });
  return false;
}


代码 php

$queryIniciar=Conexion::conectar()
                ->prepare("SELECT * 
                            FROM `usuarios` 
                            WHERE `IDENTIFICACION`=:nit 
                            AND `CLAVE`=:clave");
            
$queryIniciar->bindParam(':nit',$datos['nit'], PDO::PARAM_STR);
$queryIniciar->bindParam(':clave',$datos['clave'], PDO::PARAM_STR);
$queryIniciar->execute();
$resultados=$queryIniciar->fetchAll(PDO::FETCH_ASSOC);
$_SESSION['identificacion']=$resultados;
if($_SESSION['identificacion']['ID_USUARIO_FK']==1){
    header("location: ../administrador.php");
    exit;
}else if($_SESSION['identificacion']['ID_TIPO_USUARIO_FK']==2){
    header("location: ../cliente.php");
    exit;
}

echo $queryIniciar->rowCount();

标签: javascriptphpajax

解决方案


首先,您echo $queryIniciar->rowCount();的无法访问!

其次,当您以任何方式通过 IF 语句然后exiting 重定向到另一个页面时,没有实际意义将任何内容发送回调用 javascript,因为在您可以做任何事情之前控制将切换到重定向的表单之一用它。

$queryIniciar=Conexion::conectar()
                ->prepare("SELECT * 
                            FROM `usuarios` 
                            WHERE `IDENTIFICACION`=:nit 
                            AND `CLAVE`=:clave");
            
$queryIniciar->bindParam(':nit',$datos['nit'], PDO::PARAM_STR);
$queryIniciar->bindParam(':clave',$datos['clave'], PDO::PARAM_STR);
$queryIniciar->execute();
$resultados=$queryIniciar->fetchAll(PDO::FETCH_ASSOC);
$_SESSION['identificacion']=$resultados;

if($_SESSION['identificacion']['ID_USUARIO_FK']==1){
    header("location: ../administrador.php");
    exit;
}else if($_SESSION['identificacion']['ID_TIPO_USUARIO_FK']==2){
    header("location: ../cliente.php");
    exit;
}



推荐阅读