CGI Ortam Değişkenleri

8/5/2008 · Kategori: WEBMASTER


Ortam değişkenleri CGI programı çalıştırılıdığı zaman browser'ınızın (ve web server'ınızın) programa gönderdiği bilgilerdir. Ortam değişkenleri %ENV isimli Hash değişkende saklanır.

 CGI Ortam Değişkenleri
 DOCUMENT_ROOT  Server'ınızın kök dizinini verir.
 HTTP_COOKIE  Eğer varsa ziyaretçinin "cookie"sini verir.
 HTTP_HOST  Server'ınızın "hostname"ini verir.
 HTTP_REFERER  Scriptin çağrıldığı sayfanın adresini verir.
 HTTP_USER_AGENT  Ziyaretçinin browser'ının tipini verir.
 PATH  Server'ınızın "system path"ini verir. (Genelde /bin, /usr/sbin vs.)
 QUERY_STRING  GET metodu ile yollanan bilgiyi verir.
 REMOTE_ADDR  Ziyaretçinin IP adresini verir.
 REMOTE_HOST  Ziyaretçinin "hostname"ini verir. (*)
 REMOTE_PORT  Ziyaretçinin web server'ınıza bağlandığı portu verir.
 REMOTE_USER  Ziyaretçinin kullanıcı adını verir. (.htaccess korumalı sayfalar için)
 REQUEST_METHOD  Bilgi gönderme metodunu verir. (GET ya da POST)
 ******_FILENAME  Scriptin tam yolunu verir.
 SERVER_ADMIN  Server'ınızın webadmin'inin e-mail adresini verir.
 SERVER_NAME  Server'ınızın tam domain adını verir. (Örn: cc.sau.edu.tr)
 SERVER_PORT  Server'ınızın dinlemede olduğu portu verir.
 SERVER_SOFTWARE  Serverdaki web server programını verir. (Örn: Apache 1.3)

(*) Eğer server'ınızda "reverse-name-lookups" yoksa REMOTE_HOST ziyaretçinin IP adresini verir.

Bazı server'larda bunlardan başka değişkenler de olabiliyor. Daha fazla bilgi için server'ınızın dökümanlarını inceleyiniz. Farketmişseniz bazı değişkenler server'la ilgili, bazıları ise ziyaretçi ile ilgili bilgileri içeriyor. Server'la ilgili olanların programa bildirdiği bilgiler o server'da çalışan bütün CGI programları için aynı olacaktır. Fakat ziyaretçi ile ilgili bilgiler program her çalıştırıldığında farklı olabilir.

Her CGI çalıştırıldığında bütün ortam değişkenleri atanmaz. REMOTE_USER değişkeni sadece .htaccess dosyası ile korunan dizin ya da altdizinler için atanır. Bu durumda REMOTE_USER değişkeninin alacağı değer .htaccess dosyasındaki kullanıcı adıdır.

%ENV değişkeni CGI çalıştırıldığında otomatik olarak atanır ve isterseniz tamamını isterseniz sadece belli değerleri kullanabilirsiniz. Mesela aşağıdaki kod ile ziyaretçinin IP adresini yazdırabilirsiniz.

    print "IP adresiniz: $ENV{'REMOTE_ADDR'}n";

Şimdi bütün ortam değişkenlerini yazdıran bir CGI yazalım. Yeni bir dosya oluşturun, "ortam.cgi" adıyla kaydedin ve içine şunları yazın:

    #!/usr/bin/perl

    print "Content-type:text/htmlnn";
    print < Ortam Değişkenleri





    HTMLSonu
    ;

    foreach $anahtar (sort(keys %ENV)) {
       print "$anahtar = $ENV{$anahtar}
    n";
    }

    print "";
     

Denemek için tıklayın

Scripti kaydedin, erişim yetkilerini 755 olarak ayarlayın ve browser'ınızdan çağırın. Eğer hata mesajı alırsanız programı UNIX'te çalışmayı deneyip hatanın nerede olduğunu öğrenebileceğinizi hatırlayın.

Bu örnekte sort fonksiyonu kullanılarak %ENV değişkeninin anahtarları alfabetik sıraya koyduk. Perl'ün sort fonksiyonu karakter değerlerini karşılaştırdığı için sayıları düzgün bir şekilde sıraya koyamaz.

Kalıcı Bağlantı Yorum (0) Yorum yaz! Arkadaşına Gönder!

0 yorum yazılmıştır

« Önceki :: Sonraki »