הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   PHP גישות / הרשאות (https://hosts.co.il/forums/showthread.php?t=82241)

SniR-S 23-04-10 16:46

PHP גישות / הרשאות
 
אני עובד על מערכת כלשהי,
אני צריך שלכל משתמש יהיו גישות מסויימות שאני אבחר,
ורציתי להתייעץ איתכם ולשאול מה הדרך של כל אחד ואחד.
חשבתי על לעשות תיבות סימון checkbox לכל גישה (הגדרה)
ולכל אחד מהם יהיה ערך
נגיד 1 = הגדרות אתר
2 = הודעות
3 = מחיקה
(סתם לצורך הדוגמה כמובן)

אבל אני לא יודע איך להמשיך,
איזה תנאים לעשות, מה להכניס למסד, מה לשלוף
אין לי משהו יעיל בראש כרגע :-)

orelcn 23-04-10 23:06

http://www.html-form-guide.com/php-f...-checkbox.html
יש לך אחלה של הסבר פה...

SniR-S 24-04-10 10:42

לא עוזר לי, אני יודע איך להשתמש עם checkbox ולשלב עם PHP וכל מה שכתוב במאמר שהבאת.
זה לא מה שאני צריך,
תודה בכל מקרה, אשמח אם מישהו יעזור.

OrPol 24-04-10 12:28

תוסיף בטבלה של משתמשים עמודה שנקראת PERMISSIONS,
קח את כל ההרשאות, תן להן מספרים כמו שאמרת (1,5,707 או מה שזה לא יהיה), ותכניס לטבלה בפורמט של 1|5|707.
תעשה פונקציה שבודקת הרשאות משתמש לפי הUserID שלו בSESSION, (שתשלוף מהמסד ותעשה EXPLODE, ותחזיר כמערך),
ואז, בכל עמוד שהגדרת לו הרשאה - נגיד ניהול הגדרות האתר - 707, תעשה WHILE($per=getUserPer())
ואם ההרשאה מופיעה, תן לו גישה, אם לא - תן HEADER או הודעה.


בהצלחה.

SniR-S 24-04-10 12:46

אוקי, תודה, זה הסגנון שרציתי לעשות פחות או יותר.
אני יודע להשתמש ב explode, אבל לא יודע בדיוק איך להחזיר את זה כמערך.
PHP קוד:

$per "707|5|1";
  
$per explode("|"$per);
$per["0"]; // הרשאה 707
$per["1"]; // הרשאה 5
$per["2"]; // הרשאה 1 

בגדול אני יודע את זה, לא הבנתי את ההמשך..מזאת אומרת להחזיר כמערך
איך הלולאה תעבוד ?

OrPol 24-04-10 12:53

ציטוט:

נכתב במקור על ידי Snir Shamka (פרסם 761934)
אוקי, תודה, זה הסגנון שרציתי לעשות פחות או יותר.
אני יודע להשתמש ב explode, אבל לא יודע בדיוק איך להחזיר את זה כמערך.
PHP קוד:

$per "707|5|1";
  
$per explode("|"$per);
$per["0"]; // הרשאה 707
$per["1"]; // הרשאה 5
$per["2"]; // הרשאה 1 

בגדול אני יודע את זה, לא הבנתי את ההמשך..מזאת אומרת להחזיר כמערך
איך הלולאה תעבוד ?

PHP קוד:

function getUserPer(){
$per "707|5|1"
$per explode("|"$per); 
return 
$per;
}

$per=getUserPer();
while(
$per){
if(
$per == "this page/'s permission")
    
show_page();



SniR-S 24-04-10 13:33

תודה, אני אנסה את זה.

Shay Ben Moshe 24-04-10 14:18

אל תעשה את זה. יש דרך יותר פשוטה.
תן לכל אחד ערך בינארי, זאת אומרת הראשון יהיה 1, השני 10, השלישי 100 וכולי.
לפני ההכנסה למסד תשתמש בbindec, תאחסן במסד smallint כמספר דצימלי וכשאתה שולף תוכל להמיר חזרה לדצימלי עם decbin.
הכי הגיוני. דרך אגב ככה זה הקונספט של ההרשאות מFTP.

OrPol 24-04-10 14:29

ציטוט:

נכתב במקור על ידי Shay Falador (פרסם 761941)
אל תעשה את זה. יש דרך יותר פשוטה.
תן לכל אחד ערך בינארי, זאת אומרת הראשון יהיה 1, השני 10, השלישי 100 וכולי.
לפני ההכנסה למסד תשתמש בbindec, תאחסן במסד smallint כמספר דצימלי וכשאתה שולף תוכל להמיר חזרה לדצימלי עם decbin.
הכי הגיוני. דרך אגב ככה זה הקונספט של ההרשאות מFTP.

התכוונת לבינארי?


נ.ב.
תפסיק להיות כזה גאון :)

מת עליך בנאדם :P

intercooler3819 24-04-10 16:47

הכי הגיוני והכי פשוט להבנה.. הדרגות הולכות מהכי קיצונית בגישות להכי קיצונית בצד שני
משמע אם הגישות הם 1 2 3 אז מישהו בעל גישה 2 יש לו גישה כמו של יוזר בעל גישה 1 וכמו יוזר בעל גישת 2
מישהו שיש לו גישה 3 יש לו גישה 2, גישה 1 וגם גישה 3

ואז התנאי הוא משהו כמו
if ($permission >= 2) {}

עדיף לעשות את ההרשאות בקפיצות של 10 כלומר
10
20
30
40
והלאה
ככה שאם תרצה להוסיף הרשאה אין בעיה להוסיף איזה 11 באמצע ולא לשפר את הקוד...

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


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

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