Perl ile CGI Programlama

 

 

BAŞLANGIÇ


Bu kitapçık web tasarımcıları, bu işten ekmek yiyenler, öğrenciler, öğretmenler ve CGI programlamayı öğrenmek isteyen herkes için düşünülmüştür. Başlamak için sadece HTML yazmayı bilmeniz yeterlidir ve herhangi bir programlama tecrübenizin olmasına gerek yoktur. Eğer bir web sayfanız varsa ve sayfanızı CGI’lar yazarak etkileşimli bir hale getirmek istiyorsanız bu kitapçık sizin için biçilmiş kaftan...

CGI Nedir?

CGI, Common Gateway Interface (Ortak Geçit Arayüzü) kelimelerinin kısaltılmışıdır. CGI terim olarak, bir web sunucusu üzerinden; verileri veritabanlarından, dökümanlardan ve diğer programlardan elde etme ve verileri hazırlayıp yine web üzerinden web tarayıcılara sunma metodudur. Daha açıkçası CGI, web tabanlı programlama metodudur. Web tabanlı programlamayı ana hatlarıyla ikiye ayırabiliriz: Sunucu (server) tarafinda programlama ve istemci (client) tarafinda programlama. (yada her ikisi aynı anda.) İstemci tarafında programlama için Java, JavaScript veya VBScript iyi bir seçim olabilir. Sunucu tarafında programlama için en uygun seçenek (UNIX platformu için ve Windows NT için de) CGI’dır. Bir CGI programı kısıtlama olmaksızın istenilen herhangi bir programlama dili ile yazılabilir, ancak Perl en popüler CGI programlama dilidir, çünkü daha çok bu amaçla tasarlanmiştır.

Niçin CGI Öğrenmeliyiz?

Eğer web sayfaları tasarlıyorsanız bazen sayfanızı kaç kişinin ziyaret ettiğini öğrenmek isteyebilirsiniz, ziyaretçilerin size mesaj bırakmalarını isteyebilirsiniz yada bir sipariş geçmelerini sağlamak ve buna benzer şeyler isteyebilirsiniz. CGI, tüm bunları ve fazlasını yapmak için size bir takım imkanlar sunar. Günümüzde CGI, basit bir sayaç veya e-mail programından tutun da daha karmaşık ve veritabanı kullanan pek çok siteye kadar her yerde kullanılmaktadır. Mesela; hepimizin bildiği amazon.com, yahoo.com veya hotmail.com sitelerinin gerisinde ne var diye sorarsak, CGI programlamanın olduğunu görürüz. Şimdilerde CGI bilmek, işverenlerin en çok aradıkları bir husus olmuştur ve CGI öğrenerek iyi iş bulma şansınız artar yada mesleğinizde çok hızlı yükselebilirsiniz...

Başlamak İçin Nelere İhtiyacımız Var?

Bu kitapçık, aslında bir UNIX işletim sistemi üzerinde Perl kullanarak CGI programları geliştirmek için hazırlanmıştır. Eğer UNIX bilmiyorsanız telaşlanmayın, gerektiği yerde yeterinde UNIX bilgisi de verilecektir. Ayrıca her bölümde yazdığınız CGI programınızı kullanabilmek için gerekli UNIX komutları açıklanacaktır. Eğer kullanabileceğiniz bir UNIX hesabınız yoksa bana bildirin, derhal ücretsiz bir hesap açalım.

Eğer UNIX yerine Win NT kullanıyorsanız, işiniz çok kolay, Perl öğrenmek daha da kolay. çoğu NT makinası zaten Perl kodunu (aynen UNIX makinaları gibi) doğrudan çalıştırmaktadır. Ancak, buradaki bazı örnekler UNIX’e özgü oldukları için Win NT’de çalışmayacaklardır. Windows altında Perl çalısmak için http://reference.perl.com/query.cgi?windows adresini ziyaret ediniz.

Eğer kendi bilgisayarınızda, Windows 98 ortamında çalışmak isterseniz, http://www.perl.com adresinden uygun bir Perl yorumlayıcısı ve http://www.solutionsoft.com’dan PerlBuilder trial indirip kurmalısınız. Tabii bir de Perl desteği olan kişisel web sunucusu kurmak gerekecektir... örneğin, Win 98 CD’sinde yer alan Personal Web Server (PWS) uygun olabilir. Gerekli programları kurduktan sonra PWS’nin Perl kodlarını işleyebilmesi için Windows’un registry ayarlarıyla oynamak gerekir. Bunun için registry’de,

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\Script Map

bölümüne aşağıdaki string value'leri oluşturmalısınız.

  .pl  --> c:\Perl\bin\perl.exe %s %s
  .cgi --> c:\Perl\bin\perl.exe %s %s

Not: Bu değişikliklerin etkin olabilmesi için Windows'u yeniden başlatmanız gerekir... unutmayın.

Kitapçıkta verilen örnekler, ekte topluca verilmiştir Aynı örnekleri http://alaeddin.cc.selcuk.edu.tr/~adem/cgi-kitap/cgi-kitap.zip dosyasında bulabilirsiniz.

Kitapçıkta tüm Perl ve HTML kodları diğerlerinden kolayca farkedilsin diye daktilo karakteri ile yazılmıştır. örneğin;

print "Bu bir ekrana yazdırma deyimidir\n";