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

הוסטס - פורום אחסון האתרים הגדול בישראל (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=27608)

Elad-A 29-07-06 22:28

[PHP] הרשאות לקבוצות
 
שלום,

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

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

Alon.R 29-07-06 22:54

בלי תנאים? בPHP ובכלל בשביל הדבר הזה זה פשוט חובה.

Elad-A 29-07-06 22:58

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

PHP קוד:

if($level 1)
{
echo
" bla";


כי זה לפי דעתי לא שיטה טובה..

eXtaZa 29-07-06 23:02

למה לא שיטה טובה? מה הבעיה בשיטה הזאת?

amirs_5 29-07-06 23:03

בכל מקרה בשביל הרשאות צריך תנאים ...:P
טוב הרעיון שלי הוא כזה .
צור טבלה חדשה במסד..שהיא של הרשאות..
המאפיינים
id , view , read, write , groupid
וכו...
ואם יש לך קבוצה שהיא חסומים , והמספר קבוצה שלה הוא 1 אז אתה פשוט מקשר בין 2 הטבלאות ומסמן בהכל 0 (כלומר שקר)..
ונגיד אם יש לך רשומים אז אתה מסמן 1..

Alon.R 29-07-06 23:04

דבר ראשון עושים תנאי ככה:

PHP קוד:


if($level == "1"

וIF זה דבר בסיסי בכל תיכנות והוא צריך לספק אותך ב100% אין שום סיבה שלא.

אפילו vB משתמשת בIF או שהיא משתמשת בSWITCH אבל זה בעיקרון אותו דבר.

ואם כבר הזכרתי את SWITCH אז זה נעשה ככה:

PHP קוד:


switch($level)
{

case1:
echo 
"ok";
break;

case2:
echo 
"not ok";
break;



Elad-A 29-07-06 23:09

אני מתכוון כמו שיש במערכת הפורומים.

amirs_5 29-07-06 23:12

ציטוט:

נכתב במקור על ידי Elad-A
אני מתכוון כמו שיש במערכת הפורומים.

שמת לב למה שרשמתי לך :S =\

Elad-A 30-07-06 09:43

לא הבנתי תוכל לפרט? (עמיר / אמיר)

-roee- 30-07-06 09:58

הנה רעיון שלי מפורום fresh:

ציטוט:

ליצור טבלה של groups שתכלול את העמודות:
g_id
view
topic
reply
edit

ונגיד לכל עמודה היא מכניסה את השורות(ID של הפורומים השונים עם |) ואז יוצא משהו כזה:
view
1|2|3|4
topic
2|3
reply
2|3
edit
null


ובטבלת המשתמשים תהיה עמודה של member_group

ואז כשמשתמש רוצה נגיד לעשות נושא חדש בפורום עם ID 2 אז הוא הולך ובודק אם ה member_group שלו מורשת לעשות topic ב ID=2


BlueNosE 30-07-06 10:30

באתר שלי יש טבלה members וטבלה groups
בmembers יש gid ובgroups ש בין השאר accept וadmin
אם אני רוצה לדעת אם הוא בקבוצה הנכונה יש לי קוד מיוחד לזה עם JOIN בSQL
הקוד שלי באתר עושה את הדבר הבא:
שולף את הACCEPT מGROUPS כשהID של GROUPS שווה לGID של MEMBERS.

אני יכול להביא לך אם אתה רוצה, ואתה גם יכול לחפש בפורום ולמצוא כי הביאו לי את זה פה אם אתה רוצה.

Elad-A 30-07-06 10:32

אם אתה יכול תביא לי...

BlueNosE 30-07-06 10:39

PHP קוד:

        $mbr = @mysql_query ("SELECT sky_members.*,sky_groups.accept
        FROM sky_members AS sky_members
        LEFT JOIN sky_groups AS sky_groups ON (sky_groups.gid = sky_members.gid)
        WHERE sky_groups.accept != '0' AND id={$qry['uid']}"
)
        or 
Error('mysql','fatal'); 


Elad-A 30-07-06 10:43

תוכל להסביר קצת על הקוד הזה?

amirs_5 30-07-06 11:58

ציטוט:

נכתב במקור על ידי Elad-A
לא הבנתי תוכל לפרט? (עמיר / אמיר)

אמיר, וכן ..

מה שאני הצעתי, זה ליצור טבלה של קבוצות (בנוסף לטבלה של משתמשים) שתראה כך :
http://img101.imageshack.us/img101/9122/dfgwv9.jpg
הסבר :..
id - בשביל לקשר...
mid / gid - אני נוהג ככה .. זה קיצורים שלי:S
mid= member id
gid = group id
תבחר אחד ותכניס,
אח"כ יש לך הרשאות כמו view = צפיה
read = קריאה
write = כתיבה..
שמקבלים את הערכים 0 או 1..
1 = true
0 = false
ואז אתה עושה תנאי אם שמקשר בין ההרשאות למשתמשים ...

או שתעשה כמו בעומר אמר, אבל אני לא מבין ב joinים..
יש על זה מאמר ב וואבמסטר , תקרא מומלץ אני ילמד על זה השבוע..:)

-VladK- 30-07-06 13:16

ציטוט:

נכתב במקור על ידי BlueNosE
PHP קוד:

        $mbr = @mysql_query ("SELECT sky_members.*,sky_groups.accept
        FROM sky_members AS sky_members
        LEFT JOIN sky_groups AS sky_groups ON (sky_groups.gid = sky_members.gid)
        WHERE sky_groups.accept != '0' AND id={$qry['uid']}"
)
        or 
Error('mysql','fatal'); 


knv ha לך @ בתחילץ המשתנה?

-roee- 30-07-06 13:23

ציטוט:

נכתב במקור על ידי DreaMonster
knv ha לך @ בתחילץ המשתנה?


כן זה דיי דבילי מה שהוא רשם

כי מצד אחד @ מבטל את הצגת השגיאה
ומצד שני יש or error כדי להדפיס שגיאה

BlueNosE 30-07-06 13:27

ציטוט:

נכתב במקור על ידי bigsmoke
כן זה דיי דבילי מה שהוא רשם

כי מצד אחד @ מבטל את הצגת השגיאה
ומצד שני יש or error כדי להדפיס שגיאה

מה דבילי בזה?
אני לא רוצה שהמשתמש יראה שגיאות שמציגות נתונים על השרת שלי למשל הROOT שלי וכדומה.
למה אתם לא חושבים לפני שאתם מגיבים?!

Elad-A 30-07-06 19:23

ציטוט:

נכתב במקור על ידי BlueNosE
PHP קוד:

        $mbr = @mysql_query ("SELECT sky_members.*,sky_groups.accept
        FROM sky_members AS sky_members
        LEFT JOIN sky_groups AS sky_groups ON (sky_groups.gid = sky_members.gid)
        WHERE sky_groups.accept != '0' AND id={$qry['uid']}"
)
        or 
Error('mysql','fatal'); 


תוכל לפרט קצת על הקוד?


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

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