13-03-2005, 11:14
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,776
|
|
תתחיל SESSION בדף התוצאה...
תבדוק אם במשתנה מסויים ב SESSION קיים ערך מסויים. אם הוא לא קיים, תציב אותו, אם הוא קיים, פלוט שגיאה בהתאם ("זה שתרענן לא ישנה את התוצאה שלך").
כך, כשהוא ייכנס פעם ראשונה, המשתנה יוגדר עבור ה SESSION שלו, ובפעם החוזרת שהוא ינסה, המערכת כבר תראה שהמשנה מוגדר, ולא תוסיף לו נקודות שוב.
חסרונות: לא יפעל אם אין לבחור עוגיות בדפדפן (או שהוא חוסם אותן, more likely).
אלטרנטיבות:
1. להכין מאגר של כתובות IP יחד עם זמנים, ולא לתת לאותה כתובת "לנצח" באותו משחק במשך X זמן (הכי טוב לעשות את זה עם DB ו unixtime, ומדי פעם לנקות כל ערך שקטן מ unixtime נוכחי פחות X שניות בהתאם להחלטתך). חסרון: שני אנשים שמגיעים מאותו IP (מוסד לימודים מאחורי NAT למשל), לא יוכלו לנצח במשחק בהפרש שקבעת.
2. להכין one-time-key שיעבור עם הגולש מתחילת המשחק (שאני לא יודע איך עשית אותו, פלאש?), ויישמר בשרת לאחר ההקצאה, ויימחק או אחרי timeout מסויים (נניח יום), או כשמישהו זכה. ברגע שהוא בא לזכות שוב, המערכת לא מזהה את ה one-time-key, ולא מאפשרת את הוספת הניקוד.
אלטרנטיבה מספר 2 היא כנראה המסובכת ביותר למימוש, אבל לדעתי היא בלתי פריצה :-)
|