我如何使我的网站登录表工作


How can I make my login form for my website work?

我最近尝试为我的社交网站创建一个登录表单。它可以工作,但不是我想要的方式。我只需要输入一个用户名,然后我就登录了。出于安全考虑,我希望它是用户名和密码。我以前试过解决这个问题,但没有成功。所以我想看看我是否能在这里得到帮助。

signin.php:

<html>
<head>
<title>Interpage</title>
</head>
<body bgcolor="#E6E6FA">
<h1><center>Login</center></h1>
<form action="process.php" method="post">
<p align="center">
<input type="text" name="username" size="35" id="Username" placeholder="Username" /></p>
<br></br>
<p align="center">
<input type="password" name="password" size="35"  id="Password" placeholder="Password" /></p>
<center>
<input type="submit" name="login" value="Log In"/></center>
<h3 style="font-size: 20px"><a href="register.php">Go Back To Home Screen</a></h3>  
</form> 
</body>
</html>

process.php:

<?php
include("db.php");
if ( isset( $_POST['login'] ) ) {
$username = $_POST['username'];
$pw = $_POST['StorePassword'];
$query = mysqli_query($conn, "SELECT * FROM users WHERE username='".$username."'");
if ( mysqli_num_rows($query) > 0 ) {
    while ( $row = mysqli_fetch_assoc( $query ) ) {
    if ( $row['StorePassword'] == $StorePassword ) {
       header("Location: home.php"); 
        } else { 
            echo "Wrong password"; 
        }
    }
} else {
    echo "User not found <br />";
}
if ( !isset($_POST['username'], $_POST['StorePassword']) ) {
die ('You must enter a username and password! <a href= signin.php>Try again</a> ');
}   else {
}
}
?>

这是一个相当简单的问题。您可以使用SESSIONS让用户登录。

让我们从头开始。在页面顶部,即<?php之后立即添加session_start();。这是一个PHP函数,它发送一个会话头并存储当前上下文的会话ID。现在,您可以访问持久数据存储,以便客户端将其标识为已登录/已注销。这个想法是存储某种变量来显示用户已经登录

在该线路之后

if ( $row['StorePassword'] == $StorePassword ) {
    ....
    $_SESSION[ 'logged_in' ] = true;
    $_SESSION[ 'user_name' ] = $username;
// ... continuing your logic  

现在,既然已经完成了,您可以在home.php文件中检查它。在您的主页中,在页面顶部添加以下行:

if ( $_SESSION['logged_in'] && isset( $_SESSION['user_name'] ) {
    header("Content-type: text/html");
} else {
    die( "The user is not logged in. Click <a href='"login.php'">here</a> to login" );
}

您有一个非常简单的登录系统。您可以根据自己的喜好进行修改!:)