[英]PHP If/Else Statements
我有一個名為users
的mysql表,具有以下字段:
username - password - role
該角色由普通用戶和管理員組成。
我想要的是當管理員登錄時將其重定向到另一個頁面,而不是普通用戶可以登錄的頁面。我的代碼如下:
<?php
include("../includes/db.php");
$username=$_POST['username'];
$password=$_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM Users WHERE username='$username' and password='$password' And role = 'normaluser'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("username");
session_register("password");
header("location:myaccount.php");
}
?>
我有適合普通用戶使用的代碼,但我只是不知道如何為管理部分編寫代碼。
從查詢中檢索role
,檢查其內容,然后相應地設置標題位置。
我會說
$sql="SELECT role FROM Users WHERE username='$username' and password='$password'";
$result=mysql_query($sql);
while ($row = mysql_fetch_object($result)) {
//one hit i hope?!
//DONT save your apssword in the session!!!!
//session_register("username");
//session_register("password");
$role = $row->role;
}
if($role == "user"){
redirect1
}elseif($role == "admin"){
redirect2;
}else{
redirect panic
}
$sql = "SELECT * FROM Users WHERE username='$username' and password='$password'";
// ...
if($count == 1){
$user = mysql_fetch_array($result);
if ($user['role'] === 'normaluser')
{
session_register("username");
session_register("password");
header("location:myaccount.php");
}
if ($user['role'] === 'admin')
{
header("location:admin.php");
}
}
定義一些常量,如下所示,或使用位屏蔽算法。 (php_manual)。
index.php或如果您使用框架,請檢查文檔。
define('USER_ADMIN', 'a');
define('USER_USER', 'u');
建立一個將文本類型設置為null的權限表
`permissions` text null
要在視圖中構建user_permissions行,請使用復選框的
<input type="checkbox" name="permissions[]" value="u" selected />
<input type="checkbox" name="permissions[]" value="a" selected />
分配數據
$user='';
$user = (isset($_SESSION['uid'])) ? User::find($_SESSION['uid']) : '';
if(isset($user) && in_array(USER_ADMIN, $user['permissions']))
{
//i am an admin
}
else
{
//i am NOT an admin
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.