01-10-06, 17:50
|
# 14
|
הוסטסניון
|
ציטוט:
נכתב במקור על ידי RS324
אממ, תחשוב על מה שמייחד כל משתמש שנכנס לדף....
אין הרבה אבל מה שיש זה מספיק :
עקרונית זה ככה :
כל דפדפן מזוהה ב PHP , כמו כן מערכת הפעלה
IP
וזהו לא עולה לי לראש עכשיו
עכשיו מה אתה בעצם צריך בטבלה של סשיינים עבור התחברות
וזה הולך ככה :
sessionid,useragent,userip,lastvisit,userid
וזהו בעיקרון
עכשיו לפירוט
sessionid = md5(random string);
זה עבור ייצור של HASH זה שווה ערך ל PHPSESSIONID או בקיצור SID
עכשיו useragent זה מערכת הפעלה ודפדפן וזה נמצא באחד המשתנים הגלובילים נדמה לי $_SERVER
אותו דבר לגבי IP
עכשיו למה אתה צריך את LASTVISIT ? לדוגמא אני רוצה לקבוע ש SESSION תפוג לאחר שעה
אז מכניסים ל LASTVISIT את time() שזה זמן בשניות ואז בשביל לבדוק אם ה SESISON תקף
אתה עושה משהו בסגנון
if (time() > $db_session['lastvisit']+3600)
כלומר במילים אחרות אם הזמן הנוכחי גדול מהזמן שמצויין ב DB + שעה (3600 שניות = שעה)
אז הוא לא תקף ואז אתה מוחק אותה או משהו
אחרת הסשיין תקף ואתה יכול להשתמש בו
עכשיו האחרון זה USERID בבררית המחדל שלו תהיה 0 וכשמשתמש מתחבר למערכת
בעזרת סקריפט חיצוני אחר לודגמא login.php אז אתה מעדכן את ה ID שלו מתוך מערכת משתמשים שקיימת אצלך
וזהו בעיקרון
זה הבסיס
אתה צריך רק לפתח את זה לפי הצרכים שלך
לדוגמא : אתה יכול להוסיף location שזה בעצם המיקום של המשתמש במערכת
לדוגמא מערכת VB משתמשים ב LOCATION ואז אם יכולים להגיד לך מי צופה בפורום כעת
או מי צופה בטרייד שאתה נמצא בו
זה מאד חמוד...
עכשיו תוסיף לזה את האפשרות של הקוקיז
אתה צריך לכתוב קצת הרבה שורות קוד אבל זה משתלם
אני בניתי מערכת כזאת
שנותנת לך את כל הפרטים על המשתמש כולל הרשאות של מה הוא יכול לעשות ומה לא
בעזרת 2-3 שאילתות שזה ד"א הרבה יותר מהיר מעבודה מול קבצים עם משתנים גלובלים
אני אתן לך דוגמא קטנה למה זה יותר מהיר :
תחשוב שיש 10 אתרים שיש להם 5000 מבקרים ביום לכל אתר וכולם משתמשים ב SESSION שמובנה ב PHP
עכשיו PHP שומר את כל הנתונים שלו - בתיקייה אחת ששייכת ל SESSIONS בקבצים
ועכשיו תחשוב שהוא צריך לחפש את הסשיין של יוזר אחד ולהתאים אותו אליו מבין כל הקבצים שנמצאים....
נכון זה מהיר וככה PHP עובדת, אבל עם DB זה יהיה הרבה יותר מהיר כי זה ייחודי רק לך.
מה גם שמסד נתונים הרבה יותר מהיר בעבודה שלו מאשר עבודה במערכת קבצים.
וזה בדוק.
גם יש לך הרבה מאד אפשרויות לעשות.
אחד החסרונות היותר בולטים הם שאתה לא יכול פתאום להוסיף סתם משתנים לסשיין
לדוגמא sesion[timeilookedonindexpage] לא תוכל להוסיף בקלות
אבל כשמתכננים מראש מערכת , לא יהיה לך גם צורך
ובמקרה הכי גרוע אפשר להוסיף עוד שדה לטבלה שיכיל מה שאתה רוצה
בקיצור האפשריות הם בלתי מוגבלות
אבל כמו שאמרתי קל זה לא כלכך
אז אני ממליץ לך לעשות רק אם אתה ברמה בינונית+ ב
PHP
ולא רק מתחיל.
בהצלחה
|
וואלה אחלה של שיטה...עשיתי פעם משהו דומה...אבל לא שיכללתי מספיק כמו שזה פה...תודה רבה לך 
|
|
|