我最近尝试为我的社交网站创建一个登录表单。它可以工作,但不是我想要的方式。我只需要输入一个用户名,然后我就登录了。出于安全考虑,我希望它是用户名和密码。我以前试过解决这个问题,但没有成功。所以我想看看我是否能在这里得到帮助。
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" );
}
您有一个非常简单的登录系统。您可以根据自己的喜好进行修改!:)