PHP If / Else Утверждения - PullRequest
       7

PHP If / Else Утверждения

1 голос
/ 22 декабря 2011

У меня есть таблица mysql с именем users со следующими полями:

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");
}
?>

У меня есть код, работающий для обычного пользователя, но я просто не знаюкак написать код для административной части.

Ответы [ 4 ]

2 голосов
/ 22 декабря 2011

Я бы сказал

$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
}
2 голосов
/ 22 декабря 2011

Извлечение role из запроса, проверьте, что это такое, затем установите соответствующее расположение заголовка.

1 голос
/ 22 декабря 2011
$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");
   }
}
0 голосов
/ 22 декабря 2011

определите некоторые константы, как показано ниже, или используйте алгоритм маскирования битов.(php_manual.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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...