Apa itu CGI
CGI saat ini dikelola oleh NCSA, yang mendefinisikan CGI sebagai berikut:
CGI (Common Gateway Interface), Common Gateway Interface, adalah program yang berjalan di server seperti server HTTP dan menyediakan antarmuka dengan halaman HTML klien.
penjelajahan web
Untuk lebih memahami cara kerja CGI, kita bisa memulai dengan proses mengklik link atau URL pada halaman web:
1. Gunakan browser Anda untuk mengakses URL dan terhubung ke server web HTTP.
2. Setelah menerima informasi permintaan, server web akan mengurai URL dan memeriksa apakah file yang diakses ada di server. Jika file tersebut ada, maka akan mengembalikan konten file, jika tidak maka akan mengembalikan pesan kesalahan.
3. Browser menerima informasi dari server dan menampilkan file atau pesan kesalahan yang diterima.
Program CGI dapat berupa skrip Python, skrip PERL, skrip SHELL, program C atau C++, dll.
Diagram arsitektur CGI
Dukungan dan konfigurasi server web
Sebelum Anda melakukan pemrograman CGI, pastikan server web Anda mendukung CGI dan telah mengkonfigurasi pengendali CGI.
Apache mendukung konfigurasi CGI:
Siapkan direktori CGI:
SkripAlias /cgi-bin/ /var/www/cgi-bin/
Semua program CGI eksekusi server HTTP disimpan dalam direktori yang telah dikonfigurasi sebelumnya. Direktori ini disebut direktori CGI, dan berdasarkan konvensi, dinamai /var/www/cgi-bin.
File CGI memiliki ekstensi .cgi, dan Perl juga dapat menggunakan ekstensi .pl.
Secara default, konfigurasi server Linux berjalan di direktori cgi-bin di /var/www.
Jika Anda ingin menentukan direktori lain untuk menjalankan skrip CGI, Anda dapat memodifikasi file konfigurasi httpd.conf sebagai berikut:
<Direktori "/var/www/cgi-bin"> AllowOverride Tidak Ada Opsi +ExecCGI Urutan izinkan, tolak Izinkan dari semua</Direktori>
Tambahkan akhiran .pl ke AddHandler sehingga kita dapat mengakses file skrip Perl yang diakhiri dengan .pl:
Skrip cgi AddHandler .cgi .pl .py
Program CGI pertama
Di bawah ini kita buat file test.cgi, kodenya sebagai berikut:
kode test.cgi
#!/usr/bin/Perl mencetak " Tipe konten: teks/html r n r n " ; cetak ' <html> ' ; ' <kepala> ' ; ' <meta
charset ="utf-8"> ' ; ' <title>Tutorial Pembuat Kode (codercto.com) </title> ' ; ' </kepala> ' ; ' <tubuh> ' ; ' <h2>Halo
Kata ! </h2> ' ; ' <p>Program CGI pertama dari Tutorial Programmer. </p> ' ; ' </tubuh> ' ; ' </html> ' ; Kemudian buka http://localhost/cgi-bin/test.cgi melalui browser, hasil outputnya seperti berikut:
Konten keluaran dari baris pertama skrip "Jenis konten: teks/htmlrnrn" dikirim ke browser dan memberi tahu browser bahwa jenis konten yang ditampilkan adalah "teks/html".
Tajuk HTTP
"Jenis konten: teks/html" dalam konten file test.cgi adalah bagian dari header HTTP, yang dikirim ke browser untuk memberi tahu browser jenis konten file.
Format header HTTPnya adalah sebagai berikut:
Nama bidang HTTP: konten bidang
Misalnya:
Tipe konten:teks/htmlrnrn
Tabel berikut memperkenalkan informasi yang biasa digunakan dalam header HTTP dalam program CGI:
kepala | menggambarkan |
---|
Tipe konten: | Informasi MIME yang diminta sesuai dengan entitas. Misalnya: Tipe konten:teks/html |
Kedaluwarsa: Tanggal | Tanggal dan waktu kedaluwarsa respons |
Lokasi: URL | Digunakan untuk mengarahkan penerima ke lokasi URL yang tidak diminta untuk menyelesaikan permintaan atau mengidentifikasi sumber daya baru. |
Terakhir diubah: Tanggal | Waktu modifikasi terakhir dari sumber daya yang diminta |
Panjang konten: N | Panjang konten yang diminta |
Set-Cookie: String | Setel Cookie HTTP |
Variabel lingkungan CGI
Semua program CGI menerima variabel lingkungan berikut, yang memainkan peran penting dalam program CGI:
nama variabel | menggambarkan |
---|
CONTENT_TYPE | Nilai variabel lingkungan ini menunjukkan tipe MIME dari informasi yang diteruskan. Saat ini, variabel lingkungan CONTENT_TYPE umumnya: application/x-www-form-urlencoded, yang menunjukkan bahwa data berasal dari formulir HTML. |
CONTENT_LENGTH | Jika metode transfer informasi antara server dan program CGI adalah POST, variabel lingkungan ini adalah jumlah byte data valid yang dapat dibaca dari input standar STDIN. Variabel lingkungan ini harus digunakan saat membaca data yang dimasukkan. |
HTTP_COOKIE | Konten COOKIE di klien. |
HTTP_USER_AGENT | Memberikan informasi browser pelanggan termasuk nomor versi atau data kepemilikan lainnya. |
PATH_INFO | Nilai variabel lingkungan ini mewakili informasi jalur lain yang mengikuti nama program CGI. Ini sering muncul sebagai parameter program CGI. |
QUERY_STRING | Jika metode transfer informasi antara server dan program CGI adalah GET, nilai variabel lingkungan ini adalah informasi yang ditransfer. Informasi ini mengikuti nama program CGI, dipisahkan dengan tanda tanya '?'. |
REMOTE_ADDR | Nilai variabel lingkungan ini adalah alamat IP klien yang mengirimkan permintaan, seperti 192.168.1.67 di atas. Nilai ini selalu ada. Dan ini adalah pengidentifikasi unik yang perlu diberikan oleh klien Web ke server Web, yang dapat digunakan dalam program CGI untuk membedakan klien Web yang berbeda. |
REMOTE_HOST | Nilai variabel lingkungan ini berisi nama host klien yang mengirimkan permintaan CGI. Jika kueri yang ingin Anda kueri tidak didukung, variabel lingkungan ini tidak perlu ditentukan. |
PERMINTAAN_METHOD | Menyediakan metode pemanggilan skrip. Untuk skrip yang menggunakan protokol HTTP/1.0, hanya GET dan POST yang bermakna. |
SCRIPT_FILENAME | Jalur lengkap ke skrip CGI |
SCRIPT_NAME | Nama skrip CGI |
SERVER_NAME | Ini adalah nama host, alias, atau alamat IP server WEB Anda. |
SERVER_PERANGKAT LUNAK | Nilai variabel lingkungan ini berisi nama dan nomor versi server HTTP yang memanggil program CGI. Misalnya nilai di atas adalah Apache/2.2.14(Unix) |
Berikut ini adalah skrip CGI sederhana yang menampilkan variabel lingkungan CGI:
Contoh
#!/usr/bin/Perl mencetak " Tipe konten: teks/html n n " ; cetak ' <meta
charset ="utf-8"> ' ; " <font size=+1>Variabel lingkungan:</font> n " ; ( mengurutkan kunci %ENV ) { mencetak " <b> $_ </b>: $ENV { $_ } <br> n " } 1 ; Pengunduhan berkas
Jika kita ingin mendownload file melalui Perl CGI, kita perlu mengatur informasi header yang berbeda, seperti yang ditunjukkan di bawah ini:
Contoh
#!/usr/bin/Perl # Tajuk HTTP mencetak " Tipe-Konten:aplikasi/aliran oktet; nama= " Nama File " r n " ; " Content-Disposition: attachment; filename= " FileName " r n n " ; # Konten File Sebenarnya akan didengar. membuka ( FILE , " <Nama File " ) ; sementara ( baca ( FILE , $buffer , 100 ) ) { cetak ( " $ buffer " ) ; Transfer data menggunakan metode GET
Metode GET mengirimkan informasi pengguna yang dikodekan ke server. Informasi data disertakan dalam URL halaman yang diminta, dipisahkan dengan "?", seperti yang ditunjukkan di bawah ini:
http://www.test.com/cgi-bin/test.cgi?key1=value1&key2=value2
Beberapa catatan tambahan tentang permintaan GET:
Permintaan GET dapat di-cache
Permintaan GET tetap ada dalam riwayat browser
Permintaan GET dapat di-bookmark
Permintaan GET tidak boleh digunakan saat menangani data sensitif
Permintaan GET memiliki batasan panjang
Permintaan GET hanya boleh digunakan untuk mengambil data
Contoh url sederhana: metode GET
Berikut ini adalah URL sederhana yang menggunakan metode GET untuk mengirimkan dua parameter ke program test.cgi:
/cgi-bin/test.cgi?name=Tutorial Pembuat Kode&url=http://www.codercto.com
Berikut kode file test.cgi:
Contoh
#!/usr/bin/Perl lokal ( $buffer , @pairs , $pair , $name , $value , %FORM ) # Membaca informasi teks $ENV { ' REQUEST_METHOD ' } =~ tr / a - z / A - Z / ; ( $ENV { ' REQUEST_METHOD ' } persamaan " MENDAPATKAN " ) { $ buffer = $ENV { ' QUERY_STRING ' } } # Baca informasi pasangan nama/nilai @pairs = split ( /&/, $ buffer ) ; $pasangan ( @pasangan ) { ( $nama , $nilai ) = terbagi ( /=/, $pasangan ) ; $nilai =~ tr //+/ / ; $nilai =~ s / % ( .. ) / paket ( " C " , hex ( $1 ) ) / misalnya ; $BENTUK { $ nama } = $nilai } $nama = $BENTUK { nama } ; $ url = $BENTUK { url } ; " Tipe konten: teks/html r n r n " ; cetak " <html> " ; cetak " <kepala> " ; ' <meta
charset ="utf-8"> ' ; ' <title>Tutorial Pembuat Kode (codercto.com) </title> ' ; " </kepala> " ; " <tubuh> " ; " <h2> $nama URL: $url </h2> " ; cetak " </tubuh> " ; " </html> " 1 ; Periksa browser dan hasilnya adalah sebagai berikut:
Contoh bentuk sederhana: metode GET
Berikut ini adalah form HTML yang menggunakan metode GET untuk mengirimkan dua data ke server. Script server yang dikirimkan juga berupa file test.cgi.
kode file test.html
< ! html > <html> <kepala> < meta rangkaian karakter = " utf-8 " > <title> Tutorial Pembuat Kode ( codercto.com ) </title> </kepala> <tubuh> < bentuk tindakan = " /cgi-bin/test.cgi " metode = " dapatkan " > nama situs: < masukan ketik = " teks " nama = " nama " > < br /> URL Situs: < masukan ketik = " teks " nama = " url " /> < masukan ketik = " kirim " nilai = " kirim " /> </bentuk> </tubuh> </html> Di browser, efek eksekusinya adalah sebagai berikut:
Lulus data menggunakan metode POST
Lebih aman dan andal menggunakan metode POST untuk mengirimkan data ke server. Beberapa informasi sensitif seperti kata sandi pengguna perlu menggunakan POST untuk mengirimkan data.
Berikut ini juga test.cgi, yang juga dapat menangani data formulir POST yang dikirimkan oleh browser:
kode test.cgi
#!/usr/bin/Perl lokal ( $buffer , @pairs , $pair , $name , $value , %FORM ) # Membaca informasi teks $ENV { ' REQUEST_METHOD ' } =~ tr / a - z / A - Z / ; ( $ENV { ' REQUEST_METHOD ' } persamaan " POS " ) { baca ( STDIN , $ buffer , $ ENV { ' CONTENT_LENGTH ' } ) ; { $ buffer = $ENV { ' QUERY_STRING ' } } # Baca informasi pasangan nama/nilai @pairs = split ( /&/, $ buffer ) ; $pasangan ( @pasangan ) { ( $nama , $nilai ) = terbagi ( /=/, $pasangan ) ; $nilai =~ tr //+/ / ; $nilai =~ s / % ( .. ) / paket ( " C " , hex ( $1 ) ) / misalnya ; $BENTUK { $ nama } = $nilai } $nama = $BENTUK { nama } ; $ url = $BENTUK { url } ; " Tipe konten: teks/html r n r n " ; cetak " <html> " ; cetak " <kepala> " ; ' <meta
charset ="utf-8"> ' ; ' <title>Tutorial Pembuat Kode (codercto.com) </title> ' ; " </kepala> " ; " <tubuh> " ; " <h2> $nama URL: $url </h2> " ; cetak " </tubuh> " ; " </html> " 1 ; Berikut ini adalah form HTML yang menggunakan metode GET untuk mengirimkan dua data ke server. Script server yang dikirimkan juga berupa file test.cgi.
kode tes.html
< ! html > <html> <kepala> < meta rangkaian karakter = " utf-8 " > <title> Tutorial Pembuat Kode ( codercto.com ) </title> </kepala> <tubuh> < bentuk tindakan = " /cgi-bin/test.cgi " metode = " posting " > Nama situs : < masukan ketik = " teks " nama = " nama " > < br /> URL Situs: < masukan ketik = " teks " nama = " url " /> < masukan ketik = " kirim " nilai = " kirim " /> </bentuk> </tubuh> </html> Di browser, efek eksekusinya adalah sebagai berikut:
Lewati data kotak centang melalui program CGI
Checkbox digunakan untuk mengirimkan satu atau lebih data pilihan. Kode test.html adalah sebagai berikut:
kode tes.html
< ! html > <html> <kepala> < meta rangkaian karakter = " utf-8 " > <title> Tutorial Pembuat Kode ( codercto.com ) </title> </kepala> <tubuh> < bentuk tindakan = " /cgi-bin/test.cgi " metode = " POSTING " sasaran = " _kosong " > < masukan ketik = " kotak centang " nama = " kodercto " nilai = " pada " /> Tutorial Pembuat Kode < masukan ketik = " kotak centang " nama = " google " nilai = " pada " /> Google < masukan ketik = " kirim " value = " Pilih situs " /> </bentuk> </tubuh> </html> Berikut ini adalah kode file test.cgi:
kode test.cgi
#!/usr/bin/Perl lokal ( $buffer , @pairs , $pair , $name , $value , %FORM ) ; # Baca informasi $ENV { ' REQUEST_METHOD ' } =~ tr / a - z / A - Z / ; ( $ENV { ' REQUEST_METHOD ' } persamaan " POS " ) { baca ( STDIN , $ buffer , $ ENV { ' CONTENT_LENGTH ' } ) ; { $ buffer = $ENV { ' QUERY_STRING ' } } # Baca informasi pasangan nama/nilai @pairs = split ( /&/, $ buffer ) ; $pasangan ( @pasangan ) { ( $nama , $nilai ) = terbagi ( /=/, $pasangan ) ; $nilai =~ tr //+/ / ; $nilai =~ s / % ( .. ) / paket ( " C " , hex ( $1 ) ) / misalnya ; $BENTUK { $ nama } = $nilai } jika ( $FORMULIR { kodekto } ) { $ codercto_flag = " AKTIF " } lain { $ codercto_flag = " MATI " ; jika ( $FORMULIR { google } ) { $ google_flag = " AKTIF " } lain { $ google_flag = " MATI " ; mencetak " Tipe konten: teks/html r n r n " ; cetak " <html> " ; cetak " <kepala> " ; ' <meta
charset ="utf-8"> ' ; ' <title>Tutorial Pembuat Kode (codercto.com) </title> ' ; " </kepala> " ; " <tubuh> " ; " <h2> Tutorial Pembuat Kode status yang dipilih: $ codercto_flag </h2> " ; " <h2> Status pemilihan Google: $google_flag </h2> " ; cetak " </tubuh> " ; " </html> " 1 ; Di browser, efek eksekusinya adalah sebagai berikut:
Lewati data Radio melalui program CGI
Radio hanya meneruskan satu data ke server. Kode test.html adalah sebagai berikut:
kode tes.html
< ! html > <html> <kepala> < meta rangkaian karakter = " utf-8 " > <title> Tutorial Pembuat Kode ( codercto.com ) </title> </kepala> <tubuh> < bentuk tindakan = " /cgi-bin/test.cgi " metode = " posting " sasaran = " _kosong " > < masukan ketik = " radio " nama = " situs " nilai = " kodercto " /> Tutorial Pembuat Kode < masukan ketik = " radio " nama = " situs " nilai = " google " /> Google < masukan ketik = " kirim " nilai = " kirim " /> </bentuk> </tubuh> </html> Kode skrip test.cgi adalah sebagai berikut:
kode test.cgi
#!/usr/bin/Perl lokal ( $buffer , @pairs , $pair , $name , $value , %FORM ) ; # Baca informasi $ENV { ' REQUEST_METHOD ' } =~ tr / a - z / A - Z / ; ( $ENV { ' REQUEST_METHOD ' } persamaan " POS " ) { baca ( STDIN , $ buffer , $ ENV { ' CONTENT_LENGTH ' } ) ; { $ buffer = $ENV { ' QUERY_STRING ' } } # Baca informasi pasangan nama/nilai @pairs = split ( /&/, $ buffer ) ; $pasangan ( @pasangan ) { ( $nama , $nilai ) = terbagi ( /=/, $pasangan ) ; $nilai =~ tr //+/ / ; $nilai =~ s / % ( .. ) / paket ( " C " , hex ( $1 ) ) / misalnya ; $BENTUK { $ nama } = $nilai } $situs = $ FORM { situs } ; " Tipe konten: teks/html r n r n " ; cetak " <html> " ; cetak " <kepala> " ; ' <meta
charset ="utf-8"> ' ; ' <title>Tutorial Pembuat Kode (codercto.com) </title> ' ; " </kepala> " ; " <tubuh> " ; " <h2> Situs web yang dipilih $site </h2> " ; cetak " </tubuh> " ; " </html> " 1 ; Di browser, efek eksekusinya adalah sebagai berikut:
Lewati data Textarea melalui program CGI
Textarea mengirimkan beberapa baris data ke server. Kode test.html adalah sebagai berikut:
kode tes.html
< ! html > <html> <kepala> < meta rangkaian karakter = " utf-8 " > <title> Tutorial Pembuat Kode ( codercto.com ) </title> </kepala> <tubuh> < bentuk tindakan = " /cgi-bin/test.cgi " metode = " posting " sasaran = " _kosong " > < area teks nama = " isi teks " kolom = " 40 " baris = " 4 " > Masukkan konten di sini... </ textarea > < masukan ketik = " kirim " nilai = " kirim " /> </bentuk> </tubuh> </html> Kode skrip test.cgi adalah sebagai berikut:
kode test.cgi
#!/usr/bin/Perl lokal ( $buffer , @pairs , $pair , $name , $value , %FORM ) ; # Baca informasi $ENV { ' REQUEST_METHOD ' } =~ tr / a - z / A - Z / ; ( $ENV { ' REQUEST_METHOD ' } persamaan " POS " ) { baca ( STDIN , $ buffer , $ ENV { ' CONTENT_LENGTH ' } ) ; { $ buffer = $ENV { ' QUERY_STRING ' } } # Baca informasi pasangan nama/nilai @pairs = split ( /&/, $ buffer ) ; $pasangan ( @pasangan ) { ( $nama , $nilai ) = terbagi ( /=/, $pasangan ) ; $nilai =~ tr //+/ / ; $nilai =~ s / % ( .. ) / paket ( " C " , hex ( $1 ) ) / misalnya ; $BENTUK { $ nama } = $nilai } $teks_konten = $BENTUK { konten teks } ; " Tipe konten: teks/html r n r n " ; cetak " <html> " ; cetak " <kepala> " ; ' <meta
charset ="utf-8"> ' ; ' <title>Tutorial Pembuat Kode (codercto.com) </title> ' ; " </kepala> " ; " <tubuh> " ; " <h2>Isi teks yang dimasukkan adalah: $text_content </h2> " ; print " </tubuh> " ; " </html> " 1 ; Di browser, efek eksekusinya adalah sebagai berikut:
Lewati data drop-down melalui program CGI
Kode kotak drop-down HTML adalah sebagai berikut:
kode tes.html
< ! html > <html> <kepala> < meta rangkaian karakter = " utf-8 " > <title> Tutorial Pembuat Kode ( codercto.com ) </title> </kepala> <tubuh> < bentuk tindakan = " /cgi-bin/test.cgi " metode = " posting " sasaran = " _kosong " > < pilih nama = " tarik-turun " > < pilihan nilai = " kodercto " dipilih > Tutorial Pembuat Kode </ opsi > < pilihan nilai = " google " > Google </ opsi > </pilih> < masukan ketik = " kirim " nilai = " kirim " /> </bentuk> </tubuh> </html> Kode skrip test.cgi adalah sebagai berikut:
kode test.cgi
#!/usr/bin/Perl lokal ( $buffer , @pairs , $pair , $name , $value , %FORM ) # Baca informasi $ENV { ' REQUEST_METHOD ' } =~ tr / a - z / A - Z / ; ( $ENV { ' REQUEST_METHOD ' } persamaan " POS " ) { baca ( STDIN , $ buffer , $ ENV { ' CONTENT_LENGTH ' } ) ; { $ buffer = $ENV { ' QUERY_STRING ' } } # Baca informasi pasangan nama/nilai @pairs = split ( /&/, $ buffer ) ; $pasangan ( @pasangan ) { ( $nama , $nilai ) = terbagi ( /=/, $pasangan ) ; $nilai =~ tr //+/ / ; $nilai =~ s / % ( .. ) / paket ( " C " , hex ( $1 ) ) / misalnya ; $BENTUK { $ nama } = $nilai } $situs = $BENTUK { tarik
- turun } ; " Tipe konten: teks/html r n r n " ; cetak " <html> " ; cetak " <kepala> " ; ' <meta
charset ="utf-8"> ' ; ' <title>Tutorial Pembuat Kode (codercto.com) </title> ' ; " </kepala> " ; " <tubuh> " ; " <h2>Website yang dipilih adalah: $ site </h2> " ; " </tubuh> " ; " </html> " 1 ; Di browser, efek eksekusinya adalah sebagai berikut:
Penggunaan cookie di CGI
Kelemahan besar dari protokol http adalah ia tidak menilai identitas pengguna, yang membawa ketidaknyamanan besar bagi pemrogram. Munculnya fungsi cookie menutupi kekurangan ini.
Cookie menulis data rekaman pada hard drive pelanggan melalui browser pelanggan ketika pelanggan mengakses skrip. Informasi data diambil saat pelanggan mengakses skrip lagi, sehingga mencapai fungsi diskriminasi identitas.
Sintaks kue
Pengiriman cookie http diimplementasikan melalui header http, yang lebih awal dari transfer file. Sintaks header set-cookie adalah sebagai berikut:
Set-cookie:nama=nama;kedaluwarsa=tanggal;jalur=jalur;domain=domain;aman
name=name: Nilai cookie perlu disetel (nama tidak boleh menggunakan " ; " dan " , "). Gunakan " ; " untuk memisahkan beberapa nilai nama, misalnya: name1=name1;name2=name2;name3=name3 .
expired=tanggal: masa berlaku cookie, format: expired="Wdy,DD-Senin-YYYY HH:MM:SS"
path=path: Tetapkan jalur yang didukung oleh cookie. Jika jalur adalah sebuah jalur, cookie akan berlaku pada semua file dan subdirektori dalam direktori ini. cookie akan efektif. Referensi akan berlaku pada file ini, misalnya: path="/cgi-bin/cookie.cgi".
domain=domain: Nama domain yang efektif untuk cookie, misalnya: domain="www.codercto.com"
aman: Jika tanda ini diberikan, berarti cookie hanya dapat diteruskan melalui server https dengan protokol SSL.
Penerimaan cookie dicapai dengan mengatur variabel lingkungan HTTP_COOKIE. Program CGI dapat memperoleh informasi cookie dengan mengambil variabel ini.
Pengaturan kue
Pengaturan cookie sangat sederhana, cookie akan dikirim secara terpisah di header http. Contoh berikut mengatur UserID, Password, dan expired pada cookies:
Contoh
#!/usr/bin/Perl mencetak " Set-Cookie:
UserID =XYZ; n " ; " Set-Cookie:Password=XYZ123; n " ; cetak " Set-Cookie:Kedaluwarsa=Selasa, 31-Des-2017 23:12:40 GMT " ; n " ;print " Set - Cookie : Domain = www .codercto com ; n " ; print " Set - Cookie : . Jalur =/ perl ; n " ;print " Jenis konten : teks / html r n r n " ;
....... Konten HTML lainnya Temukan Cookie
Halaman pengambilan informasi cookie sangat sederhana. Informasi cookie disimpan dalam variabel lingkungan CGI HTTP_COOKIE.
Contoh
#!/usr/bin/Perl $rcvd_cookies = $ENV { ' HTTP_COOKIE ' } ; @cookies = dibagi / ; / , $ rcvd_cookies ; $kue ( @kue ) { ( $key , $val ) = split ( /=/, $cookie ) ; # split pada yang pertama =. $kunci = ~ s /^ s +//; $val =~ s / ^ s +//; $ kunci =~ s / s + $// ; /; jika ( $kunci persamaan " ID Pengguna " ) { $user_id = $val ; } elsif ( $key persamaan " Kata Sandi " ) { $kata sandi = $ val ; } mencetak " ID Pengguna = $ user_id n " ; " Kata Sandi = $Kata Sandi n " ; Hasil keluaran dari contoh di atas adalah:
ID Pengguna = XYZKata Sandi = XYZ123
modul CGI
Perl menyediakan banyak modul CGI bawaan, dua modul berikut ini umum digunakan:
modul CGI
Berkeley cgi-lib.pl