今天将我介绍一个基于COOKIES的简单登陆系统,我们将登陆用户的信息存储直接储存至浏览器的cookies中。它将帮助我们记住用
户的信息。首先先建一个工程目录
下面是login_form.html:
<link type="text/css" rel="stylesheet" href="styles.css" />
<form class="login_form" method="post" action="index.php">
<div>Username: <input type="text" name="username" /></div>
<div>Password: <input type="password" name="password" /></div>
<div><input class="submit" type="submit" value="Login" name="Login" /></div>
</form>
<div id="note">You can use username "User1" of "User2" and password "qwerty" to login in system</div>
下面是CSS样式,style.css
.login_form {
background-color: #456789;
width:300px;
margin-top:200px;
margin-left:auto;
margin-right:auto;
border: 5px solid #234567;
border-radius: 10px;
padding:10px;
text-align:center;
color: #ffffff;
font-weight: bolder;
}
.submit{
background-color: #9abcde;
margin: 10px;
}
#note{
margin-left:auto;
margin-right:auto;
}
现在前端的代码已经写好了,是不是很简单呢?下面来看看后端的PHP代码吧:
后端的PHP中主要使用如下几个函数:
getLoginBox:用于返回登陆框。
simple_login:执行登陆(将必要的信息储存至cookies中)。
simple_logout:执行退出(清除使用过的Cookies)。
check_login:如果系统中已经存在用户名和密码则返回true。
index.php:
<?php
// set error reporting level
if (version_compare(phpversion(), "5.3.0", ">=") == 1)
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
else
error_reporting(E_ALL & ~E_NOTICE);
// initialization of login system and generation code
$oSimpleLoginSystem = new SimpleLoginSystem();
echo $oSimpleLoginSystem->getLoginBox();
require_once('footer.php');
// class SimpleLoginSystem
class SimpleLoginSystem {
// variables
var $aExistedMembers; // Existed members array
// constructor
function SimpleLoginSystem() {
$this->aExistedMembers = array(
'User1' => 'd8578edf8458ce06fbc5bb76a58c5ca4', //Sample: MD5('qwerty')
'User2' => 'd8578edf8458ce06fbc5bb76a58c5ca4'
);
}
function getLoginBox() {
ob_start();
require_once('login_form.html');
$sLoginForm = ob_get_clean();
$sLogoutForm = '<a href="'.$_SERVER['PHP_SELF'].'?logout=1">logout</a>';
if ((int)$_REQUEST['logout'] == 1) {
if (isset($_COOKIE['member_name']) && isset($_COOKIE['member_pass']))
$this->simple_logout();
}
if ($_REQUEST['username'] && $_REQUEST['password']) {
if ($this->check_login($_REQUEST['username'], MD5($_REQUEST['password']))) {
$this->simple_login($_REQUEST['username'], $_REQUEST['password']);
return 'Hello ' . $_REQUEST['username'] . '! ' . $sLogoutForm;
} else {
return 'Username or Password is incorrect' . $sLoginForm;
}
} else {
if ($_COOKIE['member_name'] && $_COOKIE['member_pass']) {
if ($this->check_login($_COOKIE['member_name'], $_COOKIE['member_pass'])) {
return 'Hello ' . $_COOKIE['member_name'] . '! ' . $sLogoutForm;
}
}
return $sLoginForm;
}
}
function simple_login($sName, $sPass) {
$this->simple_logout();
$sMd5Password = MD5($sPass);
$iCookieTime = time() + 24*60*60*30;
setcookie("member_name", $sName, $iCookieTime, '/');
$_COOKIE['member_name'] = $sName;
setcookie("member_pass", $sMd5Password, $iCookieTime, '/');
$_COOKIE['member_pass'] = $sMd5Password;
}
function simple_logout() {
setcookie('member_name', '', time() - 96 * 3600, '/');
setcookie('member_pass', '', time() - 96 * 3600, '/');
unset($_COOKIE['member_name']);
unset($_COOKIE['member_pass']);
}
function check_login($sName, $sPass) {
return ($this->aExistedMembers[$sName] == $sPass);
}
}
?>
在线查看例子
下载例子
如有任何问题请在下面留言给我哦。感谢您的关注!