Θα δημιουργήσουμε μια web σελίδα με φόρμα όπου ο επισκέπτης θα δίνει το όνομά του και θα λαμβάνει απάντηση όπου θα αναφέρεται αυτό το όνομα. Ο HTML κώδικας της σελίδα θα είναι:
<HTML><head><TITLE>Φόρμα επικοινωνίας</TITLE></head><BODY bgcolor=white>
<form action="/cgi-local/test.pl">
<p>Γράψτε μας το όνομά σας: <INPUT NAME="visitor_name">
<p><INPUT TYPE="submit" VALUE="Υποβολή ονόματος">
</form>
</body>
</html>
(Δείτε τις σχετικές σελίδες του site http://www.eeei.gr για οδηγίες κατασκευής web σελίδων και τοποθέτηση φορμών μέσα σε αυτές.)
Από πλευράς CGI scripting ο παραπάνω κώδικας HTML περιέχει δύο σημαντικές πληροφορίες για μας:
<form action="/cgi-local/test.pl">
Δηλώνουμε δηλαδή πως το script μας ονομάζεται test.pl και είναι τοποθετημένο στον υποφάκελο cgi-local. Το πού πρέπει να τοποθετήσετε τα scripts σας και τι θα κάνετε για να λειτουργήσουν (π.χ. ρύθμιση των ανάλογων permissions) θα το συζητήσετε με τον system administrator του web server και γενικότερα του μηχανήματος που φιλοξενεί τις σελίδες και τα scripts σας.
<INPUT NAME=" visitor_name">
Ο χρήστης δηλώνει μόνο ένα στοιχείο σε εμάς. Αυτό έχει τον τίτλο visitor_name και η μορφή του είναι κείμενο (text) που μας δακτυλογραφεί ο ίδιος ο χρήστης. (Ο πλήρης κώδικας είναι <INPUT TYPE='text' NAME="visitor_name"> και το TYPE='text' δηλώνει ότι στον χρήστη εμφανίζεται ένα παράθυρο κειμένου για να πληκτρολογήσει. Επειδή όμως το TYPE='text' αποτελεί την default τιμή του INPUT εννοείται όταν δεν έχει οριστεί κάτι άλλο και γι' αυτό μπορούμε να το παραλείψουμε.)
Το CGI script μας θα είναι το ακόλουθο:
#!/usr/local/bin/perl -w
Ο administrator του μηχανήματος θα μας πει ποιο ακριβώς path πρέπει να δηλώσουμε.
use strict;
Κατά τα γνωστά
use CGI qw(:standard);
Αν και θα μπορούσαμε να δημιουργήσουμε ένα CGI script από το μηδέν αυτό είναι πολύ δύσκολο και δεν υπάρχει λόγος να εφευρίσκουμε από την αρχή τον τροχό. Θα δουλέψουμε λοιπόν βασισμένοι στο πολύ δημοφιλές module CGI.pm
print header();
Μέσω του CGI.pm δηλώνουμε στον web server τι είδους περιεχόμενο θα σταλεί πίσω στον χρήστη. Το print header() σημαίνει πως το περιεχόμενο θα είναι text/html. (Αυτό που θα λάβει ως απάντηση ο χρήστης θα έχει τη μορφή web σελίδας.)
print start_html ('Καλημέρα');
Το CGI.pm φροντίζει για τον αρχικό HTML κώδικα της web σελίδας (HTML, HEAD, TITLE κ.λπ.) που θα λάβει ο χρήστης. Ο τίτλος της σελίδας είναι Καλημέρα.
print "<h3>Το όνομά σου είναι: ", param('name'), "</h3>\n";
Το ", param('name'), " περιέχει τα δεδομένα που συμπλήρωσε ο χρήστης (προσοχή στα μονά και διπλά εισαγωγικά, αλλά και στα κόμματα).
print "Ευχαριστώ <b>πολύ</b> που συμπλήρωσες τη φόρμα.\n";
Δικά μας σχόλια ή όποιος κώδικας HTML επιθυμούμε.
print end_html;
Τα καταληκτικά τμήματα της web σελίδας (</body></html>)
Πριν ανεβάσουμε το script μας online ένας απλός για να το ελέγξουμε είναι να τρέψει απευθείας από το PC μας. Για να γίνει αυτό αρκεί να γράψουμε στο UNIX prompt:
perl test.pl name=Γιώργος (ή κάποιο άλλο όνομα που μπορεί να έδινε ο επισκέπτης της σελίδας)
Αν όλα πάνε καλά, τότε θα πρέπει να εμφανιστεί στην οθόνη μας ο HTML κώδικας της σελίδας που θα αποστέλλονταν στον επισκέπτη της μετά την υποβολή της σχετικής φόρμας.