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 <
HTMLSonu
;
foreach $anahtar (sort(keys %ENV)) {
print "$anahtar = $ENV{$anahtar}
n";
}
print "";
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.
0 yorum yazılmıştır