Antalya Tasarım Grubu - Web Sitesi Tasarım    ATG - Genel Bilgi Sayfaları Geri Ileri
CGI hakkında ön bilgi
CGI nedir, ne işe yarar?
Kişisel web server kurulumu
Programların çalışabilmesi için gerekli kodlar
Ekrana yazdırma ve ilk program
Perl diline giriþ
Değişkenler
Splice ve split fonksiyonlarý
Formları kullanma
Çevre değişkenleri
Döngüler
Mantıksal sınama
Matematiksel işlemler
Dosya işlemleri
Alt programlar
Bulma ve değiştirme
Web üzerinden mail gönderme
Perl ile dizin işlemleri
Cookie'ler
Modüller, modül kullanımı ve require
Yazılma sonrası işlemleri
Güvenlik
Upload
Lisans konularý
Programların lisansı ve copyrigth haklarý
Linkler
Perl ile ilgili Türkce ve yabancı linkler
Bu döküman hakkında
Bu döküman hakkında
Antalya Tasarım Grubu - Web Tasarim Hizmetleri - Hosting (Barindirma) Islemleri - Alan Adi Islemlerii


Perl ile formdan gelen ya da bir şekilde elde ettiğimiz veriyi mantıksal sınamaya tabi tutabilir ve programı buna göre yönlendirebiliriz. Perl'de mantıksal sınamalar şu şekildedir:

Sayısal değerlerde mantıksal sınama :

Işlem Anlamı
x > y x büyüktür y'den
x < y x küçüktür y'den
x >= y x büyük eşittir y'ye
x <= y x küçük eşittir y'ye
x == y x eşittir y'ye
x != y x eşit değildir y'ye


Sayısal olmayan değerlerde mantıksal sınama:

Işlem Anlamı
a eq b a eşittir b'ye
a ne b a eşit değildir b'ye
a lt b a küçüktür b'den
a gt b a büyüktür b'den
a le b a küçük eşittir b'ye
a ge b a büyük eşittir b'ye


Buna göre perl'ile bir veri ya da değişken üzerinde mantıksal sınama yapmak için bu verinin ya da değişkenin içeriğinin sayısal olup olmadığını bilmemiz gerekiyor.

Mantıksal sınama if, elsif, else fonksiyonları :

Yukarıda sayısal değerlerde ve sayısal olmayan değerlerde (string) karşılaştırma operatörlerini gördünüz ama ne işe yaradıklarını bilmiyorsunuz. Bu operatörler perl'de karşılaştırma yapmaya olanak verir ve bunu da if(), elsif() ve else() komutlarıyla sağlarız. Kullanımı şu şekildedir:

if (koşul) {
koşul sonunda yapılacak işlem
}
elsif(koşul) {
koşul sonunda yapılacak işlem
}
else {
bu iki (ya da daha fazla) koşulun gerçekleşmemesi durumunda yapılacak işlem
}

Buna göre iki rakamı form vasıtasıyla programa gönderelim, program bize bu iki rakamı karşılaştırıp sonucunu ekrana yazsın :

#!/usr/bin/perl

# if1.cgi

use CGI qw(:standard);

print "Content-type:text/html\n\n";

$query = new CGI;

$ilksayi        = $query -> param('ilksayi');
$sonsayi        = $query -> param('sonsayi');

print "<html><body>";

if ($ilksayi ne "" or $sonsayi ne "") {

        if ($ilksayi == $sonsayi) {

        print "ilksayı($ilksayi) ile ikinci sayı($sonsayi) eşit!";

        }

        elsif ($ilksayi != $sonsayi) {

        print "ilksayı ($ilksayi) ile ikinci sayı($sonsayi) eşit değil!";

        }
}





print "<br>";
print "<form action=if1.cgi method=post>";
print "Birinci sayı: <input type=text name=ilksayi><br>";
print "Ikinci sayı: <input type=text name=sonsayi>";
print "<input type=submit value=Karşılaştır>";


print "</body></html>";



Ilk "if" karşılaştırması dikkatinizi çekti mi? Bu ilk karşılaştırma sayesinde eğer formdan veri gelmemişse sadece form görünüyor, formdan veri gelmişse karşılaştırma yapılıyor ve altında yine form gösteriliyor böylece programın saçmalamasını önlüyoruz.

Aynı şeyi bir de sayısal olmayan değerlerle, yani harflerle yapalım. Mesela formdan gönderilen veriler bizim ismimize eşitse ekrana "Senin isminle benim ismim aynı, biz adaşız" yazdıralım, değilse "isimlerimiz aynı değil, biz adaş değiliz" yazdıralım :

#!/usr/bin/perl

# if2.cgi

$benim_ismim = "hakan";

use CGI qw(:standard);

print "Content-type:text/html\n\n";

$query = new CGI;

$isim     = $query -> param('isim');

print "<html><body>";

if ($isim ne "") {

        if ($isim eq $benim_ismim) {

        print "Bizim isimlerimiz aynı, biz adaşız!";

        }

        elsif ($isim ne $benim_ismim) {

        print "Isimlerimiz aynı değil, biz adaş değiliz";

        }

}




Yukarıdaki örnekte $benim_ismim değişkenini kendi adınızla ya da başka adlarla değiştirerek sınama yapabilirsiniz. p