gpt4 book ai didi

javascript - 使用 PHP 和 JQuery 的登录表单验证来自 MySQL 数据库的登录信息

转载 作者:行者123 更新时间:2023-11-30 17:47:58 24 4
gpt4 key购买 nike

我有一个使用 JQuery 和 PHP 来验证用户名和密码的登录表单。我正在尝试从扩展 mysql 切换到 mysqli 以进行更好的练习,但遇到了很多麻烦。我认为错误存在于 JQuery 某处,因为我已经测试了 login.php 验证并且它工作正常。

这是我的代码:

索引.php:

<!doctype html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){

$("#login_a").click(function(){
$("#shadow").fadeIn("normal");
$("#login_form").fadeIn("normal");
$("#user_name").focus();
});

$("#cancel_hide").click(function(){
$("#login_form").fadeOut("normal");
$("#shadow").fadeOut();
});

$("#login").click(function(){

var username=$('#user_name').val();
var password=$('#password').val();

$.ajax({
type: "POST",
url: "login.php",
data: "name="+username+"&pwd="+password,
success: function(html){

if(html=='true'){
$("#login_form").fadeOut("normal");
$("#shadow").fadeOut();
$("#profile").html("<a href='logout.php' id='logout'>Logout</a>");
}
else{
$("#add_err").html("*Wrong username or password");
}
},
beforeSend:function(){
$("#add_err").html("Loading...")
}
});
return false;
});
});
</script>

</head>

<body>
<?php session_start(); ?>
<div id="profile">
<?php if(isset($_SESSION['user_name'])){ ?>
<a href='logout_script_2.php' id='logout'>Logout</a>
<?php }else {?>
<a id="login_a" href="#">login</a>
<?php } ?>
</div>

<div id="login_form">
<form action="login_script_2.php" method="POST">
<label>User Name:</label>
<input type="text" id="user_name" name="user_name" />
<label>Password:</label>
<input type="password" id="password" name="password" />
<label></label><br/>
<input type="submit" id="login" value="Login" />
<input type="button" id="cancel_hide" value="Cancel" />
</form>
<div class="err" id="add_err"><br></div>
</div>
<div id="shadow" class="popup"></div>
</body>
</html>

登录.php

<?php
session_start();
$con = mysqli_connect("localhost","root","PW","db") or die("Connection error: " . mysqli_error($con));

if(isset($_POST['submit'])){
$username = $_POST['name'];
$password = $_POST['pwd'];

$stmt = $con->prepare("SELECT * FROM tapp_login WHERE username = ? AND password = ? LIMIT 1");
$stmt->bind_param('ss', $username, $password);
$stmt->execute();
$stmt->bind_result($username, $password);
$stmt->store_result();
if($stmt->num_rows == 1)
{
if($stmt->fetch())
{
$_SESSION['Logged'] = 1;
$_SESSION['user_name'] = $username;
echo 'Access granted';
exit();
}
}
else {
echo "*Wrong username or password";
}
$stmt->close();
}
else {

}
$con->close();
?>

注销.php

<?php
session_start();
unset($_SESSION['user_name']);
header('Location: index.php');
?>

运行代码的所有尝试都在 JQuery 验证中给出错误“*错误的用户名或密码”。提前致谢!

最佳答案

当使用ajax登录时,你不是发布submit,所以这一行

if(isset($_POST['submit'])){

永远不会为真,因此您的代码永远不会执行。

要么改成

if(isset($_POST['name'])){

或将其添加到您的 ajax 发布数据

data: "submit=true&name="+username+"&pwd="+password,

关于javascript - 使用 PHP 和 JQuery 的登录表单验证来自 MySQL 数据库的登录信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19718876/

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