PHP實現(xiàn)用戶登錄的案例代碼
本文講述了PHP實現(xiàn)用戶登錄的案例代碼。分享給大家供大家參考,具體如下:
需求分析:
在Web應(yīng)用開發(fā)中,經(jīng)常需要實現(xiàn)用戶登錄的功能。假設(shè)一個名為username的用戶,當(dāng)該用戶進入網(wǎng)站首頁時,如果還未登錄,則頁面會提示登錄,用戶輸入登錄信息進行驗證,驗證通過進入用戶中心,否則顯示用戶名或密碼錯誤,重新登錄。登錄成功后,用戶還可以單擊“注銷”,回到登錄頁面。
程序設(shè)計流程圖:
login.html
<!DOCUMENT html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> <title>會員登錄</title> <style type="text/css"> ul li{margin:0;padding:0;} form{margin:40px 30px 0;} form li{list-style:none;padding:5px 0;} form li label{float:left;width:70px;text-align:right} form li a{font-size:12px;color:#999;text-decoration:none} .login_btn{border:none;background:#01A4F1;color:#fff;font-size:14px;font-weight:bold;height:28px;line-height:28px;padding:0 10px;cursor:pointer;} form li img{vertical-align:top} </style> </head> <body> <form action="login.php" method="POST"> <fieldset> <legend>用戶登錄</legend> <ul> <li> <label for"">用戶名:</label> <input type="text" name="username"/> </li> <li> <label for"">密碼:</label> <input type="password" name="password"/> </li> <li> <label for""> </label> <input type="checkbox" name="remember" value="yes"/>7天內(nèi)自動登錄 </li> <li> <label for""> </label> <input type="submit" name="login" value="登錄" class="login_btn"/> </li> </ul> </fieldset> </body> </html>
login.php
<?php header("Content-Type:text/html;charset=utf-8"); session_start(); if(isset($_POST['login'])) { $username = trim($_POST['username']); $password = trim($_POST['password']); if(($username=='')||($password=='')) { header('refresh:3;url=login.html'); echo "改用戶名或密碼不能為空,3秒后跳轉(zhuǎn)到登錄頁面"; exit; } else if(($username!='username')||($password!='password')) { //用戶名或密碼錯誤 header('refresh:3;url=login.html'); echo "用戶名或密碼錯誤,3秒后跳轉(zhuǎn)到登錄頁面"; exit; } else if(($username=='username')&&($password=='password')) { //登錄成功將信息保存到session中 $_SESSION['username']=$username; $_SESSION['islogin']=1; //如果勾選7天內(nèi)自動保存,則將其保存到cookie if($_POST['remember']=="yes") { setcookie("username",$username,time()+7*24*60*60); setcookie("code",md5($username.md5($password)),time()+7*24*60*60); } else { setcookie("username",'',time()-1); setcookie("code",'',time()-1); } //跳轉(zhuǎn)到用戶首頁 header('refresh:3;url=index.php'); } } ?>
index.php
<?php header("Content-Type:text/html;charset=utf-8"); session_start(); //首先判斷Cookie是否有記住用戶信息 if(isset($_COOKIE['username'])) { $_SESSION['username']=$_COOKIE['username']; $_SESSION['islogin']=1; } if(isset($_SESSION['islogin'])) { //已經(jīng)登錄 echo $_SESSION['username'].":你好,歡迎進入個人中心!<br/>"; echo "<a href='logout.php'>注銷</a>"; } else { //為登錄 echo "你還未登錄,請<a href='login.html'>登錄</a>"; } ?>
logout.php
<?php header("Content-Type:text/html;charset=utf-8"); session_start(); //清除session $username=$_SESSION['username']; $_SESSION=array(); session_destroy(); //清除cookie setcookie("username",'',time()-1); setcookie("code",'',time()-1); echo "$username,歡迎下次光臨"; echo "重新<a href='login.html'>登錄</a>"; ?>
登錄界面:
以上所述是小編給大家介紹的PHP實現(xiàn)用戶登錄的案例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Yii框架批量插入數(shù)據(jù)擴展類的簡單實現(xiàn)方法
這篇文章主要介紹了Yii框架批量插入數(shù)據(jù)擴展類的簡單實現(xiàn)方法,涉及Yii擴展類及數(shù)據(jù)庫相關(guān)操作技巧,需要的朋友可以參考下2017-05-05thinkPHP框架實現(xiàn)類似java過濾器的簡單方法示例
這篇文章主要介紹了thinkPHP框架實現(xiàn)類似java過濾器的簡單方法,結(jié)合實例形式分析了thinkPHP基于繼承實現(xiàn)的登錄驗證功能相關(guān)操作方法,需要的朋友可以參考下2018-09-09關(guān)于PHP 如何用 curl 讀取 HTTP chunked 數(shù)據(jù)
通過本文給大家介紹php用curl讀取http chunked數(shù)據(jù)的方法,本文介紹的非常詳細(xì),具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧2016-02-02讓CodeIgniter的ellipsize()支持中文截斷的方法
CodeIgniter的Text Helper有一個ellipsize()方法,用來過濾HTML標(biāo)簽并且截斷文字十分好用。但是它對中文支持的特別不好,在中文中使用就有亂碼出現(xiàn)。這篇文章主要介紹了讓CodeIgniter的ellipsize()支持中文截斷的方法,需要的朋友可以參考下2014-06-06php 判斷過去離現(xiàn)在幾年的函數(shù)(實例代碼)
下面小編就為大家?guī)硪黄猵hp 判斷過去離現(xiàn)在幾年的函數(shù)(實例代碼)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11php實現(xiàn)爬取和分析知乎用戶數(shù)據(jù)
本文給大家介紹的是利用php的curl編寫的爬取知乎用戶數(shù)據(jù)的爬蟲,并分析用戶的各種屬性,有需要的小伙伴可以參考下2016-01-01關(guān)于php中的json_encode()和json_decode()函數(shù)的一些說明
下面小編就為大家?guī)硪黄P(guān)于php中的json_encode()和json_decode()函數(shù)的一些說明。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11