logo


פרק 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>

הקוד הנ"ל יצור עמוד שנראה בערך כך:

Your name?
Your age?

כאשר המשתמש שולח את הטופס הזה, הערכים המוקלדים באזורי הקלט מועברים לתוכנית אשר מצוינת בשדה ה 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 הערות בקשר להרצת
תוכן עניינים
פלט :Perl ותכנות מונחה עצמיםב CGI

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