php - 如何在 php 中从 MySQL 进行登录验证?
问题描述
陈述
我想做一个简单的登录验证,条件是用户名和密码与 MySQL 服务器中名为的表匹配admin
到目前为止我尝试过的
从下面的代码中,有未定义的索引login_check.php
$uname = mysqli_real_escape_string($conn,$_POST['username'] );
和$pass = mysqli_real_escape_string($conn,$_POST['password'] );
login.php (front.php = 主页)
<form method="post" action="login_check.php">
<input type="text" name="username" placeholder="Username" required>
<span class="error"><?php echo $uname_error; ?></span>
<input type="password" name="password" placeholder="Password" required>
<span class="error"><?php echo $pass_error; ?></span>
<button type="submit" name="Log In" value="Log In">Log In</button> <!--Go to front.php if both username and password are correct.-->
</form>
login_check.php
<?php
//Establish connection
include 'connection.php';
$uname_error = $pass_error ="";
$uname = mysqli_real_escape_string($conn,$_POST['username'] );
$pass = mysqli_real_escape_string($conn,$_POST['password'] );
$sql = "SELECT admin_username,admin_password FROM admins";
if(isset($_POST['Log In']))
{
//Check Username
if($uname == "username")
{
//Check Password
if($pass == "password")
{
header("location:front.php"); //If username & password are correct -> log in to front.php.
}
else //$pass != "password"
{
$pass_error = "Invalid Password.";
}
}
else //$uname != "username"
{
$uname_error = "Invalid Username.";
}
}
mysqli_close($conn);
?>
编辑1:login.php
已修复。
解决方案
您的表单的操作是front.php
,验证代码位于log_check.php
.
验证代码不会执行,因为提交后,表单将重定向到front.php
.
您可以(重定向)设置表单的操作login_check.php
,验证将适用。
此外,重定向将顺利进行。
所以,总结2个变化:
1) 删除/评论<?php require 'login_check.php'; ?>
2) 更改表单动作从
<form method="post" action="front.php">
至
<form method="post" action="login_check.php">
推荐阅读
- javascript - 修改下拉选择器 React 的 handleChange 函数
- unity3d - Unity 2019.3.0f1 带有烘焙光照贴图深色的单面网格
- html - 在鼠标输入 Vuejs 时显示子菜单
- flyway - 引起:org.flywaydb.core.internal.license.FlywayEditionUpgradeRequiredException: Flyway Enterprise Edition or MySQL upgrade required: MySQL 5.5-SCDF
- ios - SwiftUI Circle() 降低了 List 中的性能
- javascript - 使用 javascript 固定位置时,边距顶部无法正常工作
- unity3d - 在 Unity 中,相机和定向光是不可见的
- rust - 在 rust 的函数中向 vec 添加结构
- java - java + SQLite 项目。外键“更新时”未更新
- python - Dash 中的“__init__() 出现意外的关键字参数”错误