簡體   English   中英

PHP If / Else語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM