我使用的是html,PHP和MySQL(phpmyadmin)。这可能是一个非常简单的问题,但我是初学者,所以这对我来说很新。我的系统有4种类型的用户。 假设用户类型1具有用户名Tom,用户类型2具有用户名Alice,用户类型3具有用户名Mike,用户类型4具有用户名Mary。 我希望登录页面能够识别用户名写入时的用户类型。例如,如果是Tom,我希望系统识别出他是用户类型1并将他重定向到特定页面。同样,如果是Alice,则应识别她的用户类型,并将她重定向到另一个页面。与用户类型1不同的页面。 请让我知道最简单的方法。非常感谢你。
这是我到目前为止所做的。但它没有用。请让我知道我必须做什么。
if (isset($_POST['username'])) {
$username = $_POST ['username'];
$password = $_POST ['password'];
$usertype = $_POST ['user_type'];
$sql = "SELECT * FROM users WHERE username = '".$username."' AND password = '".$password."' LIMIT 1";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1) {
if ($username ['user_type'] == admin) {
header('location: localhost/adminhomepage.php');
}
else if ($username ['user_type'] == po) {
header('location: localhost/pohomepage.php');
}
else if ($username ['user_type'] == pw) {
header('location: localhost/pwhomepage.php');
}
else if ($username ['user_type'] == ps) {
header('location: localhost/pshomepage.php');
}
else{
echo "error determining user type!";
exit();
}
}
else {
echo "Invalid login information. Please try again.";
exit();
}
}
答案 0 :(得分:2)
试试这个,在mysql中创建一个像role一样的单独列。基于usertype在该列中放置值,如果usertype 1 = role是1,usertype 2 = role是两个......
根据列名角色中的值进行特定登录时,将用户重定向到各自的页面。
由于
答案 1 :(得分:0)
编辑:这是基于您上次的代码添加编辑
// Needs to be at the top of every page
// This is used to recall your user status
session_start();
if (isset($_POST['username'])) {
// You need to sanitize this or you have a potential security issue
$username = mysql_real_escape_string($_POST ['username']);
// You should not be storing in plain text. You should have this encrypted
// You should store it with PHP's latest encryption functions or at least do
// a salt + hash.....but at least do a hash
// hash("sha512", $_POST['password']);
$password = mysql_real_escape_string($_POST['password']);
// I am not sure of the relevance of this field
$usertype = $_POST['user_type'];
$sql = "SELECT * FROM users WHERE username = '".$username."' AND password = '".$password."' LIMIT 1";
// You should be using mysqli_ or PDO with prepared statements
$query = mysql_query($sql);
// You need to fetch the results. All you have done is check if user exists
if (mysql_num_rows($query) == 1) {
// Fetch results
$user = mysql_fetch_assoc($query);
// You should set results to a session for later checking
$_SESSION['user_type'] = $user['user_type'];
$_SESSION['username'] = $user['username'];
// You have to quote the checks or they are invalid
if ($_SESSION['user_type'] == 'admin') {
header('location: localhost/adminhomepage.php');
}
else if ($_SESSION['user_type'] == 'po') {
header('location: localhost/pohomepage.php');
}
else if ($_SESSION['user_type'] == 'pw') {
header('location: localhost/pwhomepage.php');
}
else if ($_SESSION['user_type'] == 'ps') {
header('location: localhost/pshomepage.php');
}
else{
echo "error determining user type!";
exit();
}
}
else {
echo "Invalid login information. Please try again.";
exit();
}
}
答案 2 :(得分:0)
在数据库中为用户类型添加新列。通常使用默认值创建列是有意义的,除非它们始终是唯一的。
/*/your SQL query/*/
//if you need to validate type throughout the site, setup sessions as @Rasclatt suggested//
if ($user['type'] == 1) {
header('location: http://domain.com/page1.html');
}else if ($user['type'] == 2) {
header('location: http://domain.com/page2.html');
}else if ($user['type'] == 3) {
header('location: http://domain.com/page3.html');
}else if ($user['type'] == 4) {
header('location: http://domain.com/page4.html');
}else{
echo "error determining user type!";
exit;
}
答案 3 :(得分:0)
在用户表中添加名为user_type的列。 用户注册时添加用户类型。 之后登录时,您可以通过查询检查登录的用户类型。
如果要在下一页显示用户类型,可以在会话中存储user_type。
随时可以提出任何进一步的问题。
我希望这可以帮到你。
答案 4 :(得分:0)
首先,您需要MySQL技能才能获得所需内容,因为用户类型/角色取决于不同的MySQL表格。 例如... 在几乎每个网站中,您都注意到有一个管理员,用户,还有一些人有一个或多个子管理员。所有人都有不同的权利,当他们尝试登录时,每个人都会重定向到他们指定的页面,比如用户将被重定向到主页,管理员将重定向到管理面板索引等。
现在你需要为MySQL中的每个用户创建不同的表并为它们分配不同的权限,或者你也可以根据布尔值创建不同的列,例如0表示某些操作,1表示某些操作... 希望它会帮助你...