הרשם שאלות ותשובות רשימת חברים לוח שנה חיפוש הודעות מהיום סמן פורומים כנקראו

   
|!|

 
 
כלים לאשכול תצורת הצגה
Prev הודעה קודמת   הודעה הבאה Next
ישן 08-10-06, 07:18   # 1
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

[מדריך] PHP - איך לעשות מערכת הרשאות

תמיד רציתם לדעת איך לעשות מערכת הרשאות ? לפעילויות שונות במערכת ?

המדריך יוצא מתוך נקודת הנחה שיש לכם ידע בסיסי ב PHP (רצוי גם MYSQL)
ושיש לכם איזה שהיא מערכת שכוללת התחברות.

טוב אז ככה...
למה זה טוב ?
זה טוב למערכות שיש בהם הרבה משתמשים או קבוצות משתמשים ואתם רוצים שלכל קבוצה יהיה הרשאות שונות. לדוגמא : המשתמש יכול להעלות קבצים ? כן\לא המשתמש יכול לשנות עיצוב ? כן \ לא

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

PHP קוד:
$perms 
array(
'canread',
'canwrite',
'canadmin',
'canfuck',
'cansuckmydick',
); 
עכשיו אני לא יודע מי למד בתיכון (או לומד) אלקטרוניקה ומחשבים
אבל יש 2 מצבים בסייסים, 0 ו 1
עכשיו במערכת שלנו, 0 מסמן לא יכול לעשות את הפעולה המבוקשת, ו 1 מסמן יכול לעשות את הפעולה המבוקשת.

עכשיו פונקציות הבסיס של המערכת :

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

function 
getperms($userpower 0)
{
    global 
$perms;
    
$base_power base_convert($userpower,10,2);
    
$i =0;
    foreach (
$perms AS $key =>$val)
    {
        
$user_premissions[$val] = (($base_power[$i] == 1) ? 1:0);
    
$i++;
    }
    return 
$user_premissions;

הפונקציצה הראשונה ממירה מספרי מבסיס בינארי ( 0 ו 1) לבסיס עשרוני (10)
כלומר כשאנחנו מוסיפים משתמש בפנאל ניהול, יהיה לנו לפי הסדר את הפעולות שמוגדרות במערך הראשוני
לדוגמא :
יכול לראות את המערכת ? כן \ לא
יכול לכתוב הודעות ? כן \ לא

כמובן שזה הולך לפי הסדר שהגדרנו בהתחלה
ככה שאחרי שאנחנו נעשה POST כלומר לשמור את המשתמש,
אנחנו נקבל את המידע ככה :
PHP קוד:
$_POST['canread'] = 1
אז אנחנו נקח את כל המשתנים ונחבר אותם ביחד
ובסוף יהיה לנו שורה לפי מה שבחרנו לדוגמא 10101 אבל אנחנו לא יכולים להשתמש בזה ככה
לכן אנחנו נמיר את זה למספר עשרוני עם הפונקציה שכתבו קודם כך :
PHP קוד:
$userpower topower(10101); 
ואז בתוך USERPOWER אנחנו נקבל את המספר 21
ונשמור את המספר הזה במסד...תחת השורה של אותו משתמש

עכשיו כשהמשתמש מתחבר אז אנחנו מן הסתם מושכים את הפרטים שלו מהמסד
לדוגמא :
PHP קוד:
$user $db->query_return("SELECT * FROM user WHERE userid='5'"); 
עכשיו בתוך USER יש לנו את כל הפרטים ובין השאר את power.

עכשיו אנחנו צריכים להמיר את זה להרשאות אז נשתמש בפונקציה השניה
ונעשה משהו כזה :
PHP קוד:
$user[permissions] = getperms($user[power]); 
עכשיו יש בתוך המשתנה user[permissions] את כל ההרשאות

וזה נראה בערך ככה :

PHP קוד:
Array
(
    [
canread] => 1
    
[canwrite] => 0
    
[canadmin] => 1
    
[canfuck] => 0
    
[cansuck] => 1

עכשיו כל מה שנותן זה להשתמש בהרשאות שקיבלנו עבור המשתמש :
לדוגמא
PHP קוד:

if (!$user[permission][canread])
{
echo 
"you dont have permission to view this page";
die();
}
//rest of code here 

וזה בערך הרעיון על רגל אחת.... מקווה שהבנתם ומי שלא אז תשאלו פה ואני אשתדל לעזור..

תהנו.
  Reply With Quote
 

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

Tags
אבטחה, ניהול, מדריך למתקדמים, מדריך php

כלים לאשכול
תצורת הצגה

חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 18:04.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ