coldfusion / קוקיס ו-coldfusion / שבילי פירורי עוגיות (cookies) שמחים
שבילי פירורי עוגיות (cookies) שמחים
מרגע זה והלאה נשתמש בסדרת דוגמאות, וכדי לעקוב אחריהן תצטרכו להוריד את הקבצים הללו ולפתוח אותם (unzip) לתוך ספרייה אחת. הדבר הראשון שאנחנו הולכים לעשות כאן הוא ליצור שביל פירורי קוקיס שיאפשר למשתמשים שלכם לראות שביל ויזואלי של המקומות בהם בקרו באתר, כך:
Home / Product Search / Chicken Feed Products
נעשה זאת ע"י הוספת קישור לסופו של הקוקי שמייצג את העמוד בו צופה המשתמש ברגע זה. בואו נתחיל בפתיחת העמוד הנקרא example1.cfm. זכרו שנרצה למחזר את הקוד שלנו עד כמה שניתן כדי להקל על עצמנו, אז ככל שככל שתתקדמו בדוגמא הזאת, שימוש לב שאנחנו עושים שימוש בתחום המשתנים של
"Attributes" כי אנחנו הולכים לדחוס אותו בתווית מותאמת אישית מאוחר יותר.
עכשיו, שימו לב שאנחנו משתמשים בתווית <cfparam> בקצה העליון כדי להתחיל קוקי. זאת השיטה האלטרנטיבית לשיטת ה-()IsDefined. מדובר רק בהעדפה אישית, אבל אני מעדיף לעשות שימוש בתווית <cfparam> משתי סיבות: ראשית, היא משאירה את הקוד שלכם נקי. אם כל הפרמטרים שבברירות המחדל שלכם מוצבים בקצה העליון בביטויי שורה-אחת, קל יותר חזותית להבין מה הקוד עושה. שנית, היא הופכת את התחזוקה לפשוטה הרבה יותר. אם אתם צריכים לשנות ערך ברירת מחדל של שדה עמוד מ"index.htm" ל-"chicken.cfm", אתם יכולים לעשות זאת על ידי שינוי ברירת המחדל לפרמטר הזה בלבד, להבדיל מביצוע חיפוש מפרך בשלוש רמות של פונקציות "()IsDefined" וביטויי "if".
העיפו מבט בכיצד משתמשים במשתנים הזמניים כדי לשמור את ערכי הקוקי הנוכחי שלנו כמו גם את ערכי העמוד והכותרת, כולם דברים שיישמרו בקוקיס. הסיבה העיקרית לכך שאנחנו עושים זאת היא שאי אפשר לקבוע ערך של משתנה קוקי ישירות תוך שימוש בתחביר קוקי. משתנה = ערך. מאחר וקוקי הוא סוג מיוחד של משתנה, הוא מכיל הרבה יותר מידע מאשר משתנה רגיל (פרמטרים, דומיינים, תוקף וכו'), ועלינו להגדיר את כל המידע הזה כאשר אנחנו שומרים את הקוקי. כמו כן, במקרה שהקוקי לא הוגדר בעבר, משתנה התחביר שלו מחזיר הודעת שגיאה שתזכיר לכם את זה. כדי להגדיר את המשתנים האלה על מכשיר הלקוח על קוד ה-<cfcookie> להכיל משתנה ברמה מקומית ולעבד את העמוד כאילו הקוקי כבר מוגדר, למרות שהוא לא יכול להכיל את המשתנה עד שיעלו כותרות ה-HTTP. כתוצאה מזה, קל יותר לתפעל את מחרוזות המשתנים שלנו ישירות ואז לשמור אותם לתוך קוקי בסוף.
בסופו של דבר, אנחנו שומרים את הקוקי שלנו במחשב המשתמש בעזרת תווית <cfcookie>. אנחנו שומרים אותו עם expiration של NEVER כדי שמתי שמשתמשים יחזרו לאתר שלנו, הם יכולים לקפוץ ישר חזרה למקום ממנו עזבו בביקור הקודם שלהם (הקטגוריה page, query page או כל מקום אחר).
אם נוסיף קישור בכל פעם שמשתמש יכנס לעמוד, אז קוקי ימשיך לעד ויתכן שיעבור את מגבלות הגודל הטבועות בו. מכאן שנוסיף קוקי רק אם הוא לא נוסף בעבר. אם הוא כן נוסף, יתוסף אליו הפרמטר (DeletePostDuplicate) שמצביע על כך שיש OK למחוק את כל העמודים שבאו אחריו. ערך משתנה ה-attribute הזה יכול להיות YES או NO. עד כמה שהקוד שלנו מגיע, אם הערך הוא משהו אחר מ-YES, נתייחס אליו כ-NO ונמשיך לעבד. ע"י מתן הערך NO לתווית DeletePostDuplicate, כל ערך שניתן לה יועברו לסוף שביל הקוקיס. אבל אם ניתן לה YES, או אז היא תחפש במחרוזת כדי לראות אם כבר הוספנו את העמוד הנוכחי. אם כן, היא פשוט תמחק כל התייחסות אליו בעמודים שאחריו, ולא תוסיף את אותו עמוד פעמיים.
ליישום יכולות הניתוח הללו, אתם מוזמנים להעיף מבט ב-example2.cfm.
עמוד הבא: קריאת הקוקי >>
|
|
|
|