2013-02-22 50 views
0

我有一個用戶管理系統,用戶類型是「管理員」和「用戶」。如果登錄的用戶是管理員,他可以訪問幾頁。如果角色是用戶,他只能訪問一個頁面。我需要保存管理員/用戶的會話並每次檢查他是否爲「admin」,以便用戶不通過傳遞URL來非法訪問信息。現在我可以保存用戶的名字,但不能保存他的角色。我該怎麼做才能將ROLE傳遞給下一組頁面。保存會話傳遞給其他頁面

Home.php

session_start(); 
    if($_SESSION["logging"] && $_SESSION["logged"]) 
    { 
    echo $_SESSION[user]; 
    //Can be accessed only by admin 
    dashboard(); 
    } 
    if(!$_SESSION["logging"]) 
    { 
    $number_of_rows=checkpass(); 
    if($number_of_rows==1) 
     { 
     $_SESSION[user]=$_GET[userlogin]; 
     $_SESSION[logged]=true; 
     print"<h1>you have loged in successfully</h1>"; 
     if($res['ROLE']=='user') 
     { 
         //Accessible only by user. 
     print "<h3><a href='user.php'>View Users</a></h3>"; 
       logout(); 
     } 
     } 
     else 
     { 
      print "Please enter your log in information!"; 
      loginform(); 
     } 
    } 
    function checkpass() 
    { 
    //Database query 
    if($res['ROLE']=='admin') 
    { 
     //Redirected 
     dashboard(); 
    } 
+1

你也可以保存角色在會話中,這樣的事情: '$ _SESSION [「用戶」] [「角色」] = $的作用;' 你可以檢查它是這樣的:'如果($ _SESSION ['user'] ['role']!='admin')exit;' – Perry 2013-02-22 10:36:22

回答

1

添加這是有史以來需要

$_SESSION['role']= role of the user; 

在其他頁面中獲取$ _SESSION ['role']。

1

使用本

if($res['ROLE']=='user') 
{ 
    $_SESSION['ROLE'] = "user"; 
        //Accessible only by user. 
    print "<h3><a href='user.php'>View Users</a></h3>"; 
    logout(); 
} 

if($res['ROLE']=='admin') 
{ 
    $_SESSION['ROLE'] = "admin"; 
    //Redirected 
    dashboard(); 
} 

爲獲得在其他頁面ROLE使用

echo $_SESSION['ROLE']; 
+0

@Sindu在next.php上面寫'session_start();'之後'echo $ _SESSION ['ROLE'];'' 。它會工作。 – 2013-02-22 10:55:34

+0

我如何檢查用戶是否在下一頁有效? – Sindu 2013-02-22 10:55:43

+1

是的,它:) :) – Sindu 2013-02-22 10:56:07