思路:使用session保存用户的登录状态,在需要登录的页面判断session来判断是否跳转到登录页面
session原理不是很了解,就是开始一个session之后服务器会产生一个文件保存信息,并且客户端会有一个cookie来记录sessionID来保持和服务器的通讯
session
<?php
// 启动 Session
session_start();
// 声明一个名为 admin 的变量,并赋空值。
$_SESSION["admin"] = null;
?>
每次使用session时需要先session_start();
具体案例
登录页面
<?php
if( isset($_POST['username']) ){
require("../Tools/SQL/sql.php");
$password = $_POST["password"];
$username = $_POST["username"];
$con = mysqli_connect("localhost",$db_user,$db_pwd,$db_database);
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
$sql="SELECT * FROM admin where user = '".$username."'";
$result=mysqli_query($con,$sql);
// 取出数据
$row=mysqli_fetch_assoc($result);
$pwd = $row["pwd"];
// 释放结果集
mysqli_free_result($result);
mysqli_close($con);
if( $pwd == $password ){
session_start();
// 注册登陆成功的 admin 变量,并赋值 true
$_SESSION["admin"] = true;
echo '<script language="JavaScript">;alert("登录成功");location.href="admin.php";</script>;';
} else {
echo '<script language="JavaScript">;alert("用户名密码错误");location.href="login.php";</script>;';
}
}
?>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陆界面</title>
</head>
<body>
<form action="login.php" method="post">
帐号:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
用户页面
<?php
// 防止全局变量造成安全隐患
$admin = false;
// 启动会话,这步必不可少
session_start();
// 判断是否登陆
if (isset($_SESSION["admin"]) && $_SESSION["admin"] === true) {
echo "admin";
}else{
echo '没登录'.'<hr />';
echo '<script language="JavaScript">;alert("请登录");location.href="login.php";</script>;';
}
参考:
https://www.cnblogs.com/happyforev1/articles/1645916.html