PHP實(shí)現(xiàn)用戶登錄的案例代碼
本文講述了PHP實(shí)現(xiàn)用戶登錄的案例代碼。分享給大家供大家參考,具體如下:
需求分析:
在Web應(yīng)用開發(fā)中,經(jīng)常需要實(shí)現(xiàn)用戶登錄的功能。假設(shè)一個(gè)名為username的用戶,當(dāng)該用戶進(jìn)入網(wǎng)站首頁時(shí),如果還未登錄,則頁面會(huì)提示登錄,用戶輸入登錄信息進(jìn)行驗(yàn)證,驗(yàn)證通過進(jìn)入用戶中心,否則顯示用戶名或密碼錯(cuò)誤,重新登錄。登錄成功后,用戶還可以單擊“注銷”,回到登錄頁面。
程序設(shè)計(jì)流程圖:
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>會(huì)員登錄</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)自動(dòng)登錄 </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')) { //用戶名或密碼錯(cuò)誤 header('refresh:3;url=login.html'); echo "用戶名或密碼錯(cuò)誤,3秒后跳轉(zhuǎn)到登錄頁面"; exit; } else if(($username=='username')&&($password=='password')) { //登錄成功將信息保存到session中 $_SESSION['username']=$username; $_SESSION['islogin']=1; //如果勾選7天內(nèi)自動(dòng)保存,則將其保存到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'].":你好,歡迎進(jìn)入個(gè)人中心!<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實(shí)現(xiàn)用戶登錄的案例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Yii框架批量插入數(shù)據(jù)擴(kuò)展類的簡單實(shí)現(xiàn)方法
這篇文章主要介紹了Yii框架批量插入數(shù)據(jù)擴(kuò)展類的簡單實(shí)現(xiàn)方法,涉及Yii擴(kuò)展類及數(shù)據(jù)庫相關(guān)操作技巧,需要的朋友可以參考下2017-05-05thinkPHP框架實(shí)現(xiàn)類似java過濾器的簡單方法示例
這篇文章主要介紹了thinkPHP框架實(shí)現(xiàn)類似java過濾器的簡單方法,結(jié)合實(shí)例形式分析了thinkPHP基于繼承實(shí)現(xiàn)的登錄驗(yàn)證功能相關(guān)操作方法,需要的朋友可以參考下2018-09-09關(guān)于PHP 如何用 curl 讀取 HTTP chunked 數(shù)據(jù)
通過本文給大家介紹php用curl讀取http chunked數(shù)據(jù)的方法,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-02-02

php 判斷過去離現(xiàn)在幾年的函數(shù)(實(shí)例代碼)

php實(shí)現(xiàn)爬取和分析知乎用戶數(shù)據(jù)

關(guān)于php中的json_encode()和json_decode()函數(shù)的一些說明