LMLPHP后院

使用PHP实现的最简洁快速的登录访问控制技术

maybe yes 发表于 2016-02-15 22:10

个人做产品,和公司不一样。公司由于管理层级的压制,部门之间责任推卸等因素,导致产品效率很低,并且一般不敢或者不可以使用快速简单的实现方法。相反的,如果是个人做产品,时间比较紧的时候,在某些时候适当的使用一些临时处理方案是很好的选择

比如,我们做的某个系统,或者某个系统的某些部分临时需要进行访问控制。在很短的时间搭建用户系统,实现密码控制太累,也非常的傻逼。可以通过文件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;
}
2024-03-28 16:52:07 1711615927 0.034423