我对 PHP 编码非常陌生,目前正在开发一个连接到管理页面的 PHP 登录脚本。我认为我已经做对了一切,但显然不是,因为单击提交按钮时我的代码拒绝连接到管理页面。就像,我输入的用户名/密码正确或错误并不重要;它总是说“用户名或密码不匹配!”。我应该怎么办?这是我的代码:
<?php include('../config/constants.php'); ?>
<html>
<head>
<title>Login - Bulalo World</title>
<link rel="stylesheet" href="../css/login-admin.css">
</head>
<body>
<div class="header">
<h1 class="text-center">Login</h1>
<?php
if(isset($_SESSION['login']))
{
echo $_SESSION['login'];
unset($_SESSION['login']);
}
?>
</div>
<form action="" method="post">
<div class="input-group">
<label>Username</label>
<input type="text" name="user" value="">
</div>
<div class="input-group">
<label>Password</label>
<input type="password" name="password">
</div>
<div class="input-group">
<input type="submit" name="submit" value="Login" class="btn-primary">
</div>
</form>
</body>
</html>
<?php
if(isset($_POST['submit']))
{
$user=$_POST['username'];
$password=md5($_POST['password']);
$sql="SELECT * FROM tbl_admin WHERE username='$user' AND password='$password'";
$result=mysqli_query($conn, $sql);
$count=mysqli_num_rows($result);
if($count==1)
{
$_SESSION['login']="<div class='success'>Login successful!</div>";
header("location:".SITEURL.'admin/');
}
else
{
$_SESSION['login']="<div class='failed text-center'>Username or password did not match!</div>";
header("location:".SITEURL.'admin/login.php');
}
}
?>
我希望你能帮助我。预先感谢。
1.-我们看不到连接到 mysql 服务器的 $conn,我们必须假设它位于包含的constants.php 中。但我们假设连接正确
2.-您可以做的一件事是启用页面上的错误以查看是否有任何变量变空或检查警告 ini_set("显示错误",1); 就在包含之后
3.-那么您的脚本预计只有一行,也许如果您的表中有不止一行相同的行,您将无法登录成功
4.-验证密码是否与mysql表中的md5哈希一起保存
5.-如果您想搜索小写和大写的用户名,请记住一切都区分大小写 $username = strtoupper($_POST['用户名']); $query = "SELECT * FROM tbl_admin WHERE UPPER(用户名) = '$用户名' AND 密码= '$密码'";
我希望您能在这里得到一些帮助