php - PHP不检查用户是否存在并直接发送到个人资料页面
问题描述
我正在创建一个登录页面,但是当我登录时,似乎用户/密码的存在尚未完成,将任何输入发送到个人资料页面。
我正在使用 PHP 和 MySQL。我试图重做表格,我检查了我所有的代码,它似乎是按照我的意愿编写的。
我对 PHP 和 MySQL 还很陌生,所以我可能会遗漏一些东西。
这是表单代码:
<form style="margin-top:40px;" action="includes/login.inc.php" method="post">
<div class="form-group mb-3">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-circle-08"></i></span>
</div>
<input class="form-control" id="name" name="username" placeholder="Utilizador" type="text">
</div>
</div>
<div class="form-group">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-lock-circle-open"></i></span>
</div>
<input class="form-control" id="password" name="password" placeholder="Password" type="password">
</div>
</div>
<div class="custom-control custom-control-alternative custom-checkbox">
<div class="text-center">
<input class="btn btn-primary my-4" name="submit" type="submit" value=" Login ">
</form>
这是 login.inc.php 代码:
<?php
include_once 'db.inc.php';
session_start();
$error = '';
if (isset($_POST['submit'])) {
if (empty($_POST['username']) || empty($_POST['password'])) {
$error = "Username or Password is invalid";
}
else{
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT username, password FROM users where username=? AND password=? LIMIT 1";
$stmt = $conn->prepare($query);
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$stmt->bind_result($username, $password);
$stmt->store_result();
if($stmt->fetch())
$_SESSION['login_user'] = $username;
header("location: ../profile.php");
}
mysqli_close($conn);
}
?>
我输入的任何内容,即使它不在user
数据库中,也会被重定向到profile.php
页面。
解决方案
如果所有其他代码都很好,您可以尝试替换您的 if 条件
if($stmt->fetch()){
$_SESSION['login_user'] = $username;
header("location: ../profile.php");
}
推荐阅读
- powershell - 需要搜索 csv 文件并对值运行 if/Where 语句以初始化 bat 文件
- javascript - 使用 array.join() 内爆类名数组 javascript
- database - 如何在 neo4j 中设置哪个属性是节点的标签?
- asp.net - 如何从按钮单击执行存储过程 - ASP.NET
- css - 在小屏幕上引导向上向下投票按钮对齐
- python - 将多个文件复制到多个目录的脚本
- android - 动态文本视图相互显示
- excel - 未定义的变量是vba公式
- python-3.x - Python Selenium:导航后如何切换帧?
- python - pandas.DataFrame.to_csv() 使用的默认日期格式是什么?