gpt4 book ai didi

php - 无法执行登录功能。没有错误

转载 作者:行者123 更新时间:2023-11-29 20:18:15 24 4
gpt4 key购买 nike

我已经检查我的代码好几天了,但似乎找不到问题。我是 PHP 新手,所以我对它并不是很熟悉。

下面是我的代码。没有错误。没有注册 session 变量值。

db-config.php

<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'mcsh';

$conn = mysqli_connect($host, $user, $pass, $db);

if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?>

login.php

<form id="user-login" action="index.php" method="POST">
<h1>Administrator Login</h1>
<input type="text" name="username" placeholder="Username" required/>
<input type="password" name="password" placeholder="Password" required/>
<button type="submit">Login</button>
<a href="/">Forgot your password?</a>
</form>

<?php
if (!empty($_POST)) {
if (!empty($_SESSION['username'])) {
header("Location: index.php");
}

$username = $_POST['username'];
$password = $_POST['password'];

include("../config/db-config.php");

$sql = "SELECT `userid`, `password` FROM users WHERE userid = '" . $username . "' AND userlevel = '99'";
$result = mysqli_query($conn, $sql);

if ($row = mysqli_fetch_assoc($result)) {
if (password_verify($password, $row['password'])) {
$_SESSION['username'] = $row['userid'];
header("Location: index.php");
exit;
}
else {
?>
<p class="msg" id="error">Invalid username or password. Please try again.</p>
<?php
}
}
else {
?>
<p class="msg" id="error">Invalid username or password. Please try again.</p>
<?php
}
}
?>

index.php

<?php
session_start();
include("../config/config.php");
if (empty($_SESSION['username'])) {
header("Location: login.php");
}
else {
//the rest of the index page...
?>

最佳答案

您在login.php 中的表单提交到index.php。在index.php 中,如果用户名尚未出现在 session 中,您将被重定向回login.php。您可以在 PHP 代码的开头检查 if (!empty($_POST)) {

$_POST 为空,因为您已重定向到该页面,而不是 POST 到该页面,因此 PHP 代码将不会被执行。

删除action="index.php",该表单将提交给自身(login.php)。另外,将 HTML 表单代码移至 PHP 代码下方,这样如果登录成功,在重定向 header 之前就不会出现输出。

关于php - 无法执行登录功能。没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39622356/

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