javascript - 使用 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();
解决方案
首先,您echo $queryIniciar->rowCount();
的无法访问!
其次,当您以任何方式通过 IF 语句然后exit
ing 重定向到另一个页面时,没有实际意义将任何内容发送回调用 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;
}
推荐阅读
- c++ - c++ 中的可见变量以及如何使变量更加可见
- listview - 扩展列表视图在 Android v9.0 上自动滚动
- javascript - 如何将定位销添加到卡塔根地图?
- javascript - 事件处理程序、事件队列和异步行为
- c - 将带符号的 32 位存储在无符号的 64 位 int 中
- android - 带有 RecyclerView 的 FloatingActionButton
- django - 获取 'settings.DATABASES 配置不正确。请提供名称值'错误
- java - 高斯模糊较高半径使图像变暗
- scala - 为什么即使用于 sum 的列是强制列,slick 中的分组方法 sum 也会返回 Option?
- asp.net-mvc - Windows 身份验证适用于本地 (IIS Express) 到服务器 (IIS 8.5),但不适用于从服务器到服务器的请求