PHP中session實現記錄用戶登錄信息的問題,也是PHP面試題中比較常見的考點之一,是PHP學習者必須掌握的一個知識點。
對于初入門的PHP新手來說,或許有一定的難度。那么在之前的文章【PHP中session如何存儲及刪除變量的】中,也為大家介紹了PHP中session的基礎含義,需要的朋友可以選擇參考。
下面我們就通過具體的代碼示例,為大家詳細的介紹PHP中session實現記錄用戶登錄信息的具體方法。
1.簡單的登錄界面代碼示例:
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="請輸入用戶名!" value="">br>
input type="text" name="password" placeholder="請輸入密碼!" value="">br>
input type="submit" class="botton" value="login">
/form>
div class="clear">/div>
/div>
/body>
/html>
2.簡單的用于連接數據庫的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;
}
這里我們定義了一個sql方法用來查詢數據庫表中字段,并返回數據。
那么如果有新手不清楚PHP連接數據庫的方法,可以參考學習這篇文章【PHP怎么連接Mysql數據庫】。
3.檢驗用戶登錄信息的代碼示例:
check.php
?php
session_start();
include "db.php";
@$name = $_POST['username'];
@$pas = $_POST['password'];
$row = sql('user', '*', "username = '$name'");
if (!$row) {
return "用戶名不存在!請檢查用戶名~~";
}
if ($row['password'] == $pas) {
$_SESSION['username'] = "$name";
echo "script>
alert('登錄成功!正在跳轉...')
/script>";
echo "a href='index.php'>如果跳轉失敗請點擊跳轉~~/a>";
header("Refresh:1;url=index.php");
}
這里我們要開啟session,并用include引入數據庫,然后用if語句判斷查詢提交過來的數據并將用戶名提交給session來記錄,即判斷用戶名密碼是否存在及是否相等。
4.登錄成功后跳轉的頁面代碼示例:
index.php
?php
echo "h1>這里是主頁/h1>";
session_start();
$name = $_SESSION['username'];
if ($name) {
echo "script>
alert(\"尊敬的$name ,歡迎回來!!\");
/script>";
}else{
echo "script>
alert('您還尚未登錄!請返回登錄~~')
/script>";
echo "a href='index.php'>如果跳轉失敗請點擊跳轉~~/a>";
header("Refresh:1;url=login.html");
}
那么上述代碼login.html,db.php,check.php和index.php就是一個簡單的用session來實現記錄用戶登錄信息的程序。
我們可以通過瀏覽器訪問進行測試,首先我們可以在login登錄界面,輸入用戶名密碼,效果如下圖:

點擊login登錄,跳轉到check.php。

點擊確定

如果跳轉失敗就點擊上圖中鏈接,如果跳轉成功,則直接跳轉到index.php主頁面,顯示如下圖:


本篇文章就是關于PHP中session來實現記錄用戶登錄信息的具體方法介紹,具有一定的參考價值,希望對需要的朋友有所幫助!
您可能感興趣的文章:- PHP使用Redis實現Session共享的實現示例
- PHP SESSION機制的理解與實例
- PHP中如何使用Redis接管文件存儲Session詳解
- 實現PHP中session存儲及刪除變量
- PHP實現負載均衡session共享redis緩存操作示例
- php session_decode函數用法講解