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