![]() |
php| הפרדה והוצאת נתונים ע"י הפרדה בסימן, אינכלוד מרוחק
שלום פורום;)
נגיע ישר לעיקר.. אני כרגע יושב על מערכת בה יש מערכת הרשאות... חשבתי לעשות כזה דבר - בטבלת users יהיה עמודה של access וההרשאות יופרדו ב";" כך שמנהל שיש לו הרשאות לעריכת דפים, צפייה במשתמשים יהיה משהו כמו זה בעמודה access pages;view_users ולמנהל אחר שיש לו דפים, מנהלים, משתמשים, בלוקים pages;admins;users;blocka ולשאלה - כיצד אני עושה את זה ? באקספלוד אני לא יכול כי הרי אין מס' קבוע של הרשאות(לכל מנהל) וזה לא באותו סדר.. לשאלה השניה האם יש לי אפשרות לעשות include לקובץ PHP משרת אחר? אם לא, האם יש אפשרות לייבא קובץ PHP משרת אחר? תודה וערב טוב |
אתה יכול לעשות explode על ; (נקודה פסיק) ואז למצוא אם ההרשאה קיימת ע"י in_array
|
אני במערכת SITETOU עשיתי פונצקייה שמביא לך מערך של הרשאות ובמסד היה לי משהוא כזה: 1;1;0;1;0;0;1
ואז אתה מריץ בדיקה שאם ההרשאה המספר בה הוא 1 אז זה מאשר אם לא אז לא.. אתה מוזמן להסתכל בקוד :) ולשאלה השנייה נראה לי שאפשר לעשות אינקלוד משרת אחר אבל אם אני לא טועה צריך להיות משהוא מיוחד מופעל בשרת.. אני לא יודע בידיוק כי לא יצא לי להשתמש או לנסות אז אני לא יכול להגיד לך אלא רק לשער |
ציטוט:
Tomer צריך לעשות array("users", "page""); ובמסד זה ככה - users;page |
הדרך שלך והרעיון טובים מאוד והביצוע קל ביותר.
לדוגמא יש קובץ ניהול ששמו pages.php ששולט על הדפים באתר, ובמסד יש לך בדיוק את המצב כמו שתיארנו, הראשות המופרדות ע"י נקודה פסיק ; בתחילת הקובץ pages.php אתה עושה משהו בסגנון: PHP קוד:
|
תודה!
חשבתי שin_array אפשר רק בהפרדה של גרשיים ופסיקים..תודה רבה.. מה לגבי אינקלוד מרוחק? יש לי שאלה נוספת שקשורה לאבטחה. במידה ויש לי קובץ admin.php ובget הוא מייבא דפים אחרים. האם לכל דף אני צריך לבדוק שם-משתמש וסיסמא?(ע"מ לאמת שזהו המשתמש?) |
ייבוא קובץ משרת אחר, ייבא את הפלט של אותו קובץ ולא את הקוד במידה וכולל.
|
ציטוט:
|
ציטוט:
אבל, מה שיש לבדוק זה שלא יכנסו לקובץ pages.php לדוגמא ע"י הקלדה בשורת הכתובות. |
שלא יכנסו לקובץ pages.php לדוגמא ע"י הקלדה בשורת הכתובותואיך אני עושה את זה?
לגבי אינקלוד- אם כך אין שום דרך לייבא קובץ מרחוק? |
תעשה איזה קובץ header.php שיבדוק אם יש הרשאה, ותעשה לו include לכל דפי המנהלים.
יש תוכנות שיכולות לרוץ על FTP ולראות את כל הקבצים והשמות שלהם שיש לך על השרת, אז שים על כולם בדיקת הרשאות. שים את הקוד PHP שלך בקובץ txt ותעשה לו include, נראה לי שאמור לעבוד. |
ציטוט:
זה במילים אחרות לבדוק בכל הדפים אם יש הרשאה..ואני מעדיף לא לעבור על כל קבצים האדמין ציטוט:
חשבתי לעשות משהו אחר - לשים את קובץ הPHP(בעיקרון זה כמה שורות.. רק לאמת משהו..)בתוך מסד ואז להוציא אותו ע"י הוצאה ממסד מרוחק. מה אומרים?יש סיכוי שזה יעבוד? |
בשביל לקבל קובץ PHP משרת רחוק אתה צריך להשתמש בFTP
|
אני לא יכול להשתמש בPHP..הקובץ אצל לקוח..
|
לגבי הרשאות הייתי ממליץ לך לקרוא על עבודה עם ביטים
זה אחד מהפעולות הבסיסיות ביותר ב PHP אבל הרבה לא מודעים ליכולות שלהם. קצת חשבון וקצת מחשבה ייתנו לך את התשובה.... |
אתה יכול לבנות api לתקשורת משרת מרחוק כך שתתקשר באמצעות פרוקטוקול שתבנה שישתמש בשיטת post או get.
ואם ברצונך פשוט לבנות קוד שמתעדכן אוטומטית ע"י השרת אבל אין לו גישה ממשית לשרת- צור קובץ(כמובן תגן עליו בעזרת כל מיני שיטות של IP, GET, POST וכו') שברגע שתפנה אליו נכון הוא ידפיס את קוד ה-PHP. ברגע שתפנה אל הקובץ מהשרת המרוחק עם ההרשאה המתאימה תקבל את קוד ה-php הרצוי. כל מה שנשאר כעת הוא להפעיל את הקוד בעזרת פונקציית eval פשוטה. **את הקובץ המרוחק יש לבנות בצורה כזו שיתאים ל eval. |
איך אני בונה אותו שיתאים לaval?
מה זה api? |
*eval
ופשוט אתה שובר אפה שצריך וכו'.. php.net/eval בנוגע ל api, אתה כותב קובץ שברגע שאתה פונה אליו בצורה מסויימת הוא מחזיר לך פלט מסויים. ואתה כותב כמובן בקרת הרשאה מוסיימת.. דוגמא: אם הIP של הלקוח(במקרה הזה השרת) מורשה המשך, אם לא הצג שגיאה: גישה לא מורשת. במידה והגישה מורשת בדוק סיסמאת POST.. וכו' במידה ועברת את כל בקרות הרשאה אתה למשל מבקש הצגת כל המשתמשים הרשומים לאתר שבשרת X אתה פונה אל השרת ככה למשל: api_server.php?code=a5d1qa65d1a&command=show_users והוא מדפיס את הבקשה שלך.. ובשרת השני אתה מעבד את הבקשה וכו'.. הכי חשוב בנושא הזה הוא בקרת הרשאות ואבטחה- IP מורשים, סיסמאות בGET סיסמאות ב POST, הגנה מפני רובוטי חיפוש, שינוי סיומת הקובץ ל xapi למשל(htaccess) וכו'. |
האמת, אני משתמש באינקלוד ע"מ לעשות שאילתת SQL..
אני לא יכול לתת ללקוח את השאילתה - כי אז יש סיכוי למסדים של אחרים. אך חשבתי על פיתרון יעיל במקום הנ"ל.. תודה בכ"מ. |
זה עדיין יעיל...
ככה אתה יכול לתת לו בקרת שאילתות מסויימות. בכל אופן אני לא מכיר את הבעיה לכן לא אוכל למצא פתרון. יש לך את הכלים - עכשיו כל מה שנותר הוא להשתמש בהם. |
אוקי...תודה רבה
שאלה אחרונה... ע"פ מה שרועי אמר - ציטוט:
|
השאלה היא מה?
מה אתה רוצה לחסום? לוח בקרה? api של שליטה מרחוק שיש גישה רק לשרת מסויים?? |
אני דיברתי על שני מקירם שונים..
עכשיו אני מצדבר על משהו אחר.. כיצד אני יחסום כניסה לדף מסויים ע"י הקלדתו בשורת הכתובות (הכווהנ שלי היא כזו כאשר אני יקליד - admin.php?act=pages הוא יכנס לי לדף sources/pages.php אבל, כאשר אני יקליד sources/pages.php בשורת הכתובות שלא יכנס... מדוע אני צריך את זה? ע"מ לחסוך לעצמי את בדיקת הרשאות המשתמש בכל דף ודף..) |
תעשה בקובץ admin.php איזשהו define והערך שלו יהיה true
ובכל דף ודף שאתה לא רוצה שיכנסו דרך הכתובת אלא דרך admin.php תעשה: PHP קוד:
|
אני לא מבין, כאילו אנחנו בונים לך את המערכת?
תחשוב קצת!- אם אתה עובד עם לקוחות זו לא צריכה להיות בעיה בשבילך!.. קודם תנסה לפתור בעצמך לפנה שאתה פונה לפה, אחרת לא יצא מזה כלום. |
אז לא יותר פשוט לעשות include לקובץ שבודק הרשאה?
עריכה Bakuאתם לא בונים לי את המערכת.. לא סתם אני שואל פה..הרי יכולתי למצוא הכל באתר php אני שואל כאן שאלות שיש מאחוריהם רעיון לשאר האנשים. כמו כן אני לא ביקשתי קודים אלא רעיונות כיצד לעשות את זה.. |
אני לא מתכוון לפגוע או משהוא, אבל הדברים האלו מאוד בסיסיים...
בכל אופן, בהצלחה. |
ציטוט:
אז למשל במקרה שלך אתה יכול לעשות אינקלוד לקובץ logincheck.php שככה אני קורא לו אצלי ^_^ וקודם כל אתה בודק אם המשתמש קיים ואז משווה את הסיסמה שלו בעוגייה לסיסמה שבמסד... ואז בקוד שהביא לך רועי נוי בעמוד הראשון אתה עושה באותו קובץ logincheck שימוש באותו תנאי רק שאתה לא מביא שגיאה בקובץ בדיקה אתה רק נותן ערך true/1 למשתנה $pages למשל ואז התנאי הראשי אחרי שאתה עושה אינקלוד לקובץ logincheck.php בקובץ page.php הוא if ($page=1) למשל... ואם לא אתה מביא לו שגיאה שאין לו הרשאה לעמוד המסוים... ככה אתה גם חוסך לעצמך בשלבים מאוחרים יותר אם אתה רוצה לשנות משהו בתנאי את הלעבור בכל הקבצים ולשנות את התנאי... ואתה פשוט משנה את הקובץ logincheck.php |
ככה פעלתי עד היום..
ניסתי לחסוך לעצמי את זה;) תודה בכל מקרה..עניתם על הכל.. |
|
ציטוט:
מה יש לך לחסוך ? כמה שורות קוד שמצורפות לכל דף שאתה רוצה שזה יופעל בו :) |
כל הזמנים הם GMT +2. הזמן כעת הוא 14:55. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ