PHP session登錄案例

思路:使用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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章