入門PHP就來我這(高級)24 ~ Session判斷用戶登錄

有膽量你就來跟著路老師卷起來!?-- 純干貨,技術知識分享

路老師給大家分享PHP語言的知識了,旨在想讓大家入門PHP,并深入了解PHP語言。


?上一篇我們介紹了Session管理部分的概念,本文通過session來改寫一些用戶登錄,此時的用戶名存儲到session里。

?1 創建login2.php

<!DOCTYPE html>
<html lang="en" class="is-centered is-bold">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>登錄頁面</title><link href="css/login.css" rel="stylesheet">
</head>
<body><section style="background: transparent;"><form class="box py-3 px-4 px-2-mobile"  role="form"  method="post" action="checklogin2.php"  ><div class="is-flex is-column is-justified-to-center"><h1 class="title is-3 mb-a has-text-centered">登錄</h1><div class="inputs-wrap py-3"><div class="control"><input class="input" type="text" id="username" name="username" placeholder="用戶名"   required></input></div><div class="control"><input class="input" type="password" id="password" name="password" placeholder="密碼"   required></input></div><div class="control"><button class="button is-submit is-primary is-outlined" type="submit">提交</button></div></div></div></form></section></body>
</html>

注意:上述代碼種的樣式表和Cookie免密登錄的login.css相同。

?2 數據提交到checkLogin2.php

單擊提交之后,表單會提交到checkLogin2.php文件,并在該文件中處理登錄邏輯。登錄成功后,使用session_start()函數初始化Session變量,將username存儲到Session中。

checkLogin2.php代碼如下:(請仔細查看和cookie文章內容的區別)

<?php if(isset($_POST['username']) && isset($_POST['password'])){$username = trim($_POST['username']);$password = md5(trim($_POST['password']));require "config.php";try {$pdo = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,DB_USER,DB_PWD);} catch (PDOException $e) {echo $e->getMessage();}$sql = 'select * from users where username = :username and password = :password';$result = $pdo->prepare($sql);$result->bindParam(':username',$username);$result->bindParam(':password',$password);if($result->execute()){$rows=$result->fetch(PDO::FETCH_ASSOC);if($rows){//啟動Sessionsession_start();$_SESSION['username']=$rows['username'];echo "<script>alert('恭喜您,登錄成功!');window.location.href='index2.php';</script>";}else{echo "<script>alert('用戶名或密碼錯誤,登錄失敗!');history.back();</script>";exit();}}else{echo "<script>window.location.href='login2.php';</script>";}}?>

3 獲取Session中的數據

登錄成功后,username存儲到Session中,可以使用$_SESSION['username']獲取該值,在index2.php文件中,實現代碼如下:


<?php
date_default_timezone_set('PRC');
//開啟Session
session_start();
//如果Session不存在,那就是第一次訪問網站
if(!isset($_SESSION["username"])){echo "<script>alert('請先登錄');window.location.href='login2.php';</script>";
}  
?>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>歡迎界面</title><link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="container"><div class="jumbotron" style="background-color:#ff27d0"><h1>歡迎<span style="color:#363636;font-weight:700"><?php echo $_SESSION['username']; ?></span>登錄網站</h1><p><a  class="btn btn-warning btn-lg" href="logout2.php" role="button">退出登錄</a></p></div>
</body>
</html>

4 退出登錄logout2.php實現

<?php 
//啟動Sessionsession_start();//清除Sessionunset($_SESSION['username']);echo "<script>window.location.href='login2.php';</script>";
?>

?此文到此接觸!

?下一篇 Session?高級應用


?

大家如果喜歡技術,并想有個好的交流平臺可以關注我的?我的知乎首頁,會不定期分享本人覺得比較好的技術類電子書。

另外,自己創建的一個技術qq群,玩轉技術群,該群里功能:分享技能,電子書,源代碼,以及兼職項目等交流,歡迎大家加入一起交流。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/diannao/45118.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/45118.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/45118.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一致性Hash問題及解決方案

Hash算法的應用場景 請求的負載均衡 Nginx的ip_hash策略可以在客戶端ip不發生變化的情況下&#xff0c;將其發出的請求始終路由到同一個目標服務器上&#xff0c;實現會話粘滯&#xff0c;避免處理session共享問題。 如果沒有ip_hash策略&#xff0c;可以通過維護一張映射表的…

常用包管理工具(apk、apt、yum)常用命令

apk 包管理工具apk是Alpine Linux中使用廣泛的一個工具&#xff0c;用于管理軟件包的安裝、更新、卸載等操作。以下是一些常用的apk命令及其解釋&#xff1a; 1.更新 apk update&#xff1a;從遠程鏡像源更新本地倉庫中的所有軟件包索引apk upgrade&#xff1a;升級本地已安裝…

ts實現將相同類型的數據通過排序放在一起

看下效果&#xff0c;可以將相同表名稱的字段放在一起 排序適用于中英文、數字 // 排序 function sortByType(items: any) {// 先按照類型進行排序items.sort((a: any, b: any) > {if (a.label < b.label) return -1;if (a.label > b.label) return 1;return 0;});r…

鴻蒙語言基礎類庫:【@ohos.application.testRunner (TestRunner)】 測試

TestRunner TestRunner模塊提供了框架測試的能力。包括準備單元測試環境、運行測試用例。 如果您想實現自己的單元測試框架&#xff0c;您必須繼承這個類并覆蓋它的所有方法。 說明&#xff1a; 開發前請熟悉鴻蒙開發指導文檔&#xff1a;gitee.com/li-shizhen-skin/harmony-…

編程語言與數據結構的關系:深度解析與探索

編程語言與數據結構的關系&#xff1a;深度解析與探索 在編程的世界中&#xff0c;編程語言和數據結構是兩個不可或缺的元素。它們之間既相互依存&#xff0c;又各自獨立&#xff0c;共同構成了編程的核心。本文將深入探索編程語言與數據結構之間的復雜關系&#xff0c;從四個…

[氮化鎵]Kevin J. Chen組新作—肖特基p-GaN HEMTs正柵ESD機理研究

這篇文章是發表在《IEEE Electron Device Letters》上的一篇關于Schottky型p-GaN柵極高電子遷移率晶體管&#xff08;HEMTs&#xff09;的正向柵極靜電放電&#xff08;ESD&#xff09;機理研究的論文。文章由Jiahui Sun等人撰寫&#xff0c;使用了基于碳化硅&#xff08;SiC&a…

8626 原子量計數

分析&#xff1a; 1. **讀取輸入**&#xff1a;首先&#xff0c;我們需要讀取輸入中的第一行&#xff0c;了解有多少個化學式需要處理。之后&#xff0c;對于每個化學式&#xff0c;我們逐行讀取并進行處理。 2. **解析化學式**&#xff1a;對于每個化學式&#xff0c;我們需要…

8627 數獨

為了判斷數獨解是否合法&#xff0c;我們需要遵循以下步驟&#xff1a; 1. **檢查每一行**&#xff1a;確保1到9每個數字在每一行中只出現一次。 2. **檢查每一列**&#xff1a;確保1到9每個數字在每一列中只出現一次。 3. **檢查每個3x3的宮**&#xff1a;確保1到9每個數字在…

細胞通訊之cellchat的流程

愿武藝晴小朋友一定得每天都開心 在細胞通訊的領域內有cellphoneDB、cellchat、iTALK等多種cell-cell communication的工具; 其中cellchat,我覺得它比較的親民和好看吧^_^ cellchat <- createCellChat(Matrix(health@assays$RNA$data,sparse = T), #用于seurat.v5對象 …

文件類:如何將excel文件轉為csv文件(且保留時間格式)?

最近有個場景&#xff0c;在ftp服務器上&#xff0c;讀取csv文件并入庫&#xff0c;但是客戶提供的一部分文件卻是xls文件&#xff0c;就得搞個將excel轉為csv文件的方法&#xff0c;話不多說直接開干。 方法 public static void convertExcelToCSV(String excelFilePath, Str…

掌握axios與Vue 3:構建高效HTTP請求的終極指南

引言 axios作為一個廣泛使用的JavaScript庫&#xff0c;因其簡潔的API、強大的功能和良好的瀏覽器兼容性&#xff0c;成為了許多前端開發者在Vue 3項目中的首選。 axios簡介 axios是什么&#xff1f; axios是一個基于Promise的HTTP客戶端&#xff0c;用于瀏覽器和node.js環境…

【視頻】R語言廣義加性模型GAMs非線性效應、比較分析草種耐寒性實驗數據可視化

全文鏈接&#xff1a;https://tecdat.cn/?p36979 原文出處&#xff1a;拓端數據部落公眾號 廣義加法模型&#xff08;Generalized Additive Models, GAMs&#xff09;作為一種高度靈活的統計工具&#xff0c;顯著擴展了廣義線性模型&#xff08;Generalized Linear Models, …

我被手機所傷,竟如此憔悴。

臨睡前&#xff0c;剛刷完小視頻&#xff0c;感覺好無聊。一陣陣空虛感襲來。看看時間&#xff0c;哦&#xff0c;原來我下班后一直從6點刷視頻到11點。 哎&#xff0c;太空虛了&#xff0c;又馬上要睡覺了&#xff0c;為什么會這么難受呢?明明我大學&#xff0c;高中&#x…

代碼隨想錄算法訓練營第9天

151.反轉字符串中的單詞 題目鏈接&#xff1a;151. 反轉字符串中的單詞 - 力扣&#xff08;LeetCode&#xff09; 視頻鏈接&#xff1a;代碼隨想錄 (programmercarl.com) 第一想法 使用split函數然后倒序相加 代碼隨想錄想法 先去除空格&#xff0c;再將整個字符串反轉&…

Android11 應用啟動流程

應用層調用startActivity&#xff0c;會跨進程調用導致ATMS的startActivityAsUser方法被調用 //frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java private int startActivityAsUser(IApplicationThread caller, String callingPack…

數字信號處理及MATLAB仿真(4)——量化的其他概念

上回書說到AD轉換的兩個步驟——量化與采樣兩個步驟。現在更加深入的去了解以下對應的概念。學無止境&#xff0c;要不斷地努力才有好的收獲。萬丈高樓平地起&#xff0c;唯有打好基礎&#xff0c;才能踏實前行。 不說了&#xff0c;今天咱們繼續說說這兩個步驟&#xff0c;首先…

每日刷題(二分圖,二分查找,dfs搜索)

目錄 1.P3853 [TJOI2007] 路標設置 2.P1129 [ZJOI2007] 矩陣游戲 3.P1330 封鎖陽光大學 4.Trees 5.P1141 01迷宮 1.P3853 [TJOI2007] 路標設置 P3853 [TJOI2007] 路標設置 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 先求出每個路標之間的距離&#xff0c;再二分查找每…

新媒體運營都需要掌握哪些技術?沈陽新媒體運營免費培訓

新媒體運營需要掌握的技術包括內容創作、FAB產品介紹法、用戶運營、社群運營、活動策劃和數據分析。這個崗位在現代社會中的重要性日益突出&#xff0c;隨著互聯網的發展&#xff0c;新媒體已成為人們獲取信息的主要渠道之一&#xff0c;而新媒體運營則是通過各種新媒體平臺進行…

數據庫系統原理練習 | 作業2-第2章關系數據庫(附答案)

整理自博主本科《數據庫系統原理》專業課完成的課后作業&#xff0c;以便各位學習數據庫系統概論的小伙伴們參考、學習。 *文中若存在書寫不合理的地方&#xff0c;歡迎各位斧正。 專業課本&#xff1a; 目錄 一、選擇題 二、填空題 三、簡答題 四、關系代數 1.課本p70頁&…

hive中reverse函數

目錄 前言基本函數介紹實戰 前言 reverse函數&#xff0c;是一個常用的字符串處理函數&#xff0c;很多編程語言都有。最近開發中&#xff0c;遇到一個reverse解決的需求&#xff0c;發現自己尚未總結過&#xff0c;遂補上。 基本函數介紹 SELECT reverse(string_column) FR…