php数据库权限登入,php连接数据库实现用户登录功能
求PHP的权限登陆
楼上的大体意思基本正确,但是感觉不是太好,一是在登陆后,要设定cookie,因为要分权限。二是,建议建立一个表用来存储权限与功能的对照.假设表为table,字段分别为leve(权限),url(地址)
十年的昆明网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整昆明建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“昆明网站设计”,“昆明网站推广”以来,每个客户项目都认真落实执行。
用户登陆时判断是否合法用户:按照楼上方法就可以:$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获得和篡改。
$encryptstr = $id.'#%#'.$_POST[username]. '#%#' .md5($password);
$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 = md5($key ? $key : AUTHOR_KEY);
$key_length = strlen($key);
$string = $operation == 'DECODE' ? base64_decode($string) : substr(md5($string.$key), 0, 8).$string;
$string_length = strlen($string);
$rndkey = $box = array();
$result = '';
for($i = 0; $i = 255; $i++) {
$rndkey[$i] = ord($key[$i % $key_length]);
$box[$i] = $i;
}
for($j = $i = 0; $i 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for($a = $j = $i = 0; $i $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}
if($operation == 'DECODE') {
if(substr($result, 0, 8) == substr(md5(substr($result, 8).$key), 0, 8)) {
return substr($result, 8);
} else {
return '';
}
} else {
return str_replace('=', '', base64_encode($result));
}
}
其中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和用户名,这样就能在程序中用这个函数来判断用户是否合法用户了。
如果还有什么疑问可以直接用在线交谈联系我,希望对你能有所帮助。
php里,管理员登录,就可以修改数据库数据,这个权限的原理是什么?
利用session和cookie实现,
session是保存在服务器的会话记录,当管理员登陆后,对于每个管理操作,都有一段PHP代码用于检查session中的用户是否管理员身份,是则允许管理操作;
cookie是保存在浏览器的登陆数据,譬如登陆之后浏览器存下了用户名和登陆密码,每次与服务器的会话都向服务器发送cookie的数据,此过程中PHP提取cookie里的用户名和密码信息进行校验,通过后允许管理操作。
如何设置数据库的权限?
1、首先用管理员进入数据库级中的安全性,点击登录名,点击新建登录名。
2、在界面中,创建登录名,并设置默认的数据库的密码。
3、然后勾选需要设置的数据库,完成创建。
4、然后就可以对数据库中的User表进行权限的设置了,右键“属性”。
5、依次点击“添加”,浏览”,“选择对象”。
6、然后就可以下面的列表中找到对应的权限授予进行设置。
php怎样用数据库来判断管理员登录和普通用户登录?
判断得再细一点,假如是qufen=1并且账号密码都对了,就显示你是管理员,登录成功;假如是qufen=2,并且账号密码都对了,就简单提示登录成功就好了
网站标题:php数据库权限登入,php连接数据库实现用户登录功能
网站路径:http://myzitong.com/article/hedios.html