本文講述了PHP實(shí)現(xiàn)用戶(hù)登錄的案例代碼。分享給大家供大家參考,具體如下:
需求分析:
在Web應(yīng)用開(kāi)發(fā)中,經(jīng)常需要實(shí)現(xiàn)用戶(hù)登錄的功能。假設(shè)一個(gè)名為username的用戶(hù),當(dāng)該用戶(hù)進(jìn)入網(wǎng)站首頁(yè)時(shí),如果還未登錄,則頁(yè)面會(huì)提示登錄,用戶(hù)輸入登錄信息進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)進(jìn)入用戶(hù)中心,否則顯示用戶(hù)名或密碼錯(cuò)誤,重新登錄。登錄成功后,用戶(hù)還可以單擊“注銷(xiāo)”,回到登錄頁(yè)面。
程序設(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>用戶(hù)登錄/legend>
ul>
li>
label for"">用戶(hù)名:/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 "改用戶(hù)名或密碼不能為空,3秒后跳轉(zhuǎn)到登錄頁(yè)面";
exit;
}
else if(($username!='username')||($password!='password'))
{
//用戶(hù)名或密碼錯(cuò)誤
header('refresh:3;url=login.html');
echo "用戶(hù)名或密碼錯(cuò)誤,3秒后跳轉(zhuǎn)到登錄頁(yè)面";
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)到用戶(hù)首頁(yè)
header('refresh:3;url=index.php');
}
}
?>
index.php
?php
header("Content-Type:text/html;charset=utf-8");
session_start();
//首先判斷Cookie是否有記住用戶(hù)信息
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'>注銷(xiāo)/a>";
}
else
{ //為登錄
echo "你還未登錄,請(qǐng)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>";
?>
登錄界面:
![](/d/20211017/c7ef58e20cc31800e1274bfa3fe5850b.gif)
![](/d/20211017/07a0425727f09c57b39e367086ecc730.gif)
![](/d/20211017/c35f599187ca2c01b9d87a8f128c132b.gif)
以上所述是小編給大家介紹的PHP實(shí)現(xiàn)用戶(hù)登錄的案例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- php+mysql實(shí)現(xiàn)簡(jiǎn)單登錄注冊(cè)修改密碼網(wǎng)頁(yè)
- php中實(shí)現(xiàn)記住密碼自動(dòng)登錄的代碼
- PHP 登錄完成后如何跳轉(zhuǎn)上一訪(fǎng)問(wèn)頁(yè)面
- php新浪微博登錄接口用法實(shí)例
- PHP實(shí)現(xiàn)QQ快速登錄的方法
- php注冊(cè)和登錄界面的實(shí)現(xiàn)案例(推薦)
- 使用PHP會(huì)話(huà)(Session)實(shí)現(xiàn)用戶(hù)登陸功能
- php下使用curl模擬用戶(hù)登陸的代碼