PHP實現(xiàn)用戶登錄的案例代碼
本文講述了PHP實現(xiàn)用戶登錄的案例代碼。分享給大家供大家參考,具體如下:
需求分析:
在Web應(yīng)用開發(fā)中,經(jīng)常需要實現(xiàn)用戶登錄的功能。假設(shè)一個名為username的用戶,當(dāng)該用戶進(jìn)入網(wǎng)站首頁時,如果還未登錄,則頁面會提示登錄,用戶輸入登錄信息進(jìn)行驗證,驗證通過進(jìn)入用戶中心,否則顯示用戶名或密碼錯誤,重新登錄。登錄成功后,用戶還可以單擊“注銷”,回到登錄頁面。
程序設(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'].":你好,歡迎進(jìn)入個人中心!<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)文章
PHP使用range協(xié)議實現(xiàn)輸出文件斷點續(xù)傳代碼實例
這篇文章主要介紹了PHP使用range協(xié)議實現(xiàn)輸出文件斷點續(xù)傳代碼實例,需要的朋友可以參考下2014-07-07
Laravel5.1 框架登錄和注冊實現(xiàn)方法詳解
這篇文章主要介紹了Laravel5.1 框架登錄和注冊實現(xiàn)方法,結(jié)合實例形式詳細(xì)分析了laravel5.1框架登錄與注冊相關(guān)配置、路由、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-01-01
PHP實現(xiàn)動態(tài)web服務(wù)器方法
這篇文章主要通過PHP技術(shù)實現(xiàn)動態(tài)web服務(wù)器的方法,有需要的朋友可以借鑒。2015-07-07
PHP下通過QRCode類庫創(chuàng)建中間帶網(wǎng)站LOGO的二維碼
這篇文章主要介紹了用php中QRCode類庫創(chuàng)建中間帶LOGO的二維碼,QRcode生成二維碼的實例代碼,有需要的朋友可以參考下2014-07-07
laravel框架之?dāng)?shù)據(jù)庫查出來的對象實現(xiàn)轉(zhuǎn)化為數(shù)組
今天小編就為大家分享一篇laravel框架之?dāng)?shù)據(jù)庫查出來的對象實現(xiàn)轉(zhuǎn)化為數(shù)組,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
ThinkPHP結(jié)合ajax、Mysql實現(xiàn)的客戶端通信功能代碼示例
這篇文章主要介紹了ThinkPHP結(jié)合ajax、Mysql實現(xiàn)的客戶端通信功能,需要的朋友可以參考下2014-06-06

