פרק 2: קישור Perl לעמודי הרשתCGI ותכנות מונחה עצמים ב Perl :קלטבתור התחלה, בואו נבחן דוגמת CGI פשוטה. בקשות CGI requests) CGI) הן בדרך כלל תוצאה של שליחת טופס (form submission) על ידי המשתמש מתוך עמוד רשת. דמיינו לעצמכם טופס HTML פשוט ביותר המבקש את שם המשתמש וגילו. ונניח שקוד הHTML למטה הוא חלק מדףHTML גדול יותר:
<form method=get action="/cgi-bin/process.cgi"> <input type=text name="username" width=15> Your name? <br> <input type=text name="userage" width=3> Your age? <Br> <input type=submit> </form> הקוד הנ"ל יצור עמוד שנראה בערך כך: כאשר המשתמש שולח את הטופס הזה, הערכים המוקלדים באזורי הקלט מועברים לתוכנית אשר מצוינת בשדה ה ACTION של תג (tag) ה <FORM>; במקרה זה, זוהי הכתובת "/cgi-bin/process.cgi". תוכנית זו - "process.cgi" - תהיה שם הקובץ של תוכנית הPerl שלנו. בואו נחזור ל Perl. אנו כבר יודעים איך לפנות למודול ה CGI, ולכן הבא נתחיל להשתמש באובייקט ה CGI על מנת לקרוא את המידע שנשלח על ידי הגולש. נתחיל בדוגמא, ואחר כך נסביר: process.cgi #!/usr/bin/perl use CGI; #create an instance of the CGI object $cgiobject = new CGI; #grab the values submitted by the user $name=$cgiobject->param("username"); $age=$cgiobject->param("age"); שוב, אנו מתחילים את התוכנית בבקשת מודול ה CGI. לאחר מכן, אנו צריכים ליצור מופע (instance) של אובייקט ה CGI. להמחשת הדבר, חשבו על המודול כמכיל תבנית (Template) לאובייקט ה CGI - אנו לא יכולים להשתמש בתבנית ישירות, אבל אנו יכולים ליצור עותק משלנו על ידי "הטבעתו" בתבנית. זה נעשה בעזרת שימוש בבנאי (constractor) . כמו שאתם יכולים לראות, אנו משתמשים במשתנה הסקלרי, cgiobject$, ומשימים לתוכו את המופע של אובייקט ה CGI שיצרנו. מכאן ואילך אנו ניגש לאובייקט ה CGI בעזרת המופע שלו, cgiobject$. בשתי השורות הבאות אנו "מושכים" את הנתונים מתוך הטופס הנשלח. כיוון שתוכנית ה Perl נכתבה במיוחד ל HTML הספציפי, היא יודעת ששני הערכים המשמעותיים הם שם המשתמש וגילו. על מנת לאחזר את שם המשתמש, אנו מגדירים משתנה סקלרי בשם name$, ומשימים לתוכו את תוצאת פעולת ה param של אובייקט ה CGI. פעולה הנמצאת בתוך אובייקט מסויים, המהווה בעצם פונקציה הפועלת בתוך האובייקט נקראת בשפה מקצועית מתודה (method). שימו לב לתחביר (syntex) הבא: $Perl_Variable=$CGI_Object->methodName(parameters); אם נתרגם לעברית פשוטה, הפעולה היא השמת הערך של הפרמטר "username" מתוך אובייקט ה CGI לתוך name$. ומהו בעצם ה "username"? בכדי להבין זאת הבא נתבונן חזרה בטופס ה HTML בתחילת העמוד - ונראה שכך קראנו לתיבת הקלט של שם המשתמש. וזהו שם תיבת הקלט, במעבר באמצעות CGI. לאחר ששם המשתמש הוכנס לתוך name$, אנו מאחזרים ערך נוסף, ערכו של שדה ה"userage" בשדה ה HTML, ומשימים ערך זה לתוך המשתנה age$. CGI הערות בקשר להרצת
|