Οδηγός για την Συγγραφή CGI Σενάρια σε REXX και Perl

Home

Εισαγωγή

Ο Οδηγός αυτός απευθύνεται σε άτομα που επιθυμούν να γράψουν τα δικά τους WWW εκτελέσιμα σενάρια χρησιμοποιώντας το WWW είναι το Κοινός Είσοδοςπυλών Διεπαφή ( Common Gateway Interface – CGI). Αν και η κύρια έμφαση δίνεται στην REXX πολλά παραδείγματα παρέχονται επίσης σε Perl.

Υπάρχουν μερικές απλές βιβλιοθήκες λογισμικού για να διευκολύνει το γράψιμο CGI scripts. cgi-lib.rxx είναι REXX βιβλιοθήκη λειτουργιών (διαθέσιμο στο SLAC, χρησιμοποιώντας το REXX
CALL PUTENV ‘REXXPATH=/afs/slac/www/slac/www/tool/cgi-rexx’
δήλωση που να περιλαμβάνει η βιβλιοθήκη κατά το χρόνο εκτέλεσης)και cgi-lib.pl είναι μια παρόμοια βιβλιοθήκη Perl γραμμένο από τον Steve Brenner (υπάρχει ένα εκτελέσιμο αντίγραφο βιβλιοθήκη στο SLAC /afs/slac/g/www/cgi-lib/cgi-lib.pl). NCSA έχει ένα πολύ χρήσιμο σετ Perl CGI handler υπορουτίνες που είναι διαθέσιμες μέσω ανώνυμου FTP. Άλλο σύνολο Perl CGI Server Side Scripts γραμμένα από Brigitte Jellinek είναι διαθέσιμο υπό την άδεια Gnu public license. Υπάρχει επίσης τον Πηγαίο κώδικα για www.stanford.edu scripts και προγράμματα. Υπάρχει επίσης ένας δείκτης για την Perl WWW προγράμματα που συγκεντρώθηκαν από Ερλ Κουκούλα. Τέλος, δείτε το Κέντρο Ανάπτυξης Διαδικτύου.

Δεδομένου ότι υπάρχουν ασφαλείας και άλλων κινδύνων που συνδέονται με την εκτέλεση χρήστη δέσμες ενεργειών σε ένα WWW server, ο αναγνώστης μπορεί να θέλετε πρώτα να δείτε ένα έγγραφο που παρέχει πληροφορίες για μια SLAC Ασφαλείας Περιτύλιγμα των χρηστών CGI scripts. Εκτός από τη βελτίωση της ασφάλειας, αυτό το περιτύλιγμα, επίσης, απλοποιεί το έργο της γράφοντας μια δέσμη ενεργειών CGI για έναν αρχάριο.

Πριν ξεκινήσει να γράφω ένα σενάριο, μπορεί να θέλετε επίσης να ελέγξετε έξω μερικές πρόχειρες σημειώσεις στο SLAC Υποστήριξη ξένων Παρέχεται από σενάρια CGI.

Το CGI είναι μια διεπαφή για την εκτέλεση εξωτερικών προγραμμάτων, ή πύλες, σύμφωνα με πληροφορίες του διακομιστή. Επί του παρόντος, υποστηρίζονται πληροφορίες διακομιστές HTTP (Πρωτόκολλο Μεταφοράς που χρησιμοποιείται από το WWW) servers.

Πύλη προγράμματα εκτελέσιμα προγράμματα (π. χ. UNIX scripts), το οποίο μπορεί να εκτελεστεί από τους ίδιους (αλλά δεν θέλουν να, εκτός για σκοπούς εντοπισμού σφαλμάτων). Έχουν γίνει εκτελέσιμο για να τους επιτρέψει να τρέξει κάτω από διάφορες (ενδεχομένως πολύ διαφορετική) πληροφορίες servers εναλλακτικά. Πύλη προγράμματα είναι σύμφωνα με την παρούσα προδιαγραφή μπορεί να γραφτεί σε οποιαδήποτε γλώσσα, συμπεριλαμβανομένων REXX ή Perl, το οποίο παράγει ένα εκτελέσιμο αρχείο.

Να πάρει την Εισαγωγή στο Σενάριο

Η εισαγωγή μπορεί να σταλεί στο σενάριο με διάφορους τρόπους ανάλογα με τον πελάτη Ενιαίος Εντοπιστής Πόρων (Uniform Resource Locator – URL) ή (HTML) Μορφή:

QUERY_STRING ορίζεται ως κάτι το οποίο ακολουθεί το πρώτο? το URL που χρησιμοποιείται για πρόσβαση η πύλη σας. Αυτές οι πληροφορίες θα μπορούσαν να προστεθούν από ένα HTML ISINDEX έγγραφο, ή από μια Φόρμα HTML (με την δράση). Θα μπορούσε επίσης να είναι με το χέρι ενσωματωμένο σε HTML hypertext link, ή την άγκυρα, η οποία αναφορές σας από την πύλη. Αυτή η συμβολοσειρά θα είναι συνήθως ένα ερώτημα πληροφορίες, π. χ. τι θέλει ο χρήστης για την αναζήτηση σε βάσεις δεδομένων, ή ίσως τα κωδικοποιημένα αποτελέσματα της Φόρμας σχολίων. Μπορείτε να έχετε πρόσβαση στο REXX, χρησιμοποιώντας το String=GETENV(‘QUERY_STRING’)
ή σε Perl χρησιμοποιώντας το $string=$ENV(‘QUERY_STRING’);

Αυτή η συμβολοσειρά είναι κωδικοποιημένα σε τυποποιημένη μορφή διεύθυνσης URL που αλλάζει θέσεις, να +, και κωδικοποίηση ειδικών χαρακτήρων %xx δεκαεξαδική κωδικοποίηση. Θα πρέπει να το αποκωδικοποιήσει για να το χρησιμοποιήσετε. Μπορείτε να δείτε το cgi-lib.rxx REXX PROCEDURE DeWeb ή τις Perl κώδικα κομμάτι δίνοντας παραδείγματα για το πώς να αποκωδικοποιήσουν οι ειδικοί χαρακτήρες.

Εάν ο διακομιστής σας δεν αποκωδικοποίηση αποτελέσματα από μια Φόρμα, μπορείτε επίσης να πάρετε το query string αποκωδικοποιηθεί για σένα πάνω στην γραμμή εντολών. Αυτό σημαίνει ότι η συμβολοσειρά ερωτήματος θα είναι διαθέσιμο σε REXX μέσω της PARSE ARG εντολή, ή στην Perl $ARGV[n] πίνακα.

Για παράδειγμα, εάν έχετε μια διεύθυνση URL http://www.slac.stanford.edu/cgi-bin/foo?hello+world και μπορείτε να χρησιμοποιήσετε το REXX εντολή να PARSE ARG Arg1 Arg2, στη συνέχεια, Arg1 θα περιέχει το “hello” και Arg2 θα περιέχει “world” (δηλ. το σύμβολο + αντικαθίσταται με ένα κενό).
Στην Perl $ARGV[1] περιέχει το “hello” και $ARGV[2], περιέχει “world”. Αν επιλέξετε να χρησιμοποιήσετε τη γραμμή εντολών για να αποκτήσετε πρόσβαση στην εισαγωγή, θα πρέπει να κάνετε λιγότερη επεξεργασία των δεδομένων πριν από τη χρήση.

Τον περισσότερο καιρό, θα θέλετε να στείλετε τα δεδομένα σας πύλες που ο πελάτης δεν πρέπει να muck. Αυτές οι πληροφορίες θα μπορούσε να είναι το όνομα της Φόρμας που δημιουργούνται τα αποτελέσματα στέλνουν.

CGI επιτρέπει για επιπλέον πληροφορίες, για να ενσωματωθεί στη διεύθυνση URL για το voip το οποίο μπορεί να χρησιμοποιηθεί για να μεταδώσει επιπλέον πλαίσιο-συγκεκριμένες πληροφορίες για τις δέσμες ενεργειών. Αυτές οι πληροφορίες είναι συνήθως διαθέσιμες ως “επιπλέον” πληροφορίες, αφού η διαδρομή του πύλη στην διεύθυνση URL. Αυτή η πληροφορία δεν είναι κωδικοποιημένα από το διακομιστή με οποιοδήποτε τρόπο. Μπορείτε να έχετε πρόσβαση στο REXX, χρησιμοποιώντας το String=GETENV(‘PATH_INFO’) ή σε Perl χρησιμοποιώντας το $string=$ENV(‘PATH_INFO’);

Για να φανεί αυτό, ας πούμε ότι έχω ένα CGI script το οποίο είναι προσβάσιμο μου server με το όνομα foo. Όταν έχω πρόσβαση foo από ένα συγκεκριμένο έγγραφο, θέλω να πω foo ότι είμαι επί του παρόντος στην αγγλική γλώσσα directory, όχι για τα κορακίστικα directory. Σε αυτή την περίπτωση, δεν θα μπορούσε να έχει πρόσβαση το σενάριο μου σε ένα έγγραφο HTML όπως:

<A HREF=”http://www/cgi-bin/foo/language=english”>foo</A>

Όταν ο διακομιστής εκτελεί foo, θα μου δώσει PATH_INFO /language=english, και το πρόγραμμα μπορεί να αποκωδικοποιήσει αυτό και ενεργεί αναλόγως.

Το PATH_INFO και το QUERY_STRING μπορούν να συνδυαστούν. Για παράδειγμα, η διεύθυνση URL:
http://www/cgi-bin/htimage/usr/www/img/map?404,451
θα προκαλέσει το διακομιστή για να εκτελέσετε το σενάριο που να ονομάζεται htimage. Θα περάσει το υπόλοιπο πληροφορίες για τη διαδρομή “/usr/www/img/map” για να htimage το PATH_INFO μεταβλητή περιβάλλοντος, και να περάσει “405,451” στην μεταβλητή QUERY_STRING. Σε αυτή την περίπτωση, htimage είναι ένα σενάριο για την υλοποίηση ενεργών χαρτών που παρέχονται με το CERN HTTPD.

Αν η Φόρμα σας έχει METHOD=”POST” με τη FORM του tag, το CGI πρόγραμμα θα λάβουν την κωδικοποιημένη Μορφή εισόδου από το standard input (stdin στο Unix). Ο server θα στείλει ένα EOF στο τέλος τα δεδομένα, αντί να χρησιμοποιήσετε την μεταβλητή περιβάλλοντος CONTENT_LENGTH για να προσδιορίσετε πόσα δεδομένα θα πρέπει να διαβάσει από το stdin. Μπορείτε να το επιτύχετε σε REXX, In=CHARIN(,1,GETENV(‘CONTENT_LENGTH’)), ή σε Perl, χρησιμοποιώντας read(STDIN,$in,$ENV{‘CONTENT_LENGTH’});

Αν θέλετε να περάσετε την τυπική είσοδο σε ένα άλλο σενάριο που θα πάρω αργότερα και, στη συνέχεια, μπορεί να θέλετε να επανεξετάσει το cgi-cgi-lib.rxx REXX PROCEDURE Διαβάστε Δημοσίευση.

Μπορείτε να δείτε το REXX τμήμα Κώδικα, δίνοντας ένα παράδειγμα του πώς να διαβάσει τα διάφορα μορφή εισαγωγής στο σενάριό σου.
Το REXX PROCEDURE Διαβάστε Έντυπο μαζί με MethGet και MethPost, όλα διαθέσιμα στο cgi-lib.rxx, μπορεί να χρησιμοποιηθεί για να απλοποιήσει το έργο του ανάγνωση εισόδου από μια Έντυπο.

Αποκωδικοποίηση Φόρμες Εισαγωγής

Όταν γράφετε μια Φόρμα, κάθε ένα από τα στοιχεία εισόδου σας έχει ένα όνομα ετικέτας. Όταν ο χρήστης τοποθετεί τα δεδομένα σε αυτά τα στοιχεία στην Φόρμα, η πληροφορία αυτή κωδικοποιείται σε Μορφή δεδομένων. Η αξία κάθε εισαγωγή στοιχείων δίνεται από τον χρήστη ονομάζεται η αξία.

Μορφή δεδομένων είναι ένα ρεύμα όνομα=τιμή ζευγάρια που χωρίζονται από το εμπορικό και ( & ) χαρακτήρα. Κάθε ζεύγος name=value είναι URL encoded”, δηλαδή χώροι που έχουν μετατραπεί σε σύμβολα συν και ορισμένοι χαρακτήρες κωδικοποιούνται σε δεκαεξαδική μορφή. Για να αποκωδικοποιήσει τα δεδομένα της Φόρμας, θα πρέπει πρώτα να αναλύσει τη Μορφή μπλοκ δεδομένων σε ξεχωριστό όνομα=τιμή ζεύγη πετώντας έξω τα συμπλεκτικά σύμβολα. Στη συνέχεια, θα πρέπει να αναλύσει κάθε όνομα=τιμή ζευγάρι σε ξεχωριστό όνομα και τιμή. Χρησιμοποιήστε το πρώτο σύμβολο της ισότητας αντιμετωπίζετε να διαιρέσετε τα δεδομένα. Αν υπάρχουν περισσότερα από ένα, τότε κάτι είναι λάθος με τα δεδομένα. Και πάλι πετάξει έξω τη ισούται με σημάδια. Τέλος αναιρέσετε την κωδικοποίηση URL, κάθε όνομα και την αξία.

Μπορείτε να δείτε το REXX ή τις Perl τμήμα κώδικα, δίνοντας παραδείγματα από την αποκωδικοποίηση της Φόρμας εισόδου.

Όταν χρησιμοποιείτε το όνομα και την αξία πληροφορίες στο σενάριο, θα πρέπει να γνωρίζουν ότι:

  • τίποτα δεν υπαγορεύει τη σειρά με την οποία το όνομα=τιμή θα είναι συνεχόμενα;
  • δεν είναι κάθε όνομα και την αξία που ορίζεται στη μορφή είναι κατ ‘ ανάγκη αποστέλλονται από τον πελάτη, για παράδειγμα εάν δεν είναι επιλεγμένο σε μια κυλιόμενη λίστα, στη συνέχεια, ούτε το όνομα, ούτε η αξία θα σταλούν;
  • περισσότερες από μία τιμή μπορεί να σταλεί για ένα συγκεκριμένο όνομα, για παράδειγμα, αν μια κυλιόμενη λίστα επιτρέπει την επιλογή της πολλές επιλογές.

Αποστολή Έγγραφο Πίσω στον Πελάτη

Τα προγράμματα CGI μπορεί να επιστρέψει μια μυριάδα των τύπων εγγράφων. Μπορούν να στείλετε μια εικόνα στον υπολογιστή-πελάτη, ένα έγγραφο HTML, ενός απλού εγγράφου, Postscript έγγραφα ή ίσως ακόμη και ένα κλιπ ήχου σωματικές λειτουργίες. Μπορούν, επίσης, να επιστρέψει αναφορές σε άλλα έγγραφα (για να σώσει το διάστημα, θα αγνοήσουμε αυτήν την περίπτωση εδώ, περισσότερες πληροφορίες μπορούν να βρεθούν στο NCSA CGI Primer). Ο πελάτης πρέπει να γνωρίζει τι είδους έγγραφο που σας στέλνουν ώστε να μπορούν να το παρουσιάσει αναλόγως. Προκειμένου ο πελάτης να το γνωρίζουν αυτό, το CGI πρόγραμμα πρέπει να ενημερώσετε το διακομιστή τι είδους έγγραφο είναι επιστροφή.

Για να πείτε στον διακομιστή τι είδους έγγραφο που θέλετε να στείλετε πίσω, CGI απαιτεί από εσάς να τοποθετήσετε μια σύντομη επιγραφή στην παραγωγή. Αυτή η κεφαλίδα είναι ASCII κείμενο, που αποτελείται από γραμμές που διαχωρίζονται είτε από γραμμές ή επαναφορών που ακολουθείται από γραμμές. Το σενάριο πρέπει εξόδου τουλάχιστον δύο τέτοιες γραμμές πριν από τα δεδομένα θα πρέπει να αποστέλλονται απευθείας στον υπολογιστή-πελάτη. Αυτές οι γραμμές χρησιμοποιούνται για να δηλώσουν τον τύπο MIME στο ακόλουθο έγγραφο

Μερικοί κοινοί τύποι MIME σχετικές με το WWW είναι:

  • Ένα “text” Περιεχόμενο-Τύπος που χρησιμοποιείται για να αναπαραστήσει πληροφορίες υπό μορφή κειμένου σε μια σειρά από σύνολα χαρακτήρων και μορφοποιημένο κείμενο περιγραφή γλώσσες με τυποποιημένο τρόπο. Οι δύο πιο πιθανές υποκατηγορίες είναι:
    • text/plain: το κείμενο χωρίς ειδικές απαιτήσεις μορφοποίησης.
    • text/html: κείμενο με ενσωματωμένες εντολές HTML
  • Μια “application” Ευχαριστός Τύπος, η οποία χρησιμοποιείται για να διαβιβάσει τα δεδομένα της εφαρμογής ή δυαδικά δεδομένα. Δύο χρησιμοποιούνται συχνά υποκατηγορίες είναι:
    • application/postscript: Τα δεδομένα είναι σε PostScript, και θα πρέπει να τροφοδοτείται σε ένα PostScript interptreter.
    • application/binary: τα δεδομένα είναι σε κάποια άγνωστη δυαδική μορφή, όπως τα αποτελέσματα από μια μεταφορά αρχείων.
  • Ένα “image” Ευχαριστός Τύπος για τη μετάδοση εικόνας (φωτογραφία) δεδομένων. Υπάρχουν πολλές πιθανές υποκατηγορίες, αλλά και αυτοί που πιο συχνά χρησιμοποιείται στο WWW είναι:
    • image/gif: μια εικόνα σε μορφή GIF.
    • image/xbm: μια εικόνα στο Χ μορφή Bitmap.
    • image/jpeg: μια εικόνα σε μορφή JPEG.

Για να πείτε στον διακομιστή παραγωγής σας, είναι ο τύπος περιεχομένου, η πρώτη γραμμή παραγωγής σας πρέπει να διαβάσετε:
Content-type: type/subtype
πού type/subtype είναι η MIME τύπου και υποτύπου για την παραγωγή σας.

Την επόμενη, θα πρέπει να στείλετε τη δεύτερη γραμμή. Με την τρέχουσα προδιαγραφή, ΔΕΎΤΕΡΗ ΓΡΑΜΜΉ ΠΡΈΠΕΙ ΕΊΝΑΙ ΚΕΝΌ. Αυτό σημαίνει ότι θα πρέπει να έχετε τίποτα, εκτός από ένα linefeed. Μόλις ο server ανακτά αυτή τη γραμμή, ξέρει ότι είσαι τελειωμένος λέει το διακομιστή για την παραγωγή και τώρα θα αρχίσει η πραγματική παραγωγή. Αν παραλείψετε αυτή τη γραμμή, ο server θα προσπαθήσει να αναλύσει την απόδοσή σας προσπαθώντας να βρείτε περαιτέρω πληροφορίες σχετικά με το αίτημά σας και θα γίνει πολύ δυστυχισμένος.

Μπορείτε να δείτε ένα REXX Κώδικα τμήμα, δίνοντας ένα παράδειγμα από το χειρισμό του τύπου Ευχαριστός Τύπος.

Μετά από αυτές τις δύο γραμμές έχουν εκτυπωθεί, οποιαδήποτε έξοδο στο stdout (π. χ. REXX ΠΩ εντολή) θα πρέπει να περιλαμβάνονται στο έγγραφο που αποστέλλεται στον υπολογιστή-πελάτη. Αυτή η έξοδος πρέπει να είναι συνεπής με την κεφαλίδα τύπου Περιεχομένου. Για παράδειγμα, εάν η κεφαλίδα ορίζεται Content-type text/html, στη συνέχεια, το ακόλουθο αποτέλεσμα πρέπει να περιλαμβάνουν μορφοποίηση HTML, όπως η χρήση <BR> ή <P> για την έναρξη νέων γραμμών ή <PRE> για να αφαιρέσετε HTML αυτόματη μορφοποίηση.

Διαγνωστικά και Εκθέσεων Σφάλματα

Από το stdout περιλαμβάνεται στο έγγραφο που απέστειλε στον, διαγνωστικά διαγνωστικά εξέρχεται με την ΠΩ εντολή θα εμφανίζονται στο έγγραφο. Μπορείτε να δείτε ένα REXX Κώδικα τμήμα , δίνοντας ένα παράδειγμα των διαγνωστικών εκθέσεων.
Εάν παρουσιάζονται σφάλματα (π. χ. συμβολή, μη έγκυρους χαρακτήρες που βρέθηκαν, πάρα πολλά επιχειρήματα που ορίζεται ζήτησε να έχει μια μη έγκυρη εντολή να εκτελεστεί, μη έγκυρη σύνταξη ή απροσδιόριστη μεταβλητή που ανέκυψαν κατά την REXX γραφή) το σενάριο θα πρέπει να παρέχει λεπτομερείς πληροφορίες για το τι είναι λάθος κ. λπ. Μπορεί να είναι πολύ χρήσιμο για να παρέχουν πληροφορίες σχετικά με τις ρυθμίσεις των διαφόρων WWW Μεταβλητές Περιβάλλοντος που έχουν οριστεί.

Το CGIerror, CGIdie και MyURL REXX Διαδικασίες cgi-lib.rxx παρέχουν κάποια βοήθεια για την αναφορά σφαλμάτων. Εκτός από την αναθεώρηση του REXX κομμάτια κώδικα χρησιμοποιώντας CGIerror και χρησιμοποιώντας CGIdie και επίσης χαρακτηριστική CGIerror παραγωγή και CGIdie παραγωγής.

Δύο Απλές REXX WWW CGI Scripts

  • Για να σας στο Web server για να εκτελέσετε μια δέσμη ενεργειών CGI θα πρέπει να:
    Γράψει το σενάριο. Να απλουστεύσουν τη διαδικασία αυτή, μπορεί να θέλετε να επωφεληθείτε από το cgi-lib.rxx βιβλιοθήκη της τις λειτουργίες, συμπεριλαμβανομένων και ορισμένων εισαχθεί προηγουμένως σε αυτή τη σελίδα. Μερικές απλές, αλλά πλήρη παραδείγματα μπορεί να βοηθήσει:
  1. πηγή της μια δέσμη ενεργειών για να ενεργοποιήσετε ένα σύστημα UNIX δάχτυλο λειτουργία.
  2. πηγή ελάχιστη HTTP Μορφή και το Σενάριο.
  • Κάνει το script εκτελέσιμο από το Web server. Στο SLAC σε Unix αυτό γίνεται χρησιμοποιώντας την εντολή chmod, π. χ.
    • chmod o+x /u/sf/cottrell/bin/cgi1.rxx
      chmod u+x /u/sf/cottrell/bin/cgi1.rxx

Να σας στο με υπεύθυνο για να προσθέσετε έναν κανόνα για να τον Web server κανόνες αρχείο για να επιτρέψετε στο διακομιστή Web για να εκτελέσετε τη δέσμη ενεργειών σας. Περισσότερες πληροφορίες σχετικά με το διακομιστή W3C κανόνες αρχείο μπορεί να βρεθεί με την εξέταση στο Αρχείο Ρυθμίσεων του W3C httpd, καθώς και ένα απλό παράδειγμα μερικές από τις χαρτογράφηση δηλώσεις μπορούν να χρησιμοποιηθούν σε κανόνες αρχείο.
Για με υπεύθυνο θα θέλουν να ασφαλίσουν ότι η Ασφάλεια Πτυχές του σεναρίου σας έχουν αποσταλεί πριν από την προσθήκη το σενάριο σας για το αρχείο Κανόνες.

Άλλες Πηγές Ενδιαφέροντος

  • Αντίγραφο:
    • Το βιβλίο HTML & CGI Unleashed έχει πολύ χρήσιμες πληροφορίες σχετικά με το γράψιμο CGI scripts σε C, Perl και REXX.
    • Το βιβλίο Introduction to CGI/PERL από τον Steve Brenner & Edwin Aoki είναι μια χρήσιμη εισαγωγή στο γράψιμο CGI scripts σε Perl.
  • Γράφει World-Wide Web CGI Scripts in REXX παρουσίασε τηνSpring 1996 SHARE Technical Conference, Μαρτίου 7, 1996, Anaheim της Καλιφόρνια.
  • Το NetRexx Language Page παρέχει πληροφορίες σχετικά με το πειραματικό σχέδιο από τον Mike Cowlishaw (τα πνευματικά του REXX) για να δημιουργήσετε ένα Rexx τέλος μπροστά σε Java.
  • Επίσης συντονιστείτε στο comp.infosystems.www.authoring.cgi το οποίο καλύπτει συζήτηση για την ανάπτυξη του CGI σενάρια που σχετίζονται με τη σελίδα. Πιθανά θέματα περιλαμβάνουν συζήτηση για το πώς να χειριστεί τα αποτελέσματα των μορφών, πώς να δημιουργήσει εικόνες on the fly, και πώς να βάλει μαζί άλλες διαδραστικές διαδικτυακές προσφορές.
  • Το World Wide Web (Συχνές Ερωτήσεις, με Απαντήσεις) απαντήσεις πολλές, πολλές ερωτήσεις σχετικά με το World Wide Web σε γενικές γραμμές.
  • Εάν χρησιμοποιείτε Perl και έχετε μια γενική Perl ερώτηση που δεν είναι πραγματικά ένα CGI-συγκεκριμένη ερώτηση, ψάξτε για τα Perl FAQ.
  • Αν θέλετε να γράφετε σενάρια για τα Windows NT, στη συνέχεια, δείτε Somarsoft – Windows NT Security Issues.