2014-04-01 112 views
-3

我已經創建了一個頁面,其中modorators(group 2)可以擁有自己的頁面來顯示正在發生的事情,禁止用戶等。我希望管理員(組1)也能夠訪問該頁面。使用該功能的IM是:爲什麼這隻允許一個類型不是兩個? php

function mod_protect() { 
    global $user_data; 
    if (has_access($user_data['user_id'], 1, 2) === false) { 
     header('Location: index.php'); 
     exit(); 
    } 
    } 

當我使用只是MODS的組號(2)它工作正常,但是當我試圖把雙方只有1作品?

對不起has_access代碼:

function has_access($user_id, $type) { 
    $user_id = (int)$user_id; 
    $type  = (int)$type; 

    return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `user_id` = $user_id AND `type` = $type"), 0) == 1) ? true : false; 
} 
+0

什麼是'has_access()'? – Jeff

+0

顯示'has_access()'的代碼' –

+1

'has_access()'只使用2個參數,而不是3個。 –

回答

0

基於您的代碼,你可以這樣做(儘管它會使用兩個查詢時,一個可以方便地使用 - 這是優化你做雖然):

if (has_access($user_data['user_id'], 1) === false && has_access($user_data['user_id'], 2) === false) { 
    header('Location: index.php'); 
    exit(); 
} 
1

我可以建議將此作爲一種替代方法您has_access()功能:

function has_access($user_id, $type) { 
    $user_id = (int)$user_id; 
    if(is_array($type) { 
    $types = implode(',',$type); 
    return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `user_id` =  $user_id AND `type` IN ($types)"), 0) == 1) ? true : false; 
    else { 
    return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `user_id` =  $user_id AND `type` = $type"), 0) == 1) ? true : false; 
    } 
} 

通過這種方式,您可以將單個類型傳遞給has_access()函數,也可以將相同類型的數組傳遞給相同的函數。

相關問題