gpt4 book ai didi

PHP 密码无效,即使有效

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

我正在尝试使用 php、mysql 制作一个登录系统,但即使我输入正确的用户名和密码组合,该网站也会告诉我它们是无效的。

问题是什么?

我的代码:

     <?php
session_start();
$error_msg = "";

if (!isset($_SESSION['user_id'])) {
if (isset($_POST['submit'])) {
require_once('config.php');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

$user_username = mysqli_real_escape_string($dbc, trim($_POST['username']));
$user_password = mysqli_real_escape_string($dbc, trim($_POST['password']));

if (!empty($user_username) && !empty($user_password)) {
$query = "SELECT user_id, username FROM users WHERE username = '$user_username' AND password = SHA('$user_password')";
$data = mysqli_query($dbc, $query);

if (mysqli_num_rows($data) == 1) {
$row = mysqli_fetch_array($data);
$_SESSION['user_id'] = $row['user_id'];
$_SESSION['username'] = $row['username'];

setcookie('user_id', $row['user_id'], time() + (60 * 60 * 24 * 30)); // expires in 30 days
setcookie('username', $row['username'], time() + (60 * 60 * 24 * 30)); // expires in 30 days
$home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/loggedin.php';
header('Location: ' . $home_url);
}
else {
$error_msg = 'Invalid username and/or password.';
}
}
else {
$error_msg = 'No empty fields allowed!';
}
}
}

echo '<a href="register.php">Click to register</a>';
?>
<HTML>
<BODY>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
if (empty($_SESSION['user_id'])) {
echo '<p>' . $error_msg . '</p>';
?>
<fieldset>
<legend>Login</legend>
<label for="username"><font color="black">Username:</font></label>
<input type="text" name="username" value="<?php if (!empty($user_username)) echo $user_username; ?>" /><br />
<label for="password"><font color="black">Password:</font></label>
<input type="password" name="password" /><br />
</fieldset>
<input type="submit" value="Login" name="submit" />
</form>


<?php
}
else {
// Successful
echo('');
}
?>
</BODY>
</HTML>

您可能想知道 config.php 中的数据是否正确。是的,我有正确的连接用户名、主机、密码和数据库名称,因为我使用相同的文件进行注册,并且它运行良好。

谢谢,亨里克

最佳答案

您将需要至少 40 个 CHAR/VARCHAR 字段作为密码才能使用 mysql SHA 函数保存它。您也可以查看SELECT SHA('password')直接在 mysql 编辑器中查看数据库中保存的值是否是您所期望的。

关于PHP 密码无效,即使有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26562571/

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