使用PHP实现的最简洁快速的登录访问控制技术
个人做产品,和公司不一样。公司由于管理层级的压制,部门之间责任推卸等因素,导致产品效率很低,并且一般不敢或者不可以使用快速简单的实现方法。相反的,如果是个人做产品,时间比较紧的时候,在某些时候适当的使用一些临时处理方案是很好的选择。
比如,我们做的某个系统,或者某个系统的某些部分临时需要进行访问控制。在很短的时间内搭建用户系统,实现密码控制太累,也非常的傻逼。可以通过文件,Cookie 实现快速的访问控制,一般一个系统使用的人也就只有一个人,这样做也算是比较好的解决方案了。
下面的 PHP 函数实现了简单的访问控制,算是非常的精炼了。笔者看过很多的开源系统也大都是这样的类似的实现方式。分享代码如下:
<?php
function isLogin() {
$passwd = 'leiminglin';
$time = time();
$expire_time = $time+86400*2;
$domain = 'webchat.lmlphp.com';
$salt = 'lmlphp';
$token_name = 'lmlphp_token';
$input_name = 'lmlphp_passwd';
if (isset($_POST[$input_name]) && $_POST[$input_name] == $passwd) {
setcookie($token_name, md5($passwd.$salt.$time).'_'.$time, $expire_time, '/', $domain);
return true;
}
if (!isset($_COOKIE[$token_name])) {
echo '<form method="post" action="">'.
'passwd: <input type="password" name="'.$input_name.'"/>'.
'<input type="submit" value="Submit"/>'.
'</form>';
return false;
} else {
$arr = explode('_', $_COOKIE[$token_name]);
if(count($arr) != 2 || $_COOKIE[$token_name] != md5($passwd.$salt.$arr[1]).'_'.$arr[1]) {
return false;
}
}
return true;
}
暂无