我正在构建一个基于 php 的登录系统,用户需要输入用户名和密码才能登录。我的问题是“如何在同一页面上显示‘无效的用户名或密码’错误消息”?我尝试了很多事情,包括尝试使用查询字符串 (/?error=1);它确实通过在同一页面上显示错误消息来解决我的问题,但所有 CSS 都从页面上消失了,我找不到解决它的方法(但不是因为缺乏尝试)。所以我决定尝试一种更简单的方法,但显然行不通。
那么,我该如何修复它呢?
这是我的 PHP 代码:
<?php
session_start();
$db = mysqli_connect("localhost","root","","combination");
if(isset($_POST['login_btn'])){
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$password=md5($password);
$sqlquery="SELECT * FROM registration WHERE username='$username' AND password='$password'";
$result = mysqli_query($db,$sqlquery);
if(mysqli_num_rows($result)==1){
$_SESSION['message']="You are now logged in.";
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
header("location:loginhome.php");
}
else{
$_SESSION['message']="Incorrect Username or Password.";
header("location:login.php");
echo '<h3>Invalid username or password</h3>';
}
}
?>
这是一个可以帮助您的简单示例。你需要使用$_SESSION
变量。
登录.php:
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<form action="check.php" method="POST">
<input type="text" class="input" name="username" placeholder="username">
<input type="password" class="input" name="pass" placeholder="pass">
<input class="button" type="submit" id="login" name="login" value="login">
<?php
if(isset($_SESSION["error"])){
$error = $_SESSION["error"];
echo "<span>$error</span>";
}
?>
</form>
</body>
</html>
<?php
unset($_SESSION["error"]);
?>
检查.php:
<?php
session_start();
$username = $_POST["username"];
$error = "username/password incorrect";
if($username == "admin"){
$_SESSION["username"] = $username;
header("location: homepage.php"); //send user to homepage, for example.
}else{
$_SESSION["error"] = $error;
header("location: login.php"); //send user back to the login page.
}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)