gpt4 book ai didi

javascript - PHP - AJAX - 验证简单的登录表单(检查用户是否是指定的用户)

转载 作者:行者123 更新时间:2023-11-30 15:19:27 26 4
gpt4 key购买 nike

我正在测试这个简单的表单。只是一个表单的开始测试,后面会改进;我只需要它正常工作。我仍然没有准备好数据库,所以在我的代码中我有两个用户,我想将其作为“已注册”传递。

表单代码如下:

<form action="" method="POST">
<label>User: </label>
<input type="text" name="user" id="usuario" />
<label>Password: </label>
<input type="password" name="password" id="password" />
<div class="text-center">
<button type="button" class="boton-submit" name="submit" onClick="login()">Sign In</button>
</div>
</form>

这两个输入使用 JavaScript 验证,值通过 AJAX 发送。

这是代码(只有 AJAX 部分,其余部分只是验证,它们工作正常):

function login(){

if(validationLogin()){
$.ajax({
url: "http://localhost/MyApp/extras/processLogin.php",
type: "POST",
data: {"user": user,
"password": password,
},
dataType: "html",
cache: false,
beforeSend: function() {
console.log("Processing...");
},
success:
function(data){
if(data == "OK"){
window.location.href = "http://localhost/MyApp/loginSuccess.php";
}else{
window.location.href = "http://localhost/MyApp/loginFail.php";
}
}

});

}else{
//alert("Incorrect data");
}
}

这是 PHP 文件中的代码:

<?php

session_start();

$user = "";
$password = "";
$errors = array();

if (isset($_POST['submit'])){
if(isset($_POST['user'])){
if(!empty($_POST['user'])){
$user = $_POST['user'];
}else{
$errors = 1;
}
}else{
$errors = $errors;
}

if(isset($_POST['password'])){
if(!empty($_POST['password'])){
$password = $_POST['password'];
}else{
$errors = 1;
}
}else{
$errors = $errors;
}

$_SESSION['user'] = $user;
$_SESSION['password'] = $password;

//TEST: Check if user is --> LAURA 123456 or LUIS 567899
if((($user == "LAURA") && ($password == "123456")) || (($user == "LUIS") &&
($password == "567899"))){
$data = "OK";
echo $data;
//header("location: ../loginSuccess.php");
}else{
$data = "ERROR";
echo $data;
//echo "No se encontró usuario";
//header("location: ../loginFail.php");
}

}

一开始,我有一个直接将数据发送到 PHP 的表单操作,这样它工作得很好 --> 如果用户是 LAURA 或 LUIS,它会重定向到 loginSuccess.php 并问候用户,如果没有,它将重定向到 loginFail.php(这就是 header 被注释的原因)

我只是想测试这个功能,但是当我修改代码以使用 AJAX 时,它总是失败,即使用户是 LAURA 或 LUIS,它也会重定向到 loginFail 页面...

我怀疑 AJAX 调用中的成功函数有问题。

感谢任何帮助 :) 祝你有美好的一天!

最佳答案

没有 submit 索引你的 $_POST 数组,所以这个条件 if (isset($_POST['submit'])){ ... 总是会失败。完全删除此条件检查 if (isset($_POST['submit'])){ ... },并按以下方式重构您的后端 PHP 代码,

    <?php
session_start();

$user = "";
$password = "";
$errors = array();

if(isset($_POST['user'])){
if(!empty($_POST['user'])){
$user = $_POST['user'];
}else{
$errors = 1;
}
}else{
$errors = $errors;
}

if(isset($_POST['password'])){
if(!empty($_POST['password'])){
$password = $_POST['password'];
}else{
$errors = 1;
}
}else{
$errors = $errors;
}

$_SESSION['user'] = $user;
$_SESSION['password'] = $password;

//TEST: Check if user is --> LAURA 123456 or LUIS 567899
if((($user == "LAURA") && ($password == "123456")) || (($user == "LUIS") &&
($password == "567899"))){
$data = "OK";
echo $data;
//header("location: ../loginSuccess.php");
}else{
$data = "ERROR";
echo $data;
//echo "No se encontró usuario";
//header("location: ../loginFail.php");
}
?>

关于javascript - PHP - AJAX - 验证简单的登录表单(检查用户是否是指定的用户),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43967024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com