gpt4 book ai didi

php 登录表单总是带我到 editor.php 页面

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:43 25 4
gpt4 key购买 nike

我当前的登录表单无法正常工作。无论在登录表单中输入什么,它总是让我登录。从第一个问题开始,我决定大量更改我的代码。

这是最新的代码:

<?php
session_start();
include_once("db_connect.php");

if(isset($_POST['loginSub'])) {
//Connect to DB
include_once("db_connect.php");

//Gets whatever is inside input box and prevents sql injection
$username=($_POST['user']);
$password=($_POST['password']);

$query = "SELECT * FROM user WHERE user= 'kent' AND password = 'password'";
$rows = mysqli_query($conn, $query);

if ($rows->num_rows == 1) {
$_SESSION['user']=$username; // Initializing Session
header("location: loginAuth.php"); // Redirecting To Other Page
} else {
$error = "Username or Password is invalid!!!!";
}
mysql_close($conn); // Closing Connection

}

?>

这是 HTML 表单:

<form id="login" method="POST" action="loginAuth.php">

<label for="user"><strong>Login:</strong></label>
<input type="text"size=20 autocorrect=off autocapitalize=words name="user">
<!--<label for="loginPassword" name="password"> <strong>Password:</strong></label>
<input type="password" name="Password"> -->

<label for="password" > <strong>Password:</strong></label>
<input type="password" name="password">

<input name="loginSub" type="submit" value="login">
</form>

表单操作 loginAuth.php 基本上会将您带到编辑器页面,其中还没有 php。

每个代码片段都来自同一个 php 页面。我的问题是,我怎样才能让它在凭据不正确时不让您登录?

最佳答案

mysqli_real_escape_string 需要连接参数,否则为空:

$username = mysqli_real_escape_string($db, $username);
$password = mysqli_real_escape_string($db, $password);

因为两个变量都是空的,您的查询将自动计算为 true


另外,mysqli_query 不需要引号:

$query = mysqli_query($db,$sql);

您还需要指定 POST 表单方法:

<form id="login" method="POST" action="loginAuth.php">

这是因为您在 PHP 中以 $_POST 的形式获取数据:

An associative array of variables passed to the current script via the HTTP POST method when using application/x-www-form-urlencoded or multipart/form-data as the HTTP Content-Type in the request.

$username=strip_tags($_POST['user']);
$password=strip_tags($_POST['password']);

提示:您不应将用户密码存储为纯文本,您应该对其进行散列/加密。

在 PHP 5.5 中,有一个密码哈希函数:http://php.net/manual/en/ref.password.php .


更新逻辑:

$sql = "SELECT * FROM users WHERE username='$username' AND password='$password' LIMIT 1";
$query = mysqli_query($db, $sql);
$result = mysqli_result($query);

if(mysqli_num_rows($result) > 0) {
$_SESSION['username']= $username;
$_SESSION['id']= $id;
//useless code doesnt work header('Location: editor.php');

// { other code }

关于php 登录表单总是带我到 editor.php 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37251755/

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