פרק 2: קישור Perl לעמודי הרשתמבט על המשתנים הסביבתיים (Environment Variables)המושג "משתנים סביבתיים" (Environment Variables) מעורר בנו הרגשה יוניקסית - דרך אחרת לומר שמשמעותו לוטה בערפל. לכן באו נדבר על מזג האוויר. בכל רגע, מזג האוויר בחוץ מכיל מספר משתנים סביבתיים, וכאן אפשר לדבר על סביבה במובנה המקורי. לדוגמא, אם נרצה לתעד את מזג האוויר ברגע זה נצטרך לתעד את מספר משתנים: הטמפרטורה, הלחות היחסית, הלחץ הברומטרי, מהירות הרוח, כיוון הרוח, ועוד. בדומה, במהלך תהליך CGI, -- הרגע בו המידע נשלח מהדפדפן אל שרת הרשת - ישנם מספר משתנים מוגדרים מראש אשר מכילים מידע על הסביבה באותו הרגע. המשתנים הללו, הנוצרים על ידי שרת הרשת, מעוברים אל תוכנית הPerl שלנו, כאשר היא מתפקדת כתוכנית CGI (משמע, רצה דרך הרשת). קחו לדוגמא את משתנה הסביבה הנקרא HTTP_USER_AGENT. משתנה זה מחזיר את סוג הדפדפן ואת מערכת ההפעלה ממנה המשתמש ניגש לאתר. לפיכך הערך "Mozilla/4.51 [en] (Win98; I)" משמעותו היא שהמבקר השתמש בקומיוניקיטור של נטסקייפ גרסה 4.51 (המזדהה בתור Mozilla), בגרסה האנגלית, המותקנת על חלונות 98. דפדפנים שונים מזהים עצמם באופן שונה כך שאין אף תבנית שבעזרתה ניתן לזהות את כל סוגי הדפדפנים. בדרך כלל קוראים את ה AGENT של המשתמש על מנת לזהות או לתעד את סוג הדפדפן או מערכת ההפעלה שלו...לעיתים בכדי להפנות את המשתמש לעמוד מסוים (דוגמא לכך נראה בקרוב) או לשגר אליו הודעה מסוימת.
בדוגמא שלנו, אנו יכלים לרצות להוסיף את המידע השמור בתוך ה AGENT ליומן רישום של המשתמשים שביצעו רישום, דבר זה יאפשר לנו לזהות את הדפדפן ומערכת ההפעלה בה משתמשים הנרשמים שלנו, בלא לדרוש הקלדת מידע זה. ישנן שתי דרכים לגשת למשתנה ה CGI הסביבתי מתוכנית Perl, כאשר אף אחת מדרכים אלו אינה עולה על השניה: טבלת ההאש ENV% מכילה את המפתחות עבור כל משתנה CGI סביבתי. אנו לא זקוקים לאובייקט או מודול ה CGI על מנת לגשת להאש ה ENV%, ולכן אם אין אנו זקוקים למודול ה CGI, אנו יכולים לחסוך זמן וזיכרון ולגשת להאש ישירות. בדרך השניה, אובייקט ה CGI מכיל מספר מתודות אשר ניגשות לאותו המידע במשתנה הסביבתי. שמות המתודות מזכירות את שמות המשתנים הסביבתיים אולם שונות במקצת, דהינו, מתודת ה ()user_agent באובייקט ה CGI משמשת לגישה למשתנה הסביבתי HTTP_USER_AGENT. אנו יכולים לשנות בקלות את קוד תוכנית יומן הרישום שלנו על מנת להכניס את נתוני ה agent לתוך בסיס הנתונים שאנו יוצרים: $useragent=$cgiobject->user_agent(); print LOGFILE "$username\t$userphone\t$usermail\t$userZIP\t$useragent\n"; תהליך ה CGI מציע מספר משתנים סביבתיים, אולם רק אלו אשר נתוניהם ידועים יכילו ערכים. ישנם משתנים סביבתיים "אמינים" יותר, משמע מכילים מידע שימושי יותר. בשורות הבאות ישנה טבלה המסכמת את המשתנים הסביבתיים הנפוצים ב CGI, את המתודות ב CGI המשמשות לגשת לנתונים אלו, ואת אמינותם. מבט חודר לתחום ניתן לקבל באתר על משתנים סביבתיים ב CGI , ובמתודות הקשורות אליהם משתני CGI סביבתיים נפוצים
יומן רישום
|