【问题标题】:AJAX & PHP form validationAJAX 和 PHP 表单验证
【发布时间】:2014-05-11 02:20:38
【问题描述】:

我目前正在学习如何使用 ajax。我正在尝试使用 AJAX 制作注册/登录系统。我完成了注册表,现在正在工作,但我在登录时遇到问题。

ajax/login.php PHP 登录验证

<?php

require_once("../core/config.php");

$username = trim(strip_tags($_POST['username']));
$password= trim(strip_tags($_POST['password']));
$errors = false;
$user_query = $db->query("SELECT * FROM users WHERE username='$username'");


// Empty check -> Username

if(empty($username) && strlen($username) == 0) { $error_username = "<span style='color:red;'> Username is empty </span>"; $errors = true; }

// Empty check -> Password

if(empty($password) && strlen($password) == 0) { $error_password = "<span style='color:red;'> Password is empty </span>"; $errors = true; }

// If exists check 

$num = $user_query->num_rows;
if($num < 1) { $error_general = "<span style='color:red;'> User doesn't exist </span>"; $errors = true; } else {
$user = $user_query->fetch_object();
if($user->password != $password) { $error_general = "<span style='color:red;'> Invalid Username or Password </span>"; $errors = true; }
}

//

if($errors == true) {
?>
<?php if(isset($error_general)) { echo $error_general." <br><br>"; } ?>
<?php if(isset($error_username)) { echo $error_username; } ?>
<input type="text" name="login_username" id="login_username" placeholder="Username" value="<?php echo $username; ?>"> <br>
<?php if(isset($error_password)) { echo $error_password; } ?>
<input type="password" name="login_password" id="login_password" placeholder="Password" value="<?php echo $password; ?>">
<br>
<?php } else {

    $_SESSION['User'] = true;
    header("Location: ". $_SERVER['PHP_SELF']);

}
?>

index.php 表单 HTML 和 JS

<!DOCTYPE HTML>
<html>
<head>
<script src="js/jquery.js"></script>
<script>
var loader = $("<div style='text-align: center; float:none; margin: 0 auto;'> <img src='loader-small.gif'> <br> Processing request... </div> <br>");

        function process_login() {

        var username = $("#login_username").val();
        var password =$("#login_password").val();

        $(".login_container").html(loader).load("ajax/login.php", {username: username, password: password})

        }
</script>
</head>
<body>


<h3> Login </h3>

<form action="" method="POST">
<div class="login_container">
<input type="text" name="login_register" id="login_username" placeholder="Username"> <br>
<input type="password" name="login_password" id="login_password" placeholder="Password">
<br>
</div>
<input type="submit" onclick="process_login(); return false;" name="login_submit" value="Login" style="outline:none;">
</form>

</body>
</html>

当我使用正确信息提交表单时,我得到“用户不存在”、“用户名为空”、“密码为空”,当我提交错误信息时,我得到“用户不存在”

过去 3 小时我一直在头脑风暴,但我还没有找到解决方法

【问题讨论】:

  • 如果你仍然发现错误,你应该检查你的数据库。
  • db 没有问题,因为注册表也使用它,但它可以工作
  • 请提供有关您的数据库设计的信息。
  • 您的代码似乎工作正常,是不是数据库连接问题?

标签: php ajax forms validation


【解决方案1】:

逻辑错误:

// Empty check -> Username

if(empty($username) || strlen($username) == 0) { $error_username = "<span style='color:red;'> Username is empty </span>"; $errors = true; }

// Empty check -> Password

if(empty($password) || strlen($password) == 0) { $error_password = "<span style='color:red;'> Password is empty </span>"; $errors = true; }

比较你的代码:

// Empty check -> Username

if(empty($username) && strlen($username) == 0) { $error_username = "<span style='color:red;'> Username is empty </span>"; $errors = true; }

// Empty check -> Password

if(empty($password) && strlen($password) == 0) { $error_password = "<span style='color:red;'> Password is empty </span>"; $errors = true; }

【讨论】:

  • 问题仍然存在 :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多