אני
מאוד אוהב סרטים ויש לי לומר רבות בנושא. לכן
לצורך העניין אלמד אותך כיצד לכתוב סקריפט
לחיפוש ביקורות-סרטים. אך אל דאגה , אם סרטים
הם לא התחום שלך , נניח שאתה רוקיסט כבד ,
הסקריפט שלנו יעבוד טוב מאוד גם עם אוסף שירים
וכו'.
לפני
שנבנה את ה CGI
עלינו להגדיר את הקלט. אחד הדברים הראשונים
שתלמד בבניית סקריפטים בCGI
זה שככל שאתה עושה דבר מסובך יותר כך הסיכוי
גדול יותר שהמשתמש לא יבין כיצד להשתמש בו.
לכן נשתדל לשמור על עניינים פשוטים ונחמדים
ונתחיל עם טופס (form) שמקבל רק
סוג אחד של קלט: את כותרת הסרט (movie
title). הבה ניתן שם
לשדה זה בטופס ונקרא לו "title".(לא
מפתיע במיוחד). ולכן זה יופיע בעמוד ה Web שלנו:
Please input the title of the movie you want to hear me rant about. It can be all caps, lowercase, whatever, but leave those "The"s right where they are. So if you're looking for "The 5,000 Fingers of Dr. T," type in the The before 5,000 Fingers of Dr. T. Or if it's "They Live" you seek, you can type in THEY LIVE, they live, They Live, and so on. Got it?
את זה אתה עושה ב HTML כך:
|
|
כעת נחפש את כותרת
הסרט ב"מסד הנתונים" (“database”) שלי. אבל על מנת לא לסבך את הדוגמא
ולעשות את הדברים בצורה ברורה ופשוטה לא
נשתמש במסד נתונים אמיתי של Oracle
או SQL אלא נעשה זאת באמצעות קובץ
המייצג את מסד הנתונים (“flat-file”).
הקובץ יהווה אוסף של
טקסט מאורגן היטב כך שיהיה קל לסקריפט לבצע
עליו parsing (חלוקה לתתי קלטים, אצלנו
למילים). קובץ כזה (“flat-file”) איננו
טוב לחיפושים מפורטים על כמויות מידע גדולות
אך מצד שני גם לא יעלה לך אלפי דולרים עבור
חומרה ותוכנה נדרשת למסד נתונים.
על מנת ל"שאוב"
מידע מקובץ-"מסד הנתונים" שלנו עלינו
לדעת כיצד יראה הקלט ממסד הנתונים של מנת שנדע
כיצד לבנות את ה CGI מסביבו. התצורה (format)
עבור כל ערך שנשתמש תראה בדיוק כך:
|
---- movie title ---- [lowercase] |
ובכן ,
הצהרתי על חוקי התצורה של מסד הנתונים שלי –
ולכן גם הנתונים וגם הסקריפט חייבים לפעול על
פי החוקים הללו. הם אולי נראים לך מגבילים אך
האמן לי , ככל שתגדיר יותר חוקים לפני קליטת
המידע כך הדברים יהיו פשוטים יותר בהמשך.
כתיבת סקריפטים היא פעילות מובנית, וחוקים
עוזרים להגדיר את המבנה.
כעת לאחר שיש לי את
"מסד-הנתונים" מוכן אני יכול לגרום
לדברים לקרות בהתאם לקלט אשר יתקבל מן המשתמש
המועבר דרך טופס ה HTML.