本文實(shí)例講述了PHP 實(shí)現(xiàn)超簡單的SESSION與COOKIE登錄驗(yàn)證功能。分享給大家供大家參考,具體如下:
第一步,制作一個提交信息的表單頁面
這里我不過多敘述,都能懂的
把他命名為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" />學(xué)生
/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>
第二步,制作一個接受表單信息并且進(jìn)行判斷的php文件
在同目錄的文件夾里創(chuàng)建一個名為index_do.php
?php
session_start();//啟用session
header("Content-type:text/html;charset=utf-8");//設(shè)置編碼格式為utf-8
date_default_timezone_set('PRC'); //調(diào)整時區(qū)
//判斷是否點(diǎn)擊了登錄按鈕
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,那么則把他們輸入進(jìn)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")) {
//不是管理員,是老師或者學(xué)生的時候,并且密碼為2002,那么把他們輸入進(jìn)cookie里
setcookie("name",$name,time()+3600);//創(chuàng)建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");
}
}
}
?>
第三步,創(chuàng)建一個信息文件
同目錄下創(chuàng)建一個名為index.php
?php
session_start();//啟用session
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set('PRC'); //調(diào)整時區(qū)
?>
!DOCTYPE html>
html>
head>
title>登陸成功/title>
/head>
body>
?php
$role = $_GET["role"];//接收數(shù)據(jù)
//判斷是否為管理員身份
if ($role=="admin") {
//判斷是否接收到了數(shù)據(jù),有,則以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") {
//判斷是否接收到了數(shù)據(jù),有,則以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>
知識點(diǎn):
1.session_start()函數(shù)啟用session
2.date_default_timezone_set('PRC')調(diào)整為北京時間
3.$_SERVER["SERVER_ADDR"]接收ip地址
4.header("location:index.php"."?role=$role")將這個值保存到index.php文件里
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP中cookie用法總結(jié)》、《php緩存技術(shù)總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》及《php字符串(string)用法總結(jié)》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- php7 list()、session及其他模塊的修改實(shí)例分析
- PHP7創(chuàng)建銷毀session的實(shí)例方法
- PHP 圖像處理與SESSION制作超簡單驗(yàn)證碼的方法示例
- PHP cookie與session會話基本用法實(shí)例分析
- 如何解決PHP獲取不到SESSION信息之一般情況
- thinkphp 5框架實(shí)現(xiàn)登陸,登出及session登陸狀態(tài)檢測功能示例
- php實(shí)現(xiàn)多站點(diǎn)共用session實(shí)現(xiàn)單點(diǎn)登錄的方法詳解
- PHP實(shí)現(xiàn)cookie跨域session共享的方法分析
- PHP使用Session實(shí)現(xiàn)上傳進(jìn)度功能詳解
- PHP SESSION跨頁面?zhèn)鬟f失敗解決方案