בסיס הנתונים
בבסיס הנתונים של התוכנית שלנו אנו רוצים לשמור את שמות המשתמשים והססמאות המתאימים להם, לכן ניצור בטבלה שדה משתמש ושדה ססמא. בנוסף אנו רוצים לאפשר ססמאות שונות לדפים שונים, לכן נוסיף לטבלה גם שדה שיכיל מספר זיהוי של קבוצת משתמשים, כך שכל המשתמשים עם אותו מספר זיהוי נמצאים באותה קבוצת משתמשים. לפי טבלה זו, ניתן ליצור מספר קבוצות משתמשים (עם מספרי זיהוי שונים), ואף ליצור מספר ססמאות לאותו משתמש.
קובץ ה-SQL שבונה את הטבלה נראה כך:
CREATE TABLE user_pass/* | יוצר טבלה בשם user_pass. | */ |
(
user varchar(50) NOT NULL/* | יוצר שדה בשם user. שדה זה הוא מסוג מערך של 50 תווים. שדה זה לא יכול להיות ריק.
| */ |
,
pass varchar(32) NOT NULL/* | יוצר שדה בשם pass. שדה זה הוא מסוג מערך של 32 תווים. שדה זה לא יכול להיות ריק. | */ |
,
user_group int(10) unsigned DEFAULT '0' NOT NULL/* | יוצר את השדה user_group. שדה זה הוא מסוג מספר שלם חיובי של עד 10 ספרות. שדה זה לא יכול להיות ריק. ערך ברירת המחדל של השדה הוא 0. | */ |
,
);
ל-MySQL יש פונקציה מיוחדת שנקראית PASSWORD()
, שמשתמשת באלגוריתם חד-כיווני ומצפינה מחרוזת כלשהי כמספר הקסאדיצמלי בן 32 ספרות. בסקריפט זה לא השתמשנו בפונקציה של MySQL לצורך הצפנת הססמא אלא בנינו פונקציה מיוחדת שתפקידה להצפין מחרוזת כלשהי כמספר הקסאדיצמלי בן 32 ספרות תוך שימוש באלגוריתם חד-כיווני דומה (ואולי אף זהה לזה של MySQL) - הפונקציה md5() ב-PHP.
כדי להכניס נתונים עלינו למלא את שדות הטבלה:
בשדה ה-user נכניס את שם המשתמש.
בשדה ה-pass נכניס את הקוד המוצפן של הססמא. היות ואנו לא משתמשים בפונקציה PASSWORD()
של MySQL, אנו צריכים לכתוב את הקוד המוצפן של הססמא באופן ידני. כדי לדעת מה הצופן של הססמא, בניתי קובץ עזר שיחזיר את הקוד המוצפן של הססמא, וכל שעליכם לעשות זה להעתיק את הפלט לטבלה. קובץ העזר הזה נמצא ב-admin_protect/admin_protect.php.
בשדה ה-user_group נכתוב את מספר הזיהוי של קבוצת המשתמשים.
הסקריפט שמריצים בחלק זה משתמש בטבלה הבאה (user_pass):
user |
pass |
user_group |
user1 |
b76078ac1326dd9c34be6a7be0077a8e |
1 |
user2 |
82ad9485d4c41007d1eb299a84833027 |
1 |
user3 |
b722b2efa26a4a016a4815398730a6f1 |
2 |
user3 |
a2dd027ad8e84d508865d1b64c88e749 |
2 |
כדי ליצור את הטבלה לעיל, פשוט הריצו את קובץ ה-SQL הבא על בסיס הנתונים שלכם: example_user_pass_db.sql.
מעולה | 07-12-05 23:01 שאול חסוי | #2606 |
| מדריך מעולה, תודה.
אני לא חושב שיש כאן צורך לפרט יותר. |
|
הגהנה הכנסת נתונים | 08-12-10 01:00 אולג קגן | #2886 |
| לא לשכוח לסנן כל מידע ש בא מבחוץ ב פונקציה
;()mysql_real_escape_string |
|