logo


פרק 3: שמירת מצב

שמירת מצבים

לפני שנצלול מחדש לביצה של Perl הבא נתייחס לרגע לתכלית של "מצב", ולסיבה שאנו רוצים לשמר אותו? הדוגמה של הסימנייה (bookmark) מדגימה את הצורה הפשוטה ביותר של שמירת מצב – שהיא לעקוב אחרי, או "לזכור", משתנה יחיד. במקרה זה, המשתנה הזה הוא מספר העמוד. שימו לב, בכל זאת, שתוך כדי קריאה אין צורך לזכור את מספר העמוד, שהרי אנו קוראים את הספר ברציפות. מספר העמוד האחרון שנקרא חשוב רק כאשר אתה רוצה להתחיל לקרוא מחדש. הסימנייה, לכן, מדגימה שמירת מצב בין זמני קריאה שונים אבל לא בתוך אותה קריאה. בקרוב נוכל לראות מדוע "עוגיות" (”cookies”) הם טכניקת רשת נפוצה למטרה זו.

תוך כדי גלישה ברשת, המשתמש עשוי לבקר בתוך זמן קצר במספר דפים בתוך אותו אתר. לחילופין, משתמש עשוי לבקר במספר דפים הנמצאים באתרים שונים שאינם קשורים זה לזה, או לבקר בשני דפים הנמצאים באתר אחד, דף שלישי באתר אחר, ודף רביעי שוב באתר הראשון. כתוצאה מכך, קשה מאוד להבין את התנהגות הגלישה במהלך גלישה בודדת (session) ברשת. בדרך-כלל, כאשר אנו מתייחסים למהלך של גלישה ברשת, הכוונה היא שהמשתמש נכנס לכמה דפים בתוך האתר שלכם תוך זמן מוגדר, ושהמשתמש עשה זאת מתוך כוונה מסוימת – לדוגמא, קניה או מילוי טפסים.

לעומת זאת, נוכל להגיד שביקור באחד או יותר דפים באתר שלך, ולאחר מכן ביקור חוזר זמן מה לאחר מכן – כאשר זמן מה יכול לנוע בין חצי שעה לבין 6 חודשים או יותר – יצור מבנה אחר לגלישה. אבל כפי שאתם יכולים להבחין, הקו המפריד בין גלישה בודדת לבין מספר גלישות דק ביותר, לעיתים ישנה אפשרות להגדיר פרק זמן של גלישה בודדת בשרתים מיוחדים, או בתוך סקריפטי CGI. אולם אנו מתרכזים במושג הגלישה במישור הרעיוני בלבד.

לצערנו, הרשת היא מפלצת עם זיכרון קצר. לכן, העובדה שאולי בחרת מספר אפשרויות בעמוד אחד באתר ברשת לא אומרת שום דבר כאשר אתה עובר לעמוד השני. לכן, כיוון שכל עמוד ברשת הוא עולם בפני עצמו, האפשרויות העומדות בפני המפתחים ברשת מצומצמות למדי. איך נוכל לתת למשתמש לבחור סוודר בעמוד הראשון, שעון- יד בעמוד השני, ולשלוח את ההזמנה בעמוד השלישי? על מנת להתמודד עם הקושי הזה, מפתחי הטכנולוגיה המציאו טכניקות מסוימות המסייעות לנו, ביעילות ראויה לציון, לשמור פרטים בין גלישה לגלישה. לרשת עדיין אין זיכרון, אולם הטכניקות הללו נותנות לנו את האשליה שיש לה.

במאמר הזה נלמד שלוש שיטות לשמירת מצבים ברשת. נתחיל מה"עוגיות", אשר משמשות לזכירת הגדרות המשתמש בין גלישה לגלישה. נעבור למודול ה CGI ותכונת שמירת המצבים הטמונה בתוכו, בשיתוף עם שדה הטופס החבוי (Venerable (hidden form field. מובן שנעשה הכל בעזרת Perl, ומודול ה CGI.

שמירת מצב
תוכן עניינים
עוגיות: חברותינו המושמצות

אודות
תוכן עניינים
פרק 1: ה Perl שאתם צריכים לדעת
פרק 2: קישור Perl לעמודי הרשת
פרק 3: שמירת מצב
שמירת מצבים  
עוגיות; חברותנו המושמצות  
דוגמאות לעוגיות חלק ראשון: אחזור עוגיה  
דוגמאות לעוגיות חלק שני: יצירת העוגיה  
מחשבה אחרונה על עוגיות  
שמירת מצב חד פעמית או תסריט "בניית הפיצריה"  
בניית פיצריה: לקיחת ההזמנה  
בניית פיצריה: חישוב המחיר  
בניית פיצריה: השלמת ההזמנה  
בניית פיצריה: עדכון הזמנה  
הרהור אחרון  
פרק 4: HTML בחטף ותבניות (Templates) רשת
פרק 5: עיבוד וניתוח של עמודי רשת
פרק 6: להשתעשע עם בסיסי נתונים מקוונים:אקסס
פרק 7: המודל MySQL
פרק 8: להשתעשע בבסיסי נתונים - GUFE - החזית הכללית והשימושית
פרק 9: המילניום - ניהול זמן ותאריך
פרק 10: ניהול רשימות והאשים (Hashs)
פרק 11: הפניה להפניה
פרק 12: הכרות עם mod_perl