PHP實(shí)現(xiàn)用session來實(shí)現(xiàn)記錄用戶登陸信息
PHP中session實(shí)現(xiàn)記錄用戶登錄信息的問題,也是PHP面試題中比較常見的考點(diǎn)之一,是PHP學(xué)習(xí)者必須掌握的一個(gè)知識(shí)點(diǎn)。
對(duì)于初入門的PHP新手來說,或許有一定的難度。那么在之前的文章【PHP中session如何存儲(chǔ)及刪除變量的】中,也為大家介紹了PHP中session的基礎(chǔ)含義,需要的朋友可以選擇參考。
下面我們就通過具體的代碼示例,為大家詳細(xì)的介紹PHP中session實(shí)現(xiàn)記錄用戶登錄信息的具體方法。
1.簡(jiǎn)單的登錄界面代碼示例:
login.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>登錄</title> <style type="text/css"> body { background: url(images/bg.png); } .clear { clear: both; } .login { width: 370px; margin: 100px auto 0px; text-align: center; } input[type="text"] { width: 360px; height: 50px; border: none; background: #fff; border-radius: 10px; margin: 5px auto; padding-left: 10px; color: #745A74; font-size: 15px; } input[type="checkbox"] { float: left; margin: 5px 0px 0px; } span { float: left; } .botton { width: 130px; height: 40px; background: #745A74; border-radius: 10px; text-align: center; color: #fff; margin-top: 30px; line-height: 40px; } </style> </head> <body> <div class="login"> <form action="check.php" method="post"> <img src="images/header.png"><br> <input type="text" name="username" placeholder="請(qǐng)輸入用戶名!" value=""><br> <input type="text" name="password" placeholder="請(qǐng)輸入密碼!" value=""><br> <input type="submit" class="botton" value="login"> </form> <div class="clear"></div> </div> </body> </html>
2.簡(jiǎn)單的用于連接數(shù)據(jù)庫(kù)的PHP文件代碼示例:
db.php
<?php $dbName = 'demo'; $host = '127.0.0.1'; $user = 'root'; $password = 'root'; $dsn = "mysql:host=$host;dbname=$dbName"; $pdo = new PDO($dsn, $user, $password); function sql($table, $field = '*', $where = '') { global $pdo; $sql = 'select' . ' ' . $field . ' ' . 'from' . ' ' . $table . ' where ' . $where; $data = $pdo->query($sql)->fetch(); return $data; }
這里我們定義了一個(gè)sql方法用來查詢數(shù)據(jù)庫(kù)表中字段,并返回?cái)?shù)據(jù)。
那么如果有新手不清楚PHP連接數(shù)據(jù)庫(kù)的方法,可以參考學(xué)習(xí)這篇文章【PHP怎么連接Mysql數(shù)據(jù)庫(kù)】。
3.檢驗(yàn)用戶登錄信息的代碼示例:
check.php
<?php session_start(); include "db.php"; @$name = $_POST['username']; @$pas = $_POST['password']; $row = sql('user', '*', "username = '$name'"); if (!$row) { return "用戶名不存在!請(qǐng)檢查用戶名~~"; } if ($row['password'] == $pas) { $_SESSION['username'] = "$name"; echo "<script> alert('登錄成功!正在跳轉(zhuǎn)...') </script>"; echo "<a href='index.php'>如果跳轉(zhuǎn)失敗請(qǐng)點(diǎn)擊跳轉(zhuǎn)~~</a>"; header("Refresh:1;url=index.php"); }
這里我們要開啟session,并用include引入數(shù)據(jù)庫(kù),然后用if語句判斷查詢提交過來的數(shù)據(jù)并將用戶名提交給session來記錄,即判斷用戶名密碼是否存在及是否相等。
4.登錄成功后跳轉(zhuǎn)的頁面代碼示例:
index.php
<?php echo "<h1>這里是主頁</h1>"; session_start(); $name = $_SESSION['username']; if ($name) { echo "<script> alert(\"尊敬的$name ,歡迎回來??!\"); </script>"; }else{ echo "<script> alert('您還尚未登錄!請(qǐng)返回登錄~~') </script>"; echo "<a href='index.php'>如果跳轉(zhuǎn)失敗請(qǐng)點(diǎn)擊跳轉(zhuǎn)~~</a>"; header("Refresh:1;url=login.html"); }
那么上述代碼login.html,db.php,check.php和index.php就是一個(gè)簡(jiǎn)單的用session來實(shí)現(xiàn)記錄用戶登錄信息的程序。
我們可以通過瀏覽器訪問進(jìn)行測(cè)試,首先我們可以在login登錄界面,輸入用戶名密碼,效果如下圖:
點(diǎn)擊login登錄,跳轉(zhuǎn)到check.php。
點(diǎn)擊確定
如果跳轉(zhuǎn)失敗就點(diǎn)擊上圖中鏈接,如果跳轉(zhuǎn)成功,則直接跳轉(zhuǎn)到index.php主頁面,顯示如下圖:
本篇文章就是關(guān)于PHP中session來實(shí)現(xiàn)記錄用戶登錄信息的具體方法介紹,具有一定的參考價(jià)值,希望對(duì)需要的朋友有所幫助!
相關(guān)文章
ThinkPHP5.0 圖片上傳生成縮略圖實(shí)例代碼說明
這篇文章主要介紹了ThinkPHP5.0 圖片上傳生成縮略圖實(shí)例代碼說明,需要的朋友可以參考下2018-06-06php求正負(fù)數(shù)數(shù)組中連續(xù)元素最大值示例
問題是給出數(shù)組,該數(shù)組由正負(fù)數(shù)字組成,找出該數(shù)組中連續(xù)元素組成的子數(shù)組的最大值。下面是PHP實(shí)現(xiàn)的示例,需要的朋友可以參考下2014-04-04thinkPHP2.1自定義標(biāo)簽庫(kù)的導(dǎo)入方法詳解
這篇文章主要介紹了thinkPHP2.1自定義標(biāo)簽庫(kù)的導(dǎo)入方法,詳細(xì)分析了thinkPHP標(biāo)簽庫(kù)的定義、使用及自動(dòng)導(dǎo)入相關(guān)技巧,需要的朋友可以參考下2016-07-07詳解如何實(shí)現(xiàn)Laravel的服務(wù)容器的方法示例
這篇文章主要介紹了詳解如何實(shí)現(xiàn)Laravel的服務(wù)容器的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04PHP實(shí)現(xiàn)與java 通信的插件使用教程
這篇文章主要介紹了PHP與java 通信插件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。2019-08-08Laravel5.5 實(shí)現(xiàn)后臺(tái)管理登錄的方法(自定義用戶表登錄)
今天小編就為大家分享一篇Laravel5.5 實(shí)現(xiàn)后臺(tái)管理登錄的方法(自定義用戶表登錄),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09Thinkphp模板標(biāo)簽if和eq的區(qū)別和比較實(shí)例分析
這篇文章主要介紹了Thinkphp模板標(biāo)簽if和eq的區(qū)別和比較,實(shí)例分析了Thinkphp模板標(biāo)簽if和eq用于變量比較的區(qū)別,需要的朋友可以參考下2015-07-07