לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #7  
ישן 22-12-2006, 18:31
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
בתגובה להודעה מספר 1 שנכתבה על ידי KingYes שמתחילה ב "הרשאות שונות במקומות שונים ומשתמשים שונים."

בנוסף לפיתרון שנתנו לך עם הטבלה, יש לי פיתרון הרבה יותר אלגנטי.
השאלה היא איך אתה רוצה לנהל את זה: למשתמש או לקבוצה.

אם לקבוצה, אתה מכין טבלה של קבוצות עם 3 עמודות:
ID, שם קבוצה, ו- power (אתה יכול להוסיף עוד כל מיני עמודות, כמה שבא לך)
עכשיו, ה- power הוא int, וזה תלוי בכמות הפירוט של ההשקעות, הרעיון של המערכת הרשאות הזאת היא לחסוך בעמודות, על חשבון יותר חישוב מתמטי.

קודם כל אנחנו צרכים מערך עם פרמטרים למשל:
קוד PHP:
 $canDo 
    array
    (
        
'read',
        
'write',
        
'admin_access',
        
'user_access',
        
'update',
        
'delete'
    
); 


על בסיס ההרשאות שהכנו פה אנחנו יכולים לקבוע כל מיני דברים, למשל, קבלה מ- post ערכים, והפיכתם ל- power:
מה אנחנו עושים פה?
אנחנו מקבלים מ- post את המידע, המידע מתקבל כ- 0=שקר, 1=אמת. עכשיו אנחנו מחברים את כל המידע שקיבלנו מ- post, למספר בינארי, חשוב מאוד לפי הסדר, כלומר, read יהיה ראשון ו- write יהיה שני.
למשל, המספר הבינארי של משתמש שיכול אך ורק לקרוא, לכתוב, ולקבל גישת משתמש יהיה:110100.

עכשיו אנחנו מכינים פונקציה שהופכת את המספר הבינארי הזה למספר רגיל, למה? המספר יכול להיות באופן מטריד ארוך מידי

קוד PHP:
 function toPower($power 0)
{
    return     
base_convert($power,2,10);


אחרי שיש לנו power, אנחנו מכניסים את הנתון הזה למסד נתונים ועושים איתו מה שאנחנו רוצים, כל זה טוב ויפה.. אבל עכשיו אנחנו צריכים פונקציה שתהפוך את המספר הזה בחזרה למערך לא? אין בעיה, סבבה:
קוד PHP:
 function getperms($userpower 0)
{
    global 
$canDo;
    
$base_power base_convert($userpower,10,2);
    
$i =0;
    foreach (
$canDo AS $key =>$val)
    {
        
$user_premissions[$val] = (($base_power[$i] == 1) ? 1:0);
    
$i++;
    }
    return 
$user_premissions;


בהסתמכות על המערך, canDo, בתיקווה שלמספר הבינארים הכנסת את ה-1 ו- 0 לפי הסדר, הפונקציה הזאת מחזירה לכם מערך עם כל ההטבות, לפי השמות שיש במערך canDo עם ערך של-1 או 0.

מבוסס על המדריך הזה
_____________________________________


תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 07:07

הדף נוצר ב 0.04 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2026 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר