[英]PHP - AJAX - Validate simple login form (check if user is a especified one)
我有一個正在測試的簡單表格。 這只是對表格開頭的測試,稍后將對其進行改進。 我只需要它才能正常工作。 我仍然沒有准備好數據庫,因此在我的代碼中,我有兩個要作為“注冊”用戶通過的用戶。
這是表格的代碼:
<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(這就是標題被注釋的原因)
我只想測試該功能,但是當我修改代碼以使用AJAX時,它總是會失敗,即使用戶是LAURA或LUIS,它也會重定向到loginFail頁面。
我懷疑AJAX調用的成功功能中存在一些問題。
感謝您的任何幫助:)祝您有美好的一天!
$_POST
數組沒有submit
索引,因此這種情況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");
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.