2014-11-04 3 views
0

Я новичок в PHP, и я застрял в этом, поэтому любая помощь приветствуется.PHP-страница с несколькими уровнями пользовательского уровня

В моей БД у меня есть 4 user_levels:

идентификаторов имя админ член кассиром unregistered_user

Проблема заключается в том, когда какой-либо логины, он перенаправляет это на страницу profile.php. И мне нужно, чтобы у каждого пользователя были другие разрешения, результаты поиска и т. Д. Как это сделать?

login.php

<!doctype html> 
<html> 
<head> 
<title>Login</title> 
</head> 
<body> 
<?php include 'connect.php'; ?> 
<?php include 'functions.php'; ?> 
<?php include 'title_bar.php'; ?> 

<h2>Login:</h2> 
<form method='POST'> 
    <?php 
    if(isset($_POST['submit'])){ 
     $username=$_POST['username']; 
     $password=$_POST['password']; 

     if(empty($username) or empty($password)){ 
      echo "You missed something!"; 

     }else{ 
      $check_login=mysql_query("SELECT id, type FROM users WHERE username='$username' AND password='$password'"); 
      if(mysql_num_rows($check_login)!=0){ 
       $run=mysql_fetch_array($check_login); 
       $user_id=$run['id']; 
       $type=$run['type']; 

       if($type=='d'){ 
        echo "<p>Account not activated!</p>"; 

       }else{ 
        $_SESSION['user_id']=$user_id; 
        header("location: profile.php"); 
       } 

      }else{ 
       echo "<p>Wrong information!</p>"; 
      } 




     } 
    } 


    ?> 
<br/> 
    username: 
    <br/> 
    <input type='text' name='username'><br/> 
    <br/> 
    pass: 
    <br/> 
    <input type='password' name='password'><br /> 
    <br><input type='submit' name='submit' value='Login'><br/> 
    </form> 


    </body> 
</html> 

session_start.php

<?php 
session_start(); 

    function loggedin(){ 
     if(isset($_SESSION['user_id'])&& !empty($_SESSION['user_id'])){ 
      return true; 

     }else{ 
      return false; 

     } 

    } 

    ?> 
+1

Для того, чтобы получить помощь, вам нужно будет выслать код. – Mark

+3

Сообщите нам, пожалуйста, код. Но, как я полагаю, запишите запись своего пользователя из таблицы users, установите permisson в переменную $ _SESSION и на основе их разрешения перенаправите их на нужную страницу. – vaso123

+0

Вы просто показываете/скрываете, что пользователям разрешено видеть. – Naruto

ответ

2

Получить запись вашего пользователя из таблицы пользователей, установите в переменную согласия автора в $ _SESSION, и на основе их разрешения, перенаправить их на нужную страницу.

Конечно, вы должны изменить имена таблиц, имена полей формы, имена столбцов, метод аутентификации, и т.д ...

EDIT:

Потому что вы добавили код, это обновленный на основе вашего кода:

if ($type == 'd') { 
    echo "<p>Account not activated!</p>"; 
} else { 
    $_SESSION['user_id'] = $user_id; 
    $_SESSION['type'] = $run['type']; 
    switch ($run["type"]) { 
     case 1: 
      //admin 
      header("Location: admin.php"); 
      die(); 
      break; 
     case 2: 
      //member 
      header("Location: member.php"); 
      die(); 
      break; 
     case 3: 
      //cashier 
      header("Location: cashier.php"); 
      die(); 
      break; 
     case 4: 
      header("Location: unregistered.php"); 
      die(); 
      //unregistered user 
      break; 
    } 

} 
+0

Спасибо за ваш быстрый ответ! – mar1

+0

Я вставил это и ничего не происходит, не перенаправляется, он просто остается в форме входа – mar1

+0

выгружает 'run [" type "];' это 1 или 2 или 3 или 4? – vaso123