PHP實(shí)現(xiàn)簡單登錄界面
PHP學(xué)習(xí)路上的第一個完整的極小極小的項(xiàng)目,特意做個記錄
登錄界面:
html代碼(login.html):
<form action="login.php" method="post"> <fieldset> <legend>用戶登錄</legend> <ul> <li> <label>用戶名:</label> <input type="text" name="username"> </li> <li> <label>密 碼:</label> <input type="password" name="password"> </li> <li> <label> </label> <input type="checkbox" name="remember" value="yes">7天內(nèi)自動登錄 </li> <li> <label> </label> <input type="submit" name="login" value="登錄"> </li> </ul> </fieldset> </form>
login.php:(登陸處理頁)
<?php header('Content-type:text/html; charset=utf-8'); // 開啟Session session_start(); // 處理用戶登錄信息 if (isset($_POST['login'])) { # 接收用戶的登錄信息 $username = trim($_POST['username']); $password = trim($_POST['password']); // 判斷提交的登錄信息 if (($username == '') || ($password == '')) { // 若為空,視為未填寫,提示錯誤,并3秒后返回登錄界面 header('refresh:3; url=login.html'); echo "用戶名或密碼不能為空,系統(tǒng)將在3秒后跳轉(zhuǎn)到登錄界面,請重新填寫登錄信息!"; exit; } elseif (($username != 'username') || ($password != 'password')) { # 用戶名或密碼錯誤,同空的處理方式 header('refresh:3; url=login.html'); echo "用戶名或密碼錯誤,系統(tǒng)將在3秒后跳轉(zhuǎn)到登錄界面,請重新填寫登錄信息!"; exit; } elseif (($username = 'username') && ($password = 'password')) { # 用戶名和密碼都正確,將用戶信息存到Session中 $_SESSION['username'] = $username; $_SESSION['islogin'] = 1; // 若勾選7天內(nèi)自動登錄,則將其保存到Cookie并設(shè)置保留7天 if ($_POST['remember'] == "yes") { setcookie('username', $username, time()+7*24*60*60); setcookie('code', md5($username.md5($password)), time()+7*24*60*60); } else { // 沒有勾選則刪除Cookie setcookie('username', '', time()-999); setcookie('code', '', time()-999); } // 處理完附加項(xiàng)后跳轉(zhuǎn)到登錄成功的首頁 header('location:index.php'); } } ?>
index.php(默認(rèn)主頁):
<?php header('Content-type:text/html; charset=utf-8'); // 開啟Session session_start(); // 首先判斷Cookie是否有記住了用戶信息 if (isset($_COOKIE['username'])) { # 若記住了用戶信息,則直接傳給Session $_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()-99); setcookie('code', '', time()-99); // 提示信息 echo "歡迎下次光臨, ".$username.'<br>'; echo "<a href='login.html'>重新登錄</a>"; ?>
登錄成功的狀態(tài):
若勾選7天內(nèi)自動登錄,則會將登錄信息通過Cookie和Session技術(shù)保存在本地Cookie文件中,7天內(nèi)會自動登錄。
注銷頁面:
登錄錯誤的幾種情況都做了處理:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP如何實(shí)現(xiàn)阿里云短信sdk靈活應(yīng)用在項(xiàng)目中的方法
這篇文章主要介紹了PHP如何實(shí)現(xiàn)阿里云短信sdk靈活應(yīng)用在項(xiàng)目中的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法詳解
本篇文章是對AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05php redis實(shí)現(xiàn)文章發(fā)布系統(tǒng)(用戶投票系統(tǒng))
這篇文章主要為大家詳細(xì)介紹了php redis實(shí)現(xiàn)文章發(fā)布系統(tǒng)以及用戶投票系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03解決laravel(5.5)訪問public報(bào)錯的問題
今天小編就為大家分享一篇解決laravel(5.5)訪問public報(bào)錯的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10YII2框架中使用yii.js實(shí)現(xiàn)的post請求
本文給大家介紹的是簡單分析下用yii2的yii\helpers\Html類和yii.js實(shí)現(xiàn)的post請求的方法,非常的簡單,有需要的小伙伴可以參考下2017-04-04