סקריפט CGI יכול להיות פשוט או מורכב כמו שאתה זקוק לו. זה יכול להיות בפרל, ג'אווה, פייתון או כל שפת תכנות. בבסיסה יישום CGI פשוט לוקח בקשה באמצעות HTTP (בדרך כלל דפדפן אינטרנט) ומחזיר HTML. בואו נסתכל על פרל פשוט שלום עולם תסריט CGI וחלק אותו לצורות הפשוטות ביותר.
CGI פרל סקריפט 'שלום עולם'
#! / usr / bin / perl
הדפס "סוג תוכן: text / html \ n \ n";
הדפס <פרל CGI פשוט פרל CGI פשוט
שלום עולם
HTML
יציאה;
אם אתה מפעיל את התוכנית בשורת הפקודה, תראה שהיא עושה בדיוק את מה שהיית מצפה. ראשית, הוא מדפיס את סוג תוכן קו, ואז הוא מדפיס את ה- HTML הגולמי. כדי לראות את זה בפעולה בדפדפן אינטרנט, יהיה עליכם להעתיק או להעלות את הסקריפט לשרת האינטרנט שלכם ולוודא שההרשאות מוגדרות כראוי (chmod 755 במערכות * nix). לאחר שתגדיר אותה נכון, אתה אמור להיות מסוגל לגלוש אליו ולראות את הדף המוצג בשידור חי בשרת שלך.
שורת המפתח היא הצהרת ההדפס הראשונה:
הדפס "סוג תוכן: text / html \ n \ n";
זה אומר לדפדפן שהמסמך מגיע אחרי השניים שורות חדשות הולך להיות HTML. אתה צריך שלח כותרת בכדי שהדפדפן יידע איזה סוג מסמך מגיע הבא, ועליך לכלול שורה ריקה בין הכותרת למסמך בפועל.
ברגע שנשלח הכותרת, זה רק עניין של שליחת מסמך ה- HTML עצמו. בדוגמה שלמעלה אנו משתמשים במסמך כאן כדי לפשט את הדפסת נתח גדול של טקסט רגיל. כמובן, זה ממש לא שונה מאשר שיש מסמך HTML רגיל שיושב על השרת שלך. הכוח האמיתי של שימוש בשפת תכנות כמו פרל ליצירת ה- HTML שלך מגיע כשאתה מוסיף תכנות פרל מהודרת.
הוספת לתסריט הבסיסי
בדוגמא הבאה, בואו ניקח חלק מזה זמן ותאריך של תאריך ולהוסיף אותו לדף האינטרנט שלך.
#! / usr / bin / perl
@months = qw (ינואר פברואר מרץ אפריל מאי יוני יולי יולי אוגוסט ספטמבר אוקטובר דצמבר);
@weekDays = qw (יום א 'יום ג' רביעי ה 'ו' א 'א');
($ שני, $ דקה, $ שעה, $ dayOfMonth, $ חודש, $ yearOfset, $ dayOfWeek, $ dayOfYear, $ daylightSavings) = localtime ();
$ $ = 1900 + $ year אופסט;
$ theTime = "$ weekDays [$ dayOfWeek] $ חודשים [$ month] $ dayOfMonth, $ year";
הדפס "סוג תוכן: text / html \ n \ n";
הדפס <פרל CGI פשוט פרל CGI פשוט
$ הזמן
HTML
יציאה;
סקריפט CGI חדש זה יכניס את התאריך הנוכחי לדף בכל פעם שקוראים לתסריט. במילים אחרות, זה הופך להיות א דינמי מסמך שמשתנה עם שינוי התאריך ולא של סטטי מסמך.