楼上的大体意思基本正确,但是感觉不是太好,一是在登陆后,要设定cookie,因为要分权限.二是,建议建立一个表用来存储权限与功能的对照.假设表为table,字段分别为leve(权限),url(地址)
用户登陆时判断是否合法用户:按照楼上方法就可以:$sql="select id, password,level from db.usertab where username=".$_POST[username];
$res=mysql_query($sql);
list($id,$password,$level)=mysql_fetch_row($res);
mysql_free_result($res);
//下面判断密码是否正确
if ($_POST[password]!=$password) echo '密码错误,登录失败!';
else{
//下面要注意就是当得到该用户是合法用户时要,设定cookie此时的cookie推荐使用加密设定的方式来,否则会很轻易的被js获得和篡改.
$encrypt = authcode($encryptstr,1);//authcode这个函数在后面我会列出.
setcookie ( "code", $encrypt, 0, '/','你的域' );
//这样就设定了dode这个cookie,在其他的页面中我们只需要验证$_COOKIE["code"]就可以了,也不用再读数据库区验证了.
//判断完毕,然后该进入起权限内的地址
$result = mysql_query("select url from table where leve=$level limit 1");
if($r = mysql_fetch_array($result)){
$url = $r[0]["url"];
header("Location:$url");
}
基本的程序就这样,下面是加密与解密cookie串的函数
/*/gao
作用:对用户信息加密与解密
*/
function authcode($string, $operation, $key = '') {
$key_length = strlen($key);
$string_length = strlen($string);
$rndkey = $box = array();
$result = '';
$rndkey[$i] = ord($key[$i % $key_length]);
$box[$i] = $i;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
for($a = $j = $i = 0; $i $string_length; $i++) {
$tmp = $box[$a];
$box[$a] = $box[$j];
if($operation == 'DECODE') {
} else {
return '';
其中AUTHOR_KEY是一个常量,可以为任意字符串,用来设定加密的字符串.
下面的这个函数是用来在程序中解密cookie串
function get_logined_user(){
$cookie = $_COOKIE['author'];
if(!$cookie) return null;
$str = authcode($cookie, 'DECODE');
list($user_id, $username) = @explode("#%#", $str);
if(!$user_id or !$username){
return null;
$user = array(
'userid' = $user_id,
'username' = $username,
);
return $user;
这个函数返回用户id和用户名,这样就能在程序中用这个函数来判断用户是否合法用户了.
如果还有什么疑问可以直接用在线交谈联系我,希望对你能有所帮助.
利用session和cookie实现,
session是保存在服务器的会话记录,当管理员登陆后,对于每个管理操作,都有一段PHP代码用于检查session中的用户是否管理员身份,是则允许管理操作;
cookie是保存在浏览器的登陆数据,譬如登陆之后浏览器存下了用户名和登陆密码,每次与服务器的会话都向服务器发送cookie的数据,此过程中PHP提取cookie里的用户名和密码信息进行校验,通过后允许管理操作.
以上就是土嘎嘎小编为大家整理的php数据库权限登入相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!