我想为某些用户授予一定的权限。这会是最好的方式吗?我不想创建像:admin,moderator,normal等组。我希望能够让一个用户可以访问制作新闻帖子,另一个用户创建民意调查,也许还有另一个删除民意调查。
我在想这样的表:
CREATE TABLE `users` (
`id` mediumint(8) unsigned NOT NULL,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
)
CREATE TABLE `user_permissions` (
`id` mediumint(8) unsigned NOT NULL,
`user_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
`can_post_news` tinyint(1) NOT NULL DEFAULT '0',
`can_delete_topics` tinyint(1) NOT NULL DEFAULT '0'
........
)
在每个页面上我需要检查:
$sql = mysql_query("SELECT * FROM user_permissions WHERE user_id = $loggedinuser");
$row = mysql_fetch_assoc($sql);
if ($row['can_delete_topics'] == 1) {
mysql_query("delete from topics....");
}
另一个问题:我可以创建“检查代码”的功能,所以我不需要在每个页面上使用这个丑陋的代码吗? (我对功能还不是很好)
请原谅我的英语,我正在尽我所能
由于
答案 0 :(得分:5)
更好的方法是(使用postgresql sql语法):
CREATE TABLE users (
id SERIAL, -- autoincrementing int
...
)
CREATE TABLE permissions (
id SERIAL,
name VARCHAR(255) NOT NULL,
...
)
create table users_permissions (
id_user REFERENCES users(id),
id_permission REFERENCES permission(id),
UNIQUE(id_user, id_permission)
)
然后检查users_permissions
表中的行。
对于你的第二个问题,故事更长。对于上面的代码没有办法,您必须检查用户是否具有执行特定功能的权限。为了我能记住的PHP(不是它的PHP,对吗?)有梨是一个有用的代码库。还有一个很大的类库,但我不记得它的名字。
修改强>
我发现网站:http://www.phpclasses.org/有多难记住...