PHP實(shí)現(xiàn)用session來(lái)實(shí)現(xiàn)記錄用戶登陸信息
PHP中session實(shí)現(xiàn)記錄用戶登錄信息的問(wèn)題,也是PHP面試題中比較常見的考點(diǎn)之一,是PHP學(xué)習(xí)者必須掌握的一個(gè)知識(shí)點(diǎn)。
對(duì)于初入門的PHP新手來(lái)說(shuō),或許有一定的難度。那么在之前的文章【PHP中session如何存儲(chǔ)及刪除變量的】中,也為大家介紹了PHP中session的基礎(chǔ)含義,需要的朋友可以選擇參考。
下面我們就通過(guò)具體的代碼示例,為大家詳細(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方法用來(lái)查詢數(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語(yǔ)句判斷查詢提交過(guò)來(lái)的數(shù)據(jù)并將用戶名提交給session來(lái)記錄,即判斷用戶名密碼是否存在及是否相等。
4.登錄成功后跳轉(zhuǎn)的頁(yè)面代碼示例:
index.php
<?php
echo "<h1>這里是主頁(yè)</h1>";
session_start();
$name = $_SESSION['username'];
if ($name) {
echo "<script>
alert(\"尊敬的$name ,歡迎回來(lái)??!\");
</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來(lái)實(shí)現(xiàn)記錄用戶登錄信息的程序。
我們可以通過(guò)瀏覽器訪問(wèn)進(jìn)行測(cè)試,首先我們可以在login登錄界面,輸入用戶名密碼,效果如下圖:

點(diǎn)擊login登錄,跳轉(zhuǎn)到check.php。

點(diǎn)擊確定

如果跳轉(zhuǎn)失敗就點(diǎn)擊上圖中鏈接,如果跳轉(zhuǎn)成功,則直接跳轉(zhuǎn)到index.php主頁(yè)面,顯示如下圖:


本篇文章就是關(guān)于PHP中session來(lái)實(shí)現(xiàn)記錄用戶登錄信息的具體方法介紹,具有一定的參考價(jià)值,希望對(duì)需要的朋友有所幫助!
相關(guān)文章
PHP設(shè)計(jì)模式之裝飾器(裝飾者)模式(Decorator)入門與應(yīng)用詳解
這篇文章主要介紹了PHP設(shè)計(jì)模式之裝飾器(裝飾者)模式(Decorator),結(jié)合實(shí)例形式詳細(xì)分析了PHP裝飾者模式的概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-12-12
PHP實(shí)現(xiàn)無(wú)限分類的實(shí)現(xiàn)方法
無(wú)限級(jí)分類是一種設(shè)計(jì)技巧,在開發(fā)中經(jīng)常使用,本篇文章主要介紹PHP實(shí)現(xiàn)無(wú)限分類的實(shí)現(xiàn)方法,有需要的可以了解一下。2016-11-11
phpstudy后門rce批量利用腳本的實(shí)現(xiàn)
這篇文章主要介紹了phpstudy后門rce批量利用腳本的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
PHP下的浮點(diǎn)運(yùn)算不準(zhǔn)的解決方法
下面小編就為大家?guī)?lái)一篇PHP下的浮點(diǎn)運(yùn)算不準(zhǔn)的解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
php中輸出json對(duì)象的值(實(shí)現(xiàn)方法)
下面小編就為大家分享一篇php中輸出json對(duì)象的值(實(shí)現(xiàn)方法),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
laravel利用中間件做防非法登錄和權(quán)限控制示例
今天小編就為大家分享一篇laravel利用中間件做防非法登錄和權(quán)限控制示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
CI框架源碼解讀之URI.php中_fetch_uri_string()函數(shù)用法分析
這篇文章主要介紹了CI框架源碼解讀之URI.php中_fetch_uri_string()函數(shù)用法,結(jié)合實(shí)例形式分析了CI框架中URL路由機(jī)制的原理與相關(guān)的config配置文件設(shè)置方法,需要的朋友可以參考下2016-05-05
一個(gè)用php實(shí)現(xiàn)的獲取URL信息的類
一個(gè)用php實(shí)現(xiàn)的獲取URL信息的類...2007-01-01
Thinkphp將二維數(shù)組變?yōu)闃?biāo)簽適用的一維數(shù)組方法總結(jié)
這篇文章主要介紹了Thinkphp將二維數(shù)組變?yōu)闃?biāo)簽適用的一維數(shù)組方法,總結(jié)了常見的轉(zhuǎn)化數(shù)組方法,非常實(shí)用,需要的朋友可以參考下2014-10-10

