logo


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

שמירת מצב חד פעמית או תסריט "בניית הפיצריה"

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

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

פעולת המסעדה שלנו ישירה: הלקוח ממלא את שדות הטקסט, בוחר במשלוח או באכילה במקום, בוחר את התוספות ואת הגודל הפיצה. לאחר שהוא לוחץ על "Calculate" הוא מקבל את האופציה הנבחרת, ואת המחיר. ניתן לשנות כל אופציה ולאחר מכן להקיש שוב על "Calculate" ולקבל את התוצאה המעודכנת. תסריט יכול להמשך לנצח עד אשר המשתמש יקיש על "Finish Order", שלאחריו ייאסף המידע הסופי, וההזמנה תצא למטבח.

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

#build-a-pizza order form
#!/usr/local/bin/perl
use CGI;
$cgiobject=new CGI;
$cgiobject->use_named_parameters;

ההתחלה נראית מוכרת – סביבת ה CGI מופעלת עבור כל מהלך תוכנית ה Perl שלנו.

@allparams=$cgiobject->param();
if ($#allparams>-1)
 {&get_state_variables} 
else 
 {&init}

הסקריפט צריך לזהות האם מדובר בהזמנה חדשה (לא נשלחו שדות) או בשינוי הזמנה קיימת. בקטע הנ"ל אנו מושכים את כל הנתונים שנשלחו לתוך מערך, ובודקים האם בכלל נשלחו כאלו (רשימה באורך 1 אומרת שאין פרמטרים). אם נשלחו פרמטרים מסוימים, אנו עוברים לשגרה get_states_variables אשר תקרא את הערכים שנשלחו, ותשים אותם לתוך השדות המתאימים. עבור הזמנה חדשה, אנו עוברים ל init אשר מגדירה את הערכים התחילתיים למשתני "בניית הפיצה".

if ($orderComplete)
 { &complete_order }
else 
 { &build_order }

מאוחר יותר נראה שהמשתנה orderComplete$ אומר האם כפתור ה "Finish Order" נלחץ. אם כן, נרצה לגשת לשגרת ה complete_order, אחרת הכפתור שנלחץ היה "Calculate" ונרצה לעדכן את העמוד דרך build_order.

מחשבה אחרונה על עוגיות
תוכן עניינים
בניית פיצריה: לקיחת ההזמנה

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