本文實例講述了PHP 實現超簡單的SESSION與COOKIE登錄驗證功能。分享給大家供大家參考,具體如下:
第一步,制作一個提交信息的表單頁面
這里我不過多敘述,都能懂的
把他命名為login.php
!DOCTYPE html>
html>
head>
meta charset="utf-8">
title>管理頁面登錄/title>
/head>
body>
form action="index_do.php" method="post" >
table>
tr>
td>
用戶身份:
/td>
td>
input type="radio" name="role" value="admin" />管理員
input type="radio" name="role" value="teacher" />任職教師
input type="radio" name="role" value="student" />學生
/td>
/tr>
tr>
td>
label>
用戶:
/label>
/td>
td>
input type="text" name="name" />
/td>
/tr>
tr>
td>
label>
密碼:
/label>
/td>
td>
input type="password" name="pas" />
/td>
/tr>
tr>
td style="text-align: center;" colspan="2">
input type="submit" name="login" value="登錄" />
input type="reset" name="reset" value="取消" />
/td>
/tr>
/table>
/form>
/body>
/html>
第二步,制作一個接受表單信息并且進行判斷的php文件
在同目錄的文件夾里創建一個名為index_do.php
?php
session_start();//啟用session
header("Content-type:text/html;charset=utf-8");//設置編碼格式為utf-8
date_default_timezone_set('PRC'); //調整時區
//判斷是否點擊了登錄按鈕
if (isset($_POST["login"])) {
$name = $_POST["name"];//用戶名
$pas = $_POST["pas"];//密碼
$role = $_POST["role"];//用戶身份
$time = date("Y:m:d H:i:s",time());//獲取登錄時的時間
$ip = $_SERVER["SERVER_ADDR"];//接收ip位置
//判斷是否為空
if ($name==""$pas=="") {
echo "script>alert('用戶名和密碼不能為空!')/script>";
header("location:login.php");
}else{
//判斷用戶身份是否為管理員
if ($role=="admin"$name=="Rarin") {
//如果是管理員,并且用戶名是Rarin,那么則把他們輸入進session里
$_SESSION["name"] = $name;
$_SESSION["pas"] = $pas;
$_SESSION["role"] = $role;
$_SESSION["ip"] = $ip;
$_SESSION["time"] = $time;
header("location:index.php"."?role=$role");//成功后返回index.php頁面并保存role值
}elseif ($pas=="2002"($role=="teacher"||$role=="student")) {
//不是管理員,是老師或者學生的時候,并且密碼為2002,那么把他們輸入進cookie里
setcookie("name",$name,time()+3600);//創建cookie并給他輸入值
setcookie("pas",$pas,time()+3600);
setcookie("role",$role,time()+3600);
setcookie("ip",$ip,time()+3600);
setcookie("time",$time,time()+3600);
header("location:index.php"."?role=$role");
}
}
}
?>
第三步,創建一個信息文件
同目錄下創建一個名為index.php
?php
session_start();//啟用session
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set('PRC'); //調整時區
?>
!DOCTYPE html>
html>
head>
title>登陸成功/title>
/head>
body>
?php
$role = $_GET["role"];//接收數據
//判斷是否為管理員身份
if ($role=="admin") {
//判斷是否接收到了數據,有,則以SESSION方式登錄
if (!empty($_SESSION["time"])) {
//以session方式輸出
echo "您好,".$_SESSION["name"]."br>";
echo "您的密碼:".$_SESSION["pas"]."br>";
echo "您的ip:".$_SESSION["ip"]."br>";
echo "SESSION登陸成功!您上次訪問的時間是:".$_SESSION["time"]."br>";
echo "form>
input type='submit' name='unlink' value='銷毀' />
/form>";
}else{
echo "script>alert('未登錄!')/script>";
header("location:login.php");
}
}elseif ($role=="teacher"||$role=="student") {
//判斷是否接收到了數據,有,則以COOKIE方式登錄
if (!empty($_COOKIE["time"])) {
//以cookie方式輸出
echo "您好,".$_COOKIE["name"]."br>";
echo "您的密碼:".$_COOKIE["pas"]."br>";
echo "您的ip:".$_COOKIE["ip"]."br>";
echo "COOKIE登陸成功!您上次訪問的時間是:".$_COOKIE["time"]."br>";
echo "form>
input type='submit' name='unlinkCok' value='銷毀' />
/form>";
}else{
echo "script>alert('未登錄!')/script>";
header("location:login.php");
}
}else{
echo "script>alert('非法用戶!')/script>";
header("location:login.php");
}
?>
/body>
/html>
知識點:
1.session_start()函數啟用session
2.date_default_timezone_set('PRC')調整為北京時間
3.$_SERVER["SERVER_ADDR"]接收ip地址
4.header("location:index.php"."?role=$role")將這個值保存到index.php文件里
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP中cookie用法總結》、《php緩存技術總結》、《PHP數組(Array)操作技巧大全》、《PHP網絡編程技巧總結》及《php字符串(string)用法總結》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:- php7 list()、session及其他模塊的修改實例分析
- PHP7創建銷毀session的實例方法
- PHP 圖像處理與SESSION制作超簡單驗證碼的方法示例
- PHP cookie與session會話基本用法實例分析
- 如何解決PHP獲取不到SESSION信息之一般情況
- thinkphp 5框架實現登陸,登出及session登陸狀態檢測功能示例
- php實現多站點共用session實現單點登錄的方法詳解
- PHP實現cookie跨域session共享的方法分析
- PHP使用Session實現上傳進度功能詳解
- PHP SESSION跨頁面傳遞失敗解決方案