|
صفحة: 132
בעת הדפסת ערכו של Session מודפסת למעשה המחרוזת המתארת את ערכו . אם ערכו היה מהטיפוס מחרוזת או מספר , כפי שראינו עד כה , אין צורך לציין במפורש את ההמרה כיוון שבשפת C + ישנה המרה אוטומטית של הערכים השמורים בעצם מטיפוס Session למחרוזת . שאלה 3 . 13 שמרו את שם המשתמש בSession- והציגו אותו בדף הבונוס . ( Bonus . aspx ) שימו לב , יש לבדוק אם המשתמש כבר מזוהה ; אם לא , יש לבדוק אם הזדהה בסבב זה . עד כה ראינו כיצד ניתן לשמור את שם המשתמש ואת הניקוד שלו . אולם כפי שניתן לראות הדף שמוצג למשתמש כולל תיבת טקסט בה ניתן להקליד את שם המשתמש גם לאחר שהמשתמש הקליד ושלח את שמו לשרת ושם זה נשמר בעצם מטיפוס . Session לפיכך , שיפור נוסף שנרצה לבצע הוא לשנות את הדף כך שבמידה ומשתמש הקליד את שמו , ושמו נשמר , בדף שהוא יקבל לא תוצג שוב תיבת טקסט לקליטת שם . כדי לפתור בעיה זו , מספיק להתייחס ל- Session ] "userName" [ במקום למשתנה – name הן כאשר נותנים שתי נקודות על ההזדהות והן כאשר מדפיסים את ההודעה ללקוח . עם זאת , הדף אשר יוצג למשתמש יציג גם את תיבת הטקסט לקליטת שמו , אף-על-פי ששמו כבר נשמר . נעדכן אפוא את הדף כך שמשתמש שהזדהה לא יתבקש עוד להזדהות , והמשתמש יזכה בנקודות על הזדהותו , בכל סבב של המשחק . לשם כך , נשמור את שם המשתמש ב . Session- בקוד הפעולה IsValidName נבדוק אם קיים ; Session ] "userName" [ אם הוא אינו קיים והמשתמש הקליד את שמו , נשמור את שם המשתמש ב . Session- משתמש מזוהה יקבל שתי נקודות נוספות לסבב . אם שם המשתמש לא נשמר עדיין { if ( Session ] "userName" [ == null ) // נשמור את הערך מתיבת השדה name = Request . Form ] "userName" [; // אם הוקלד שם if ( name ! = "") // נשמור את שם המשתמש בעבור הסבבים הבאים Session ] "userName "[ = name ; // { אם קיים ערך לשם המשתמש if ( Session ]" userName" [ ! = null ) //
|
|