Perl - Pemrograman CGI

Apakah CGI itu?

  • Common Gateway Interface, atau CGI, adalah seperangkat standar yang menentukan bagaimana informasi dipertukarkan antara server web dan skrip kustom.

  • Spesifikasi CGI saat ini dikelola oleh NCSA dan NCSA mendefinisikan CGI sebagai berikut -

  • Common Gateway Interface, atau CGI, adalah standar untuk program gateway eksternal untuk berinteraksi dengan server informasi seperti server HTTP.

  • Versi saat ini adalah CGI / 1.1 dan CGI / 1.2 sedang dalam proses.

Menjelajah web

Untuk memahami konsep CGI, mari kita lihat apa yang terjadi ketika kita mengklik hyper link yang tersedia di halaman web untuk menelusuri halaman web atau URL tertentu.

  • Browser Anda menghubungi server web menggunakan protokol HTTP dan meminta URL, yaitu nama file halaman web.

  • Server Web akan memeriksa URL dan akan mencari nama file yang diminta. Jika server web menemukan file itu maka itu mengirim file kembali ke browser tanpa eksekusi lebih lanjut jika tidak mengirimkan pesan kesalahan yang menunjukkan bahwa Anda telah meminta file yang salah.

  • Browser web menerima respons dari server web dan menampilkan konten file yang diterima atau pesan kesalahan jika file tidak ditemukan.

Namun, dimungkinkan untuk mengatur server HTTP sedemikian rupa sehingga setiap kali file dalam direktori tertentu diminta, file tersebut tidak dikirim kembali; alih-alih itu dijalankan sebagai sebuah program, dan apa pun yang dihasilkan program itu sebagai hasilnya, itu dikirim kembali untuk ditampilkan oleh browser Anda. Ini dapat dilakukan dengan menggunakan fungsionalitas khusus yang tersedia di server web dan disebutCommon Gateway Interfaceatau CGI dan program semacam itu yang dijalankan oleh server untuk menghasilkan hasil akhir, disebut skrip CGI. Program CGI ini dapat berupa PERL Script, Shell Script, C atau C ++ program, dll.

Diagram Arsitektur CGI

Dukungan dan Konfigurasi Server Web

Sebelum Anda melanjutkan dengan Pemrograman CGI, pastikan bahwa Server Web Anda mendukung fungsionalitas CGI dan dikonfigurasi untuk menangani program CGI. Semua program CGI yang akan dijalankan oleh server web disimpan dalam direktori yang telah dikonfigurasi sebelumnya. Direktori ini disebut direktori CGI dan menurut konvensi dinamai / cgi-bin. Dengan konvensi file Perl CGI akan memiliki ekstensi sebagai.cgi.

Program CGI Pertama

Berikut ini tautan sederhana yang ditautkan ke skrip CGI yang disebut hello.cgi . File ini telah disimpan di/cgi-bin/direktori dan memiliki konten berikut. Sebelum menjalankan program CGI Anda, pastikan Anda telah mengubah mode file menggunakanchmod 755 hello.cgi Perintah UNIX.

#!/usr/bin/perl

print "Content-type:text/html\r\n\r\n";
print '<html>';
print '<head>';
print '<title>Hello Word - First CGI Program</title>';
print '</head>';
print '<body>';
print '<h2>Hello Word! This is my first CGI program</h2>';
print '</body>';
print '</html>';

1;

Sekarang jika Anda mengklik hello.cgi link lalu request ke web server yang mencari hello.cgi di direktori / cgi-bin, jalankan dan apapun hasil yang didapat, web server mengirimkan hasil tersebut kembali ke web browser, yaitu sebagai berikut -

Hello Word! This is my first CGI program

Script hello.cgi ini adalah script Perl sederhana yang outputnya ditulis pada file STDOUT, yaitu layar. Ada satu fitur penting dan tambahan yang tersedia yaitu baris pertama yang akan dicetakContent-type:text/html\r\n\r\n. Baris ini dikirim kembali ke browser dan menentukan tipe konten yang akan ditampilkan di layar browser. Sekarang Anda harus memahami konsep dasar CGI dan Anda dapat menulis banyak program CGI yang rumit menggunakan Perl. Skrip ini dapat berinteraksi dengan sistem eksternal lainnya juga untuk bertukar informasi seperti database, layanan web, atau antarmuka kompleks lainnya.

Memahami HTTP Header

Baris paling pertama Content-type:text/html\r\n\r\nmerupakan bagian dari HTTP header, yang dikirimkan ke browser agar browser dapat memahami konten yang masuk dari sisi server. Semua header HTTP akan dalam bentuk berikut -

HTTP Field Name: Field Content

Sebagai Contoh -

Content-type:text/html\r\n\r\n

Ada beberapa header HTTP penting lainnya, yang akan sering Anda gunakan dalam Pemrograman CGI.

Sr.No. Header & Deskripsi
1

Content-type: String

String MIME yang menentukan format konten yang dikembalikan. Contohnya adalah Content-type: text / html

2

Expires: Date String

Tanggal ketika informasi menjadi tidak valid. Ini harus digunakan oleh browser untuk memutuskan kapan halaman perlu di-refresh. String tanggal yang valid harus dalam format 01 Jan 1998 12:00:00 GMT.

3

Location: URL String

URL yang harus dikembalikan, bukan URL yang diminta. Anda dapat menggunakan ini diajukan untuk mengarahkan permintaan ke lokasi lain.

4

Last-modified: String

Tanggal modifikasi terakhir file.

5

Content-length: String

Panjang, dalam byte, dari data yang dikembalikan. Browser menggunakan nilai ini untuk melaporkan perkiraan waktu download suatu file.

6

Set-Cookie: String

Atur cookie melewati string

Variabel Lingkungan CGI

Semua program CGI akan memiliki akses ke variabel lingkungan berikut. Variabel ini memainkan peran penting saat menulis program CGI apa pun.

Sr.No. Variabel Nama & Deskripsi
1

CONTENT_TYPE

Jenis data konten. Digunakan saat klien mengirim konten terlampir ke server. Misalnya unggah file, dll.

2

CONTENT_LENGTH

Panjang informasi kueri. Ini hanya tersedia untuk permintaan POST

3

HTTP_COOKIE

Mengembalikan cookie yang ditetapkan dalam bentuk pasangan kunci & nilai.

4

HTTP_USER_AGENT

Bidang header permintaan Agen-Pengguna berisi informasi tentang agen pengguna yang membuat permintaan. Namanya browser web.

5

PATH_INFO

Jalur untuk skrip CGI.

6

QUERY_STRING

Informasi yang dikodekan URL yang dikirim dengan permintaan metode GET.

7

REMOTE_ADDR

Alamat IP dari remote host yang membuat permintaan. Ini dapat berguna untuk pencatatan atau untuk tujuan otentikasi.

8

REMOTE_HOST

Nama host yang sepenuhnya memenuhi syarat yang membuat permintaan. Jika informasi ini tidak tersedia maka REMOTE_ADDR dapat digunakan untuk mendapatkan alamat IR.

9

REQUEST_METHOD

Metode yang digunakan untuk membuat permintaan. Metode yang paling umum adalah GET dan POST.

10

SCRIPT_FILENAME

Jalur lengkap ke skrip CGI.

11

SCRIPT_NAME

Nama skrip CGI.

12

SERVER_NAME

Nama host atau Alamat IP server.

13

SERVER_SOFTWARE

Nama dan versi perangkat lunak yang dijalankan server.

Berikut adalah program CGI kecil untuk mencantumkan semua variabel CGI yang didukung oleh server Web Anda. Klik link ini untuk melihat hasil Get Environment

#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "<font size=+1>Environment</font>\n";
foreach (sort keys %ENV) {
   print "<b>$_</b>: $ENV{$_}<br>\n";
}

1;

Angkat Kotak Dialog "Unduh File"?

Terkadang Anda ingin memberikan opsi di mana pengguna akan mengklik tautan dan itu akan memunculkan kotak dialog "Unduh File" kepada pengguna alih-alih menampilkan konten yang sebenarnya. Ini sangat mudah dan akan diperoleh melalui header HTTP.

Header HTTP ini akan berbeda dari header yang disebutkan di bagian sebelumnya. Misalnya, jika Anda ingin membuat fileFileName file yang dapat diunduh dari tautan yang diberikan maka sintaksnya adalah sebagai berikut -

#!/usr/bin/perl

# HTTP Header
print "Content-Type:application/octet-stream; name = \"FileName\"\r\n";
print "Content-Disposition: attachment; filename = \"FileName\"\r\n\n";

# Actual File Content will go hear.
open( FILE, "<FileName" );
while(read(FILE, $buffer, 100) ) {
   print("$buffer");
}

GET dan Metode POST

Anda pasti pernah menjumpai banyak situasi ketika Anda perlu meneruskan beberapa informasi dari browser Anda ke server web dan akhirnya ke Program CGI Anda yang menangani permintaan Anda. Browser paling sering menggunakan dua metode untuk meneruskan informasi ini ke server web. Metode ini adalahGET Metode dan POSTMetode. Mari kita periksa satu per satu.

Meneruskan Informasi menggunakan Metode GET

Metode GET mengirimkan informasi pengguna yang dikodekan yang ditambahkan ke URL halaman itu sendiri. Halaman dan informasi yang disandikan dipisahkan oleh? karakter sebagai berikut -

http://www.test.com/cgi-bin/hello.cgi?key1=value1&key2=value2

Metode GET adalah metode default untuk meneruskan informasi dari browser ke server web dan menghasilkan string panjang yang muncul di kotak Lokasi: browser Anda. Anda tidak boleh menggunakan metode GET jika Anda memiliki kata sandi atau informasi sensitif lainnya untuk diteruskan ke server. Metode GET memiliki batasan ukuran: hanya 1024 karakter yang dapat dikirimkan dalam string permintaan.

Informasi ini diteruskan menggunakan QUERY_STRING header dan akan dapat diakses dalam Program CGI Anda melalui variabel lingkungan QUERY_STRING yang dapat Anda parse dan digunakan dalam program CGI Anda.

Anda dapat menyampaikan informasi hanya dengan menggabungkan pasangan kunci dan nilai bersama dengan URL apa pun atau Anda dapat menggunakan tag <FORM> HTML untuk menyampaikan informasi menggunakan metode GET.

Contoh URL Sederhana: Dapatkan Metode

Berikut adalah URL sederhana yang akan mengirimkan dua nilai ke program hello_get.cgi menggunakan metode GET.

http://www.tutorialspoint.com/cgi-bin/hello_get.cgi?first_name=ZARA&last_name=ALI

Dibawah ini hello_get.cgi script untuk menangani input yang diberikan oleh web browser.

#!/usr/bin/perl

local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "GET") {
   $buffer = $ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~ s/%(..)/pack("C", hex($1))/eg;
   $FORM{$name} = $value;
}
$first_name = $FORM{first_name};
$last_name  = $FORM{last_name};

print "Content-type:text/html\r\n\r\n";
print "<html>";
print "<head>";
print "<title>Hello - Second CGI Program</title>";
print "</head>";
print "<body>";
print "<h2>Hello $first_name $last_name - Second CGI Program</h2>";
print "</body>";
print "</html>";

1;

Contoh FORMULIR Sederhana: Metode GET

Berikut adalah contoh sederhana, yang meneruskan dua nilai menggunakan HTML FORM dan tombol kirim. Kami akan menggunakan script CGI hello_get.cgi yang sama untuk menangani input ini.

<FORM action = "/cgi-bin/hello_get.cgi" method = "GET">
First Name: <input type = "text" name = "first_name">  <br>

Last Name: <input type = "text" name = "last_name">
<input type = "submit" value = "Submit">
</FORM>

Berikut adalah keluaran sebenarnya dari pengkodean formulir di atas. Sekarang Anda dapat memasukkan Nama Depan dan Belakang dan kemudian klik tombol kirim untuk melihat hasilnya.

Meneruskan Informasi menggunakan Metode POST

Metode yang lebih dapat diandalkan untuk menyampaikan informasi ke program CGI adalah POSTmetode. Ini mengemas informasi dengan cara yang persis sama seperti metode GET, tetapi alih-alih mengirimkannya sebagai string teks setelah file?di URL, ini mengirimkannya sebagai pesan terpisah sebagai bagian dari header HTTP. Server web menyediakan pesan ini ke skrip CGI dalam bentuk input standar.

Di bawah ini adalah hasil modifikasi hello_post.cgiscript untuk menangani input yang diberikan oleh web browser. Skrip ini akan menangani metode GET serta POST.

#!/usr/bin/perl

local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "POST") {
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
   $buffer = $ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~ s/%(..)/pack("C", hex($1))/eg;
   $FORM{$name} = $value;
}
$first_name = $FORM{first_name};
$last_name  = $FORM{last_name};

print "Content-type:text/html\r\n\r\n";
print "<html>";
print "<head>";
print "<title>Hello - Second CGI Program</title>";
print "</head>";
print "<body>";
print "<h2>Hello $first_name $last_name - Second CGI Program</h2>";
print "</body>";
print "</html>";

1;

Mari kita ambil contoh yang sama seperti di atas, yaitu meneruskan dua nilai menggunakan HTML FORM dan tombol submit. Kami akan menggunakan skrip CGI hello_post.cgi untuk menangani input ini.

<FORM action = "/cgi-bin/hello_post.cgi" method = "POST">
First Name: <input type = "text" name = "first_name">  <br>

Last Name: <input type = "text" name = "last_name">

<input type = "submit" value = "Submit">
</FORM>

Berikut adalah output sebenarnya dari pengkodean formulir di atas, Anda memasukkan Nama Depan dan Belakang dan kemudian klik tombol kirim untuk melihat hasilnya.

Meneruskan Data Kotak Centang ke Program CGI

Kotak centang digunakan ketika lebih dari satu opsi diperlukan untuk dipilih. Berikut adalah contoh kode HTML untuk formulir dengan dua kotak centang.

<form action = "/cgi-bin/checkbox.cgi" method = "POST" target = "_blank">
<input type = "checkbox" name = "maths" value = "on"> Maths
<input type = "checkbox" name = "physics" value = "on"> Physics
<input type = "submit" value = "Select Subject">
</form>

Hasil dari kode ini adalah bentuk berikut -

Dibawah ini checkbox.cgi script untuk menangani input yang diberikan oleh web browser untuk tombol radio.

#!/usr/bin/perl

local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "POST") {
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
   $buffer = $ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~ s/%(..)/pack("C", hex($1))/eg;
   $FORM{$name} = $value;
}
if( $FORM{maths} ) {
   $maths_flag ="ON";
} else {
   $maths_flag ="OFF";
}
if( $FORM{physics} ) {
   $physics_flag ="ON";
} else {
   $physics_flag ="OFF";
}

print "Content-type:text/html\r\n\r\n";
print "<html>";
print "<head>";
print "<title>Checkbox - Third CGI Program</title>";
print "</head>";
print "<body>";
print "<h2> CheckBox Maths is : $maths_flag</h2>";
print "<h2> CheckBox Physics is : $physics_flag</h2>";
print "</body>";
print "</html>";

1;

Meneruskan Data Tombol Radio ke Program CGI

Tombol Radio digunakan ketika hanya satu opsi yang diperlukan untuk dipilih. Berikut adalah contoh kode HTML untuk formulir dengan dua tombol radio -

<form action = "/cgi-bin/radiobutton.cgi" method = "POST" target = "_blank">
<input type = "radio" name = "subject" value = "maths"> Maths
<input type = "radio" name = "subject" value = "physics"> Physics
<input type = "submit" value = "Select Subject">
</form>

Hasil dari kode ini adalah bentuk berikut -

Dibawah ini radiobutton.cgi script untuk menangani masukan yang diberikan oleh browser web untuk tombol radio.

#!/usr/bin/perl

local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "POST") {
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
   $buffer = $ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~ s/%(..)/pack("C", hex($1))/eg;
   $FORM{$name} = $value;
}
$subject = $FORM{subject};

print "Content-type:text/html\r\n\r\n";
print "<html>";
print "<head>";
print "<title>Radio - Fourth CGI Program</title>";
print "</head>";
print "<body>";
print "<h2> Selected Subject is $subject</h2>";
print "</body>";
print "</html>";

1;

Meneruskan Data Area Teks ke Program CGI

Elemen textarea digunakan saat teks multiline harus diteruskan ke Program CGI. Berikut adalah contoh kode HTML untuk formulir dengan kotak TEXTAREA -

<form action = "/cgi-bin/textarea.cgi" method = "POST" target = "_blank">
<textarea name = "textcontent" cols = 40 rows = 4>
Type your text here...
</textarea>
<input type = "submit" value = "Submit">
</form>

Hasil dari kode ini adalah bentuk berikut -

Di bawah ini adalah textarea.cgi script untuk menangani input yang diberikan oleh web browser.

#!/usr/bin/perl

local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "POST") {
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
   $buffer = $ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~ s/%(..)/pack("C", hex($1))/eg;
   $FORM{$name} = $value;
}
$text_content = $FORM{textcontent};

print "Content-type:text/html\r\n\r\n";
print "<html>";
print "<head>";
print "<title>Text Area - Fifth CGI Program</title>";
print "</head>";
print "<body>";
print "<h2> Entered Text Content is $text_content</h2>";
print "</body>";
print "</html>";

1;

Meneruskan Data Drop Down Box ke Program CGI

Kotak drop-down digunakan ketika kami memiliki banyak opsi yang tersedia tetapi hanya satu atau dua yang akan dipilih. Berikut adalah contoh kode HTML untuk formulir dengan satu kotak drop-down

<form action = "/cgi-bin/dropdown.cgi" method = "POST" target = "_blank">
<select name = "dropdown">
<option value = "Maths" selected>Maths</option>
<option value = "Physics">Physics</option>
</select>
<input type = "submit" value = "Submit">
</form>

Hasil dari kode ini adalah bentuk berikut -

Di bawah ini adalah dropdown.cgi script untuk menangani input yang diberikan oleh web browser.

#!/usr/bin/perl

local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "POST") {
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
   $buffer = $ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~ s/%(..)/pack("C", hex($1))/eg;
   $FORM{$name} = $value;
}
$subject = $FORM{dropdown};

print "Content-type:text/html\r\n\r\n";
print "<html>";
print "<head>";
print "<title>Dropdown Box - Sixth CGI Program</title>";
print "</head>";
print "<body>";
print "<h2> Selected Subject is $subject</h2>";
print "</body>";
print "</html>";

1;

Menggunakan Cookies di CGI

Protokol HTTP adalah protokol tanpa negara. Tetapi untuk situs web komersial, diperlukan untuk menjaga informasi sesi di antara halaman yang berbeda. Misalnya satu pendaftaran pengguna berakhir setelah transaksi yang membentang melalui banyak halaman. Tetapi bagaimana cara menjaga informasi sesi pengguna di semua halaman web?

Dalam banyak situasi, menggunakan cookie adalah metode paling efisien untuk mengingat dan melacak preferensi, pembelian, komisi, dan informasi lain yang diperlukan untuk pengalaman pengunjung atau statistik situs yang lebih baik.

Bagaimana itu bekerja

Server Anda mengirimkan beberapa data ke browser pengunjung dalam bentuk cookie. Browser mungkin menerima cookie. Jika ya, itu disimpan sebagai catatan teks biasa di hard drive pengunjung. Sekarang, saat pengunjung tiba di halaman lain di situs Anda, cookie tersedia untuk diambil. Setelah diambil, server Anda tahu / mengingat apa yang disimpan.

Cookie adalah rekaman data teks biasa dari 5 bidang dengan panjang variabel -

  • Expires- Tanggal cookie akan kedaluwarsa. Jika ini kosong, cookie akan kedaluwarsa saat pengunjung keluar dari browser.

  • Domain - Nama domain situs Anda.

  • Path- Jalur ke direktori atau halaman web yang menyetel cookie. Ini mungkin kosong jika Anda ingin mengambil cookie dari direktori atau halaman manapun.

  • Secure- Jika bidang ini berisi kata "aman" maka cookie hanya dapat diambil dengan server aman. Jika bidang ini kosong, tidak ada batasan seperti itu.

  • Name = Value - Cookie disetel dan ditinjau ulang dalam bentuk pasangan kunci dan nilai.

Menyiapkan Cookies

Sangat mudah untuk mengirim cookie ke browser. Cookie ini akan dikirim bersama dengan HTTP Header. Dengan asumsi Anda ingin menyetel UserID dan Kata Sandi sebagai cookie. Jadi itu akan dilakukan sebagai berikut -

#!/usr/bin/perl

print "Set-Cookie:UserID = XYZ;\n";
print "Set-Cookie:Password = XYZ123;\n";
print "Set-Cookie:Expires = Tuesday, 31-Dec-2007 23:12:40 GMT";\n";
print "Set-Cookie:Domain = www.tutorialspoint.com;\n";
print "Set-Cookie:Path = /perl;\n";
print "Content-type:text/html\r\n\r\n";
...........Rest of the HTML Content goes here....

Di sini kami menggunakan Set-CookieHeader HTTP untuk menyetel cookie. Ini opsional untuk menyetel atribut cookie seperti Kedaluwarsa, Domain, dan Jalur. Penting untuk dicatat bahwa cookie diatur sebelum mengirim garis ajaib"Content-type:text/html\r\n\r\n.

Mengambil Cookies

Sangat mudah untuk mengambil semua cookie yang disetel. Cookie disimpan dalam variabel lingkungan CGI HTTP_COOKIE dan mereka akan memiliki bentuk berikut.

key1 = value1;key2 = value2;key3 = value3....

Berikut adalah contoh cara mengambil cookie.

#!/usr/bin/perl
$rcvd_cookies = $ENV{'HTTP_COOKIE'};
@cookies = split /;/, $rcvd_cookies;
foreach $cookie ( @cookies ) {
   ($key, $val) = split(/=/, $cookie); # splits on the first =.
   $key =~ s/^\s+//;
   $val =~ s/^\s+//;
   $key =~ s/\s+$//;
   $val =~ s/\s+$//;
   if( $key eq "UserID" ) {
      $user_id = $val;
   } elsif($key eq "Password") {
      $password = $val;
   }
}
print "User ID  = $user_id\n";
print "Password = $password\n";

Ini akan menghasilkan hasil sebagai berikut, asalkan cookie di atas telah disetel sebelum memanggil skrip cookie pengambilan.

User ID = XYZ
Password = XYZ123

Modul dan Perpustakaan CGI

Anda akan menemukan banyak modul built-in melalui internet yang menyediakan fungsi langsung untuk digunakan dalam program CGI Anda. Berikut ini yang penting sekali.

  • Modul CGI

  • Berkeley cgi-lib.pl