Php IF Yapısı

'HTML-PHP-ASP-JAVA' forumunda Mavi_Sema tarafından 15 Mayıs 2009 tarihinde açılan konu

  1. Mavi_Sema

    Mavi_Sema Özel Üye

    Sponsorlu Bağlantılar
    Php IF Yapısı konusu Bir onceki makalemizde,formlar yardimiyla verilerin kullanicidan alinip server uzerindeki bir PHP

    dosyasi yardimiyla nasil islenecegini gormustuk."PHP ile HTML taglarinin kullanimi" isimli bu

    makalemizin sonunda yazdigimiz kucuk "Kredi Istek Formu" uygulamasinda kullanicin girdigi "Yas"

    alani icin bir kontrol gerceklestirmemistik.Oysaki gercek hayatta biliyoruz ki yasi "0-5"

    arasindaki hic kimse boyle bir bilgisyar formunu dolduramaz veya kimsenin yasi "189" gibi bir deger

    alamaz.



    Bir programlama dili icerisinde "Karar Verme Yapilari" onemli yer tutar.Bu cogu zaman verdigimiz

    sartlar icerisinden bilgisayarin uygun olani o andaki verilere gore secmesini saglamaktir.



    Bir Insanin Alisveris Surecini Incelemek ve Programlama Mantigini Anlamak



    Simdi sizlere her gun yaptigimiz bir alis-veris sureci icin beynimizin nasil calistigini gostermek

    istiyorum.Bu sekilde programlama mantigini ve beyninizin nasil bilgisayar gibi calistigini ve

    sandiginizdan ne kadar fazla seye sahip oldugunuzu goreceksiniz.Programcilik nedir ki? Zaten her

    gun bunu farketmesek te yapiyoruz



    1.Buzdolabini kontrol et.Sut,peynir,Yumurta bitmis mi?Gerekli ise listeye ekle.



    2.Ekmeklige bak Ekmek lazim mi?Lazimsa listeye ekle 3.Eger evcil hayvanin varsa ihtiyaclari 6'inci

    isleme git.



    4.Supermarket'e git.



    5.Listedekileri cebindeki 10.000.000 TL'ye gore al.



    6.Evcil hayvanin yiyecegini kontrol et.Lazimsa listeye ekle 7.Hayvan Mutlu.



    8.Supermarkete git.Listedekileri al.



    9.Eve Don TV Izle.



    10.Keyfine Bak.



    IF Yapilari



    Bir onceki makalede "if" yapisini daha size bu makaleyi yazmadan kullanmistik.Kusura bakmayin

    ).Saka bir yana bu onemli yapi ile olabildigince erkenden hasir nesir olmanizi saglamak icin bunu

    yaptik."IF" yapilari belkide programcilarin en cok kullandigi yapilardir.Neredeyse her karar verme

    yapisinda kullanilirlar.Kullanim sekli cok basit olarak soyledir.



    IF (eger sart saglaniyorsa) satirdaki kodu uygula



    if karar verme yapisinda eger ilk verilen satirdaki kod grubu sartlari sagliyorsa satirin geri

    kalanindaki kod grubu uygulanir.Eger sartlari saglamiyorsa goz ardi edilerek bir alttaki satir

    okunur.



    Bir mantiksal ornek veririsek,



    if (hava yagmurlu ise) semsiyeni al Disari cik



    Ilk satirda if komutundan sonra sartimizi belirttik.Bilgisyar havayi kontrol etti eger yagmurlu ise

    bize semsiyeyi aldirdi.Eger hava yagmurlu degilse direkt olarak bizi disari cikartti.Mantik cok

    basit.



    Eger verecegimiz sartlar bir tek komutunda belirtilemiyorsa soyle bir yapi kullaniyoruz.



    If (eger sart saglaniyorsa) {

    Bu parantezlerin icinde verilen tum kod grubunu uygula }



    Mantiksal ornegimize donersek bu yazim sekli icin ornegimiz su sekilde,



    If (hava yagmurlu ise) {

    Semsiyeyi Al Yagmurlugu Al }



    Disari cik

    Bir kez daha belirtelim "Disari cik" terimi her sart altinda uygulanacaktir.Ama onemli olan nokta

    biz disariya semsiye ve yagmurlugu alip mi cikacagiz yoksa almadan mi? Iste buna bilgisyar hava

    durumunu kontrol ederek karar veriyor.Disariya eger hava yagmurlu ise bizi elimizde semsiye ve

    yagmurlukla cikariyor.



    Parantezlerin icindeki ifadenin buyuklugu veya ne kadar fazla kod icerdigi hic bir zaman onemli

    degildir.



    Boolean Degiskenler



    Degisken tiplerini bir onceki konmuzda siniflandirmistik.Ayni string degisken tipi gibi boolean

    degisken tipi de mevcuttur.Boolean degiskenler yanlizca iki deger alabilir.Dogru ve Yanlis Eger

    boolean olarak tanimladigimiz degiskenimiz dogru degerini donduruyorsa alacagi deger numerik olara

    "1" dir.Eger boolean degiskenimiz "yanlis" degerini donduruyorsa alacagi deger "0" dir.



    Ornek vermek istersek,



    $Degisken = true;



    Burada yazilan "true" ifadesrinin ingilizceden turkceye tam cevirisi "dogru" dur.



    Boyle bir satir kod icin echo komutunu kullanarak $Degisken degiskeninin tuttugu degeri gormek

    istersek,



    echo $Degiken;



    ekranda yanlizca "1" degeri gorunur.



    Boolean Islemler



    ">" ve "<" Operatorleri



    Temel matematik bilgisidr.">" ifadesi buyuk , "<" ifadesi kucuk anlamina gelir.Karar verme

    yapisi icerisinde kullanmak istedigimizde matematikte kullandigimizdan cok farkli islevler

    gormezler.



    Ornek vermek istersek



    if (8<9) echo "Sekiz rakami Dokuz rakamindan kucuktur";



    if yapisi kullanilirken parantesin icinden,PHP bir sonuc cikarir.Bu sanuca gore islemin gerisinemi

    devam edecek bir saonraki satiri mi okuyacagina karar verir.Asla "olabilir" veya "belki" gibi bir

    sonuc parantezin icinden cikmaz.Kisaca PHP ya "Dogru" icin 1 yada "Yanlis" icin 0 olarak kesin

    kararini verir.



    Bir ornek te degisken kullanarak yapalim,



    if ($SansliNumara < 9) echo ("Sansli numaramiz 9 rakamindan kucuk");



    Simdi de iki degiskeni if icerisinde kullanarak devam edelim,



    if ($SansliNumara < $LotoNumara) {

    echo ("Sansli numaramiz,Loto numasindan kucuk"); $SansliNumara = $SansliNumara +1; }



    Simdi de gercek bir ornek uzerinde uygulama yapalim.Ornegimizde PHP aklinda bir sayiyi tutarak

    bizim onu tahmin etmemizi isteyecek.Bir nevi tahmin oyunu.



    1.Text editorunuzu acin ve asagidaki kodlari yazin.



    <HTML> <HEAD></HEAD> <BODY> <FORM METHOD=GET

    ACTION="tahminoyunu.php">



    1-10 arasinda bir rakam tuttum.Bir tahmin yapmak istermisin?



    <INPUT NAME="Tahmin" TYPE="Text">



    <BR> <BR>



    <INPUT TYPE=SUBMIT> </FORM> </BODY> </HTML>



    2.Bu dosyayi "tahminoyunu.html" olarak kayit edin.



    3.Yeni bir text editoru acarak asagidaki kodlari yazin.



    <HTML> <HEAD></HEAD> <BODY> <?php



    $Sayi = rand (1,10);



    if ($Tahmin > $Sayi) {



    echo "Tahmin ettiginiz sayi benim dusundugumden buyuk"; echo "<BR>Benim dusundugum sayi $Sayi

    kaybettiniz."; exit; }



    if ($Tahmin < $Sayi) {



    echo "Tahmin ettiginiz sayi benim dusundugumden kucuk"; echo "<BR>Benim dusundugum sayi $Sayi

    kaybettiniz."; exit; }



    if ($Tahmin = $Sayi) {



    echo "Tahmin ettiginiz sayi benim dusundugum sayi ile ayni "; echo "<BR>Benim dusundugum sayi

    $Sayi Tebrikler."; exit; }

    ?> </BODY> </HTML>

    4.Bu dosyayi "tahminoyunu.php" olarak kayit edin.



    5."tahminoyunu.html" dosyaysini acip bir sayi girin.



    6.Gonder tusuna bastiginizda sizi bir sonucun beklemesi lazim.Nasil oyunu begendiniz mi?





    Döküman: Serkan
     
  2. Mavi_Sema

    Mavi_Sema Özel Üye

    2. Bölüm



    == ve === Operatorlerinin Kullanimi



    "=" (esittir) operatorunu simdiye kadar olan konularda cok fazla kullandik.Su anda gordugunuz "=="

    operatoru (iki tane esittir isareti) bundan biraz farklidir.



    Aciklamak istersek "=" isareti "atama yapmak icin " icin "==" isareti ise "esitligi kontrol etmek"

    icin kullanilir.



    Ornek vermek gerekirse,



    $SansliNumara = 3;

    $SansliNumara = 5;



    seklindeki kullanimlar degiskenimize bir deger atamak icin kullanilmaktadir.Yukaridaki ornekte

    $SansliNumara degiskenine "5" degerini atadik.Bir onceki satirda $SansliNumara =3; un hukmunu

    tamamen ortafdan kadirdik.Bir sonraki satirda $SansliNumara =6; diye yazmis olsaydik artik

    degiskenimiz icinde "5" degeri silinip bu sefer "6" degeri yazilacakti.Gordugunuz gibi degiskenlere

    istedigimiz degerleri "=" isareti ile atiyoruz.



    == operatorunun kullanilmasi



    Bir ifadenin iceriginin karsilastirilmasi icin kullanilir.Ornek vermek gerekirse,



    if ($SansliNumara == 7) echo ("Sansli numaraniz yedi rakami");



    gordugunuz gibi yukaridaki kod satirinda $SansliNumara degiskeni icerisindeki ifade ile "=="

    operatorunun sagindaki ifade "esitlik" bakimindan karsilastirilmaktadir.Yukaridaki kod icerisinde

    kesinlikle $SansliNumara degiskeni icerisine "7" degeri atanmamaktadir.Yanlizca bir kontrol

    yapilmaktadir.$SansliNumara degiskeni icerisinde saklanan deger ile "7" rakami arasindaki iliski

    kontrol ediliyor.Burada asla $SansliNumara degiskeni icerisndeki veri degistirilmiyor.





    (Bu konu cok onemlidir.Eger simdi cozumlemez iseniz ileride cok daha buyuk sorunlar cikaracaktir.)



    === operatorunun kullanilmasi



    PHP 4.0.1 ile gelen bu operator karsilastirilan degiskenlerin hem icerik hemde veri tipi ayni ise

    "dogru" degerini dondurur.Ornek vermek istersek,



    if ($SansliNumara === $RastgeleNumara) echo ("Sansli numaraniz rastgele numaraya hem sayi olarak

    hemde veri tipi olarak esit")



    != ve <> operatorlerinin kullanimi



    "==" operatorunun tam tersi olan "!=" operatoru "esit degil" operatoru olarak adlandirilir.



    Bir ornek vermek istersek,



    if ($SansliNumara != 7 ) echo ("Sansli numaraniz kesinlikle Yedi rakami olamaz.");



    Bu tek satir kodumuzda $SansliNumara degiskeninde tutugumuz deger ile "7" rakamini

    karsilastirdik.Ve dedik ki eger $SansliNumara esit degilse 7 rakamina satirin gerisini uygula.ve

    echo komutuyla bilgiyi ekrana yazdir.



    Kullanimi cok kolay olan bu operatorun bir baska yazim seklide "buyuktur" ve "kucuktur"

    isaretlerinin beraber yan yana yazilmasidir.



    Ornek vermek istersek,



    if ($SansliNumara <> 7 ) echo ("Sansli numaraniz kesinlikle Yedi rakami olamaz.");



    Hangisini kullanacaginiz tamamen sizin keyfinize kalmistir.Sonucta iki yazim seklide ayni

    seylerdir.Aralarinda hic bir fark yoktur.



    Bir tek sey cok onemli bu konuda o da mantiksal olarak bir seyi cok iyi kavramaniz.Yukaridaki

    ornege gore anlatirsam,yukaridaki kod satirindaki "if" ifadeleri yanlizca $SansliNumara icinde

    saklanan degisken "7" rakamina esit oldugunda "false" yani "yanlis" degerini dondurur.



    Ornek Uygulama:



    1.Text editorunuzu acin ve asagidaki kodlari yazin.



    PHP- Kodu:


    PHP:
     <HTML>
    PHP:

    [left]<HEAD></HEAD>

    <
    BODY>

    <
    FORM METHOD=GET ACTION="quiz.php">



    Turkiyenin baskenti asagidakilerden hangisidir?



    <
    BR>

    <
    BR>



    <
    INPUT NAME="Cevap1" TYPE="Radio" VALUE="Istanbul">

    Istanbul



    <BR>

    <
    BR>



    <
    INPUT NAME="Cevap1" TYPE="Radio" VALUE="Ankara">

    Ankara (nin tasina bak ...)



    <
    BR>

    <
    BR>



    <
    INPUT NAME="Cevap1" TYPE="Radio" VALUE="Izmir">

    Izmir



    <INPUT TYPE=SUBMIT>

    </
    FORM>

    </
    BODY>

    </
    HTML>  

                     [/
    left]






    2.Bu dosyayi "quiz.html" olarak kayit edin.



    3.Yeni bir text dosyasi acarak asagidaki kodlari yazin.



    PHP- Kodu:


    PHP:
    <HTML>
    PHP:

    [left]<HEAD></HEAD>



    <BODY>

    <?php



    if ($Cevap1 == "Ankara" ) echo "Tebrikler dogru cevap verdiniz.";

    if (
    $Cevap1 != "Ankara" ) echo "Uzgunum,yanlis cevap verdiniz. ";



    ?>

    </BODY>

    </HTML>            [/left]






    4.Bu dosyayi "quiz.php" olarak kayit edin.



    5."quiz.html dosyasini acip cevap verdiginiz takktirde sonucu bir sonraki ekranda

    goreceksiniz.Sakin hata yapamayin haaa Turkiyenin baskenti Istanbuldur )





    Mantiksal Operatorler (AND , OR ve , NOT kullanimi)



    Mantiksal operatorler kullanim olarak sandiginizdan daha kolaydir.Bu kadar korku ile bakmayin

    onlara lutfen.Hem sizin program icindeki gucunuzu ortaya cikarir,daha guclu karar verme yapilari

    kurmanizi saglar.Mantiksal olarak kurdugunuz cumlelerden farki yoktur.



    Ilk ornegimizi verelim,



    "Bugun gunlerden pazar ve hava gunesli ise plaja gidecegim" cumlesininPHP dilinde karsiligi

    soyledir.



    If ($Gun == "Pazar" AND $HavaDurumu == "Gunesli") echo ("Plaja Gidelim");



    "AND" ifadesi yazmak yerine "&&" (Cift Ampersand) yazmak ayni seylerdir.



    If ($Gun == "Pazar" && $HavaDurumu == "Gunesli") echo ("Plaja Gidelim");



    Simdide OR ve NOT ifadelerinin kullanimina bakalim.



    Yukaridaki cumlenin tersini bu operatorler yardimiyla yazalim.



    If ($Gun == "Pazartesi" OR $HavaDurumu == "Yagmurlu") echo ("Plaja Bugun Gitmeyelim...");



    "OR" ifadesi yazmak yerine "||" (Double isareti) yazmak ayni seylerdir.



    (Benim klavyemde shift+Backspace'in bir altindaki tus.Veya buradan kesip yapistirabilrsiniz.)



    If ($Gun == "Pazartesi" || $HavaDurumu == "Yagmurlu") echo ("Plaja Bugun Gitmeyelim...");



    Son olarak tartisacagimiz operator yanlizca bir formu bulunan bir operator.Yukaridaki orneklerde

    oldugu gibi "NOT" operatorunu yazi olarak programlariniz icinde kullanamazsiniz.



    "NOT" operatoru aslinda bir unlem isaretinden baska bir sey degildir.Tek ozelligi parantezin

    icindeki ifade disariya ciktiginda onu mantiksal olarak ters cevirmektir.Yani eger parantezin

    icinde donen sonuc disariya "true" yani "dogru" olarak cikmis ise bu operator onu "false" yani

    "yanlis" sekline donusturur.



    Bir ornek vermek istersek,



    if ! ($Gun == "Pazar") echo ("Plaja GITMEYELIM");



    Simdi goruldugu gibi biz pazar gunu plaja gitmek istiyoruz ve bununla ilgili program

    yaziyoruz.Parentezin icerisinde $Gun degiskenimiz var oyle degilmi? Simdi kontrol ediyoruz eger

    $Gun degiskeni "Pazar"'a esitse parantezin ici "true" yani "dogru" oluyor.Fakat parantezin onunde

    bir "!" unlem var.Bu unlem parantezin icinde olusan islemin sonucunu 180 derce degistiryor."Dogru"

    ise "Yanlis" , "Yanlis" ise "Dogru" yapiyor.



    Yukaridaki kod parcasi icin uygulamali ornek yapacak olursak,



    Gunlerden cumartesi kabul edelim.Dolayisi ile $Gun degiskenimiz icerisinde "Cumartesi" degeri

    saklanacaktir.Simdi formulde yerine koyalim,(Tabiiki boyle program icinde biz koymayacagiz degeri

    biz eger $Gun degiskeninin degerini "Cumartesi" yapmak istiyorsak $Gun = "Cumartesi"; dememiz

    yeterli.Biz simdi kendimizi PHP nin yerine koyup nasil davrandigina bakiyoruz)



    if ! (Cumartesi == Pazar) echo ("Plaja GITMEYELIM);



    simdi parantezin ici gordugunuz gibi "false" yani "yanlis",Fakat parentezin onundeki iste bu unlem

    isareti onu bir anda "true" yani "dogru" yapiyor ve satirin geri kalani dogal olarak okunuyor.Eger

    gunlerden "Pazar" olsaydi parantezin ici "true" yani "dogru" olacakti fakat onunde unlem oldugu

    icin deger bir anda "false" yani "yanlis" haline donecekti sonra ne olacak tabiiki IF deyiminden

    ogrendigimiz kural calisacak ve satirin geri kalani yani "Plaja GITMEYELIM" yazisi hic bir zaman

    goruntulenmeyecekti.



    Sonucta Pazar gunu icin programin "Plaja GITMEYELIM" yazisi goruntulenmez.



    Bir baska ornek verelim bu operatorun kullanimina hem bilgileriniz pekisir,hemde programcilik

    mantiginiz :



    if ! ($Cevap) echo ("Hic bir cevap yok...");



    Yukaridaki kod'da bilgisayar yanlizca $Cevap degiskenine bir deger atanmamis ise ekrana bu uyari

    bilgisini basar.

    Aciklayalim ,



    $Cevap degiskeni icinde bir deger atadik diyelim,



    $Cevap = 3;



    simdi IF satirimiza bakacak olursak,



    if ! ($Cevap) echo ("Hic bir cevap yok...");



    Parentezin icinde degiskenimiz var.$Cevap degiskeni eger icinde bir veri saklaniyorsa dogal olarak

    "true" yani "dogru" degeri doner.Fakat unlem isaretimiz onu "false" yapar ve satirin geri kalani

    PHP tarafindan okunmaz.(Uyari yazisi ekrana basilmaz)



    Parentezin icinde degiskenimiz var.$Cevap degiskeni eger icinde bir veri saklanmiyorsa> dogal

    olarak "false" yani "yanlis" degeri doner.Fakat unlem isaretimiz onu "true" yapar ve satirin geri

    kalani PHP tarafindan okunur.(Uyari yazisi ekrana basilir)



    Mantiksal Operatorler Konusunda Uygulamali Ornek



    1.Text editorunuzu acip asagidaki kodlari yazin.



    PHP- Kodu:


    PHP:
     <HTML>
    PHP:

    [left]<HEAD></HEAD>

    <
    BODY>

    Seres Araba Kiralama Sirketi Online Basvuru Formu

    <FORM METHOD=POST ACTION="araba.php">

    Adiniz:

    <
    INPUT NAME="Isim" TYPE="Text">

    Soyadiniz:

    <
    INPUT NAME="Soyad" TYPE="Text">

    Yasiniz:

    <
    INPUT NAME="Yas" TYPE="Text" Size="3">

    <
    BR>

    <
    BR>

    Adresiniz :

    <
    TEXTAREA NAME="Adres" ROWS=4 COLS=40>

    </
    TEXTAREA>

    <
    BR>

    <
    BR>

    Ehliyetiniz varmi?

    <
    INPUT NAME="Ehliyet" TYPE="Checkbox">

    <
    BR>

    <
    BR>



    <
    INPUT TYPE=SUBMIT VALUE="Gonder">

    </
    FORM>

    </
    BODY>

    </
    HTML>  

                     



    [/
    left]




    2.Bu dosyayi "araba.html" olrak kayit edin.



    3.Baska bir text dosyaysi acip asagidski kodlari yazin.



    PHP- Kodu:


    <HTML>

    <HEAD></HEAD>

    <BODY>

    Seres Otomobil Kiralama Sirketi Sonuc Sayfasi



    <?php

    if ($Yas >20 AND $Ehliyet == "on") echo ("Araba kiralama isteginiz KABUL edilmistir.");

    if ($Yas <21 OR $Ehliyet == "") echo ("Araba kiralama isteginiz RED edilmistir.");

    ?>



    </BODY>

    </HTML>







    4.Bu dosyayi "araba.php" olarak kayit edin.



    5."araba.html"dosyasini acip formu doldurun.Degisik veriler icin deneyin.



    NOT : Burada verdigimiz "checkbox" kontrolu icin "on" degeri kullandiginiz browser IE,Netscape ve

    opera icin sorunsuz calisacaktir.Eger degisik browserlar icin program uretiyorsaniz her zaman icin

    "checkbox" kontrolunun value ozelligini kullanarak bu degeri kontrol edebilirsniz.Bu uc browser da

    eger checkbox isaretlenmisse otomatik olarak "on" degerini kontrole uygularlar.





    >= ve <= Operatorlerinin Kullanilmasi



    Bu operatorler "buyuk" ,"kucuk" ve "esit operatorlerinin kombinasyonudur.Kullanimi bu operatorlerin

    kullanimi ile aynidir.

    ">=" ifadesinin mantiksal anlami "Buyuk Esit"'tir

    "<=" ifadesinin mantiksal anlami "Kucuk Esit"'tir.



    Ornek vermek istersek,



    if ($Yas >=21 AND $Ehliyet="on") echo ("Araba kiralama isteginiz KABUL edilmistir.");



    seklindedir.Yani yasin 21 ve buyuk oldugu haller goz onune alinmistir.Eger yanlizca >21

    kullanirsaniz 21 sayisi sorgumuzun icine alinmaz.



    Operatorlerin Beraber Kullanilmasi



    Kac tane operator'un birbiriyle ic ice kullanilacagi konusunda bir sinirlama yoktur.Istediginiz

    mantiksal ifade icin dilediginiz kadar cok operatoru yan yana veya ic ice kullanbilirsiniz.



    Bir Ornek vermek istersek,



    if ( ($Gun != "Pazartesi")

    OR ($Gun != "Sali")

    OR ($Gun != "Carsamba")

    OR ($Gun != "Persembe")

    OR ($Gun != "Cuma")

    OR ($Gun != "Cumartesi")

    OR ($HavaDurumu != "Yagmurlu") ) echo ("Plaja Gidebiliriz Demektir...");



    Burada eger gunlerden "Pazartesi,Sali,Carsamba,Persembe,Cuma,Cumarte si" degilse ve hava "Yagmurlu"

    degilse "Plaja Gidebiliriz".



    Daha karmasik bir ornek yapalim,



    if (($Gun == "Pazartesi" AND $Ay != "Mart")

    OR ($Gun == "Sali" AND $Saat != "12")

    OR ! ($Ay != "Ekim") echo ("Toplantiyi yapabiliriz"));



    Burada ,eger gunlerden Pazartesi ve ayimiz Mart degilse,veya gunlerden Sali ve Saatimiz "12.00"

    degilse veya ayimiz Ekim degilse "Toplanti yapabilirz"



    Simdi daha buyuk ve gelismis kararlari verebilcek bir uygulama yazalim.



    1.Text editorunuzu acip asagidaki kodlari yazin.



    PHP- Kodu:


    PHP:
     <HTML>
    PHP:

    [left]<HEAD></HEAD>

    <
    BODY>

    Seres Otomobil Web Sayfasi

    <BR>

    <
    BR>



    <
    FORM METHOD=POST ACTION="karar.php">

    Lutfen yasinizi girin :

    <
    INPUT TYPE=TEXT NAME="Yas" SIZE=3>

    <
    BR>

    <
    BR>

    Arabanizin max hizi nedir?

    <
    INPUT TYPE=TEXT NAME="Hiz">

    <
    BR>

    <
    BR>

    Yaklasik olarak arabanizin degeri ne kadar?

    <
    SELECT NAME="Deger">

    <
    OPTION VALUE=5000>$5000'dan AZ </OPTION>

    <OPTION VALUE=7000>$5000-7000 ARASI</OPTION>

    <OPTION VALUE=10000>$7000-10000 ARASI</OPTION>

    <OPTION VALUE=25000>$10000'
    den FAZLA</OPTION>



    </
    SELECT>



    <
    BR>

    <
    BR>



    Arabanizin motor hacmi ne kadar?

    <
    SELECT NAME="MotorHacmi">

    <
    OPTION VALUE=1.0>1.0L</OPTION>

    <
    OPTION VALUE=1.3>1.3L</OPTION>

    <
    OPTION VALUE=1.5>1.5L</OPTION>

    <
    OPTION VALUE=2.0>2.0L</OPTION>



    </
    SELECT>

    <
    BR>

    <
    BR>

    <
    INPUT TYPE=SUBMIT VALUE="Bilgileri Gonder">

    </
    FORM>

    </
    BODY>

    </
    HTML>  [/left]







    Onemli Not : Form'da girdiginiz kontrollerin isimlerine ozen gostermelisiniz.Bu formda "NAME"

    ozelligi ile girilen isimler,bir sonraki PHP sayfasina islenmek icin gonderildiginde kontrollerin

    isimleriyle anilan degiskenler otomatik olarak yaratilacak ve kullanicin buraya girdigi veriler bu

    degiskenlere otomatik olarak atanacaktir.



    2.Bu dosyayi "karar.html" olarak kayit edin.



    3.Bir baska text dosyasi acarak asagidaki kodlari girin.



    PHP- Kodu:


    PHP:
    <HTML>
    PHP:

    [left]<HEAD></HEAD>

    <BODY>

    Seres Otomobil Sonuc Sayfasi

    <?php



    if ($Yas<25 OR $Hiz>100 OR $Deger>10000 OR $MotorHacmi>1.5)

    {echo (
    "Size 1500 dolarlik sigorta plani sunulabilir");



    }



    if (
    $Yas >= 65 AND ($Deger<=5000 OR $Hiz<=80) AND $Deger<=10000 AND $MotorHacmi

    <=1.5 AND $Hiz<=100)

    {echo (
    "Size 800 dolarlik indirimli sigorta plani sunulabilir");



    }



    if ((
    $Yas<65 OR $Deger>5000 AND $Hiz>80) AND $Yas>=25 AND $Hiz<=100 AND

    $Deger<=10000 AND $MotorHacmi<1.5)

    {echo (
    "Size 1000 dolarlik bir sigorta plani sunulabilir");



    }



    ?>



    </BODY>

    </HTML>                [/left]






    4.Bu dosyayi "karar.php" olarak kayit edin.



    5."karar.html" dosyasini browser yardimiyla acin.



    6.Bir kac ornek veri girip sonuclari deneyin.
     
  3. Mavi_Sema

    Mavi_Sema Özel Üye

    3. Bölüm



    Simdiye kadar olan if yapilarinda,durumun "dogru" olmasi halinde islenecek satirlari gorduk.peki

    eger durumumuz "yanlis" ise hangi kod gruplarinin islenecegini programda nasil tanimlariz?

    if (durum dogrulaniyorsa)



    {



    Bu Parantezin icindeki kod grubunu uygula



    }



    else



    {



    Bu parantezin icindeki kod grubunu uygula



    }



    Burada anlatilmak istenen "else" yani ingilizcesi "baska" olan yapimiz bize ,ilk verilen if

    komutundaki parantezlerin icinde eger bir "yanlis" durumu olusursa uygulanacak kod grubunun yerini

    gostermektedir.



    Ornek vermek istersek,



    if ($Yas >= 21 AND $Ehliyet == "on" )



    {



    echo ("Araba kiralama isteginiz KABUL edilmistir.");



    }



    else



    {



    echo ("Araba kiralama isteginiz RED edilmistir.");



    }



    Gordugunuz "if" ile verilen parantezin icerisindeki ifade "dogru" olunca bir alt satirda "{}"

    parantezleri arasinda verilen kod grubu uygulandi ve ekrana KABUL mesaji geldi.



    Verilen durum "yanlis" oldugunda dogrudan "else" ile verilen ve "{}" parantezleri arasina yazilmis

    kod grubu uygulandi ve ekrana RED mesaji geldi.

    Yapimiz icinde gordugunuz bu bir satirlik echo komutu icin {} parantezlerini yazmak zorunlu

    degildir.Fakat kodlarinizin bir baskasi tarafindan rahat okunabilmesi icin bir rahatliktir.



    (Yukaridaki ornekte yanlizca bir tek satir kod uygulaniyor.Dolayisi ile "{}" parentezlerini

    kullanmak gerekli degildir.Biz size birden fazla satirin uygulanmasini istediginiz durumlar olursa

    diye bu sekilde "{}" parentezleri ile kodlarinizi gruplayabilceniz icin bu parentezleri yukarida

    bir satir kod grubunda verdik.)



    Simdi biraz daha ileriye gidelim ve bir "degiskeni" birden fazla "veri" icin test edelim.Bunun

    icin simdiye kadar hic deginmedigimiz elseif yapisini inceleyelim.

    if ( degiskenimiz deger1'e esit ise)



    {



    Bu kod grubunu uygula.



    }



    elseif (degiskenimiz deger2'ye esit ise)



    {



    Bu kod grubunu uygula.



    }



    else

    {



    Bu kod grubunu uygula.



    }
     
  4. Mavi_Sema

    Mavi_Sema Özel Üye

    4. Bölüm



    Switch Komutu ve Kullanimi (Switch Statements)



    Switch komutunun islevini kisaca aciklamak istersek ,"elseif" komutunun kullanimini azaltmak,

    hafifletmek ve programa basit bir yapi kazandirmak icin kullanilmaktadir.Hatirlayacaginiz gibi

    bundan bir onceki konuda (IF Yapisi -BOLUM 3)

    "elseif" kulanarak program yazmis ve basimizi iyice agritmistik.Orada size,bu kadar karmasik kod

    yazmanin gerekli olmadigini bundan kurtulmak icin PHP nin birsuru fonksiyon icerdigini

    soylemistim.Iste simdi size acikliyorum,



    Bu konuyu en iyi sekilde anlatmak icin bir ornek vermekten baska carem yok.o yuzden asagidaki

    ornegi inceleyerek ve aklinizda "elseif" yapisini canlandirarak dusunun.



    Ornek Kod Parcasi :



    PHP- Kodu:


    PHP:
    switch ($Puan) {
    PHP:

    [left]case $Puan 70

    echo ("Sinavdan A aldiniz");

    break;

    case 
    $Puan>60

    echo ("Sinavdan B aldiniz");

    break;

    case 
    $Puan>50

    echo ("Sinavdan C aldiniz");

    break;



    case 
    $Puan>40

    echo ("Sinavdan D aldiniz");

    break;

    case 
    $Puan>25

    echo ("Sinavdan E aldiniz");

    break;

    default:

    echo (
    "Sinifta Kaldiniz");

    }  

                     [/
    left]






    gordugunuz gibi bir suru "if" ve "elseif" kullanmak yerine yanlizca "switch" komutuyla isimizi

    biraz olsun kolaylastirdik.Satir bakimindan cok fazla sey kazanmadik ama su anda kodlarimiz daha

    mantikli ve anlasilir gozukuyor.



    Switch komutu ile kullanilan "break" , "case" ve "default" bunlarda nedir?



    Aciklamaya bu komutlarin turkcelerini yazmakla baslayalim.



    switch: Turkce'de "degistir" anlamina gelir.(Lambayi kapali konumdan acik konuma degistirmek gibi)

    break : Turkce'de "birak,ayril" anlamina gelir.

    case : Turkce'de "durum" anlamina gelir

    default : Turkcede ongorulen veya ontanimli anlamina gelir.



    Bu aciklamalarin isigi altinda konumuza devam edecek olursak,"switch" ile verdigimiz sartlar

    altinda PHP nin isleyecegi kod parcalarini degistiriyoruz.Bu sartlarin ne olacagini "case" ile

    tanimliyoruz.



    Kod parcasi isini tamamlayinca "break" ile "ayriliyoruz".Eger verdigimiz sartlardan hicbiri

    saglanmiyorsa "default" ile PHP'ye islemesi gereken kod parcasinin ne oldugunu soyluyoruz.



    Yukaridaki kod parcasinda $Puan degiskenin alacagi degerler icin ,degisik degisik isler yaptirmak

    istiyoruz.Bir adam 70'ten yuksek not almissa PHP nin "Sinavdan A Aldiniz" yazisini ekrana yazdirmak

    istiyoruz.60'tan yuksek not icin B,50'den yuksek not icin C ...vb



    Eger adam bizim verdigimiz sartlarin hicbirine uyan bir not almadiysa o zaman "default" ile

    yapilmasi gereken islemi tanimliyoruz.



    Burada ilk defa "break" komutu ile karsilastigimiz icin bir kac bilgi vermek

    istiyorum.Programlarinizda "break" kullandiginiz zaman size tavsiyemiz biraz dikkatli olmaniz.PHP

    "break" komutu ile karsilasinca yaptigi herseyi durdurur ve "switch" yapisindan cikarak ,kapali

    parantezin bittigi yerden okumaya devam eder.



    PHP- Kodu:


    PHP:
    switch ($Puan) {
    PHP:

    [left]case $Puan 70 :

    echo (
    "Sinavdan A aldiniz");

    break;

    case 
    $Puan>60 :

    echo (
    "Sinavdan B aldiniz");

    break;

    case 
    $Puan>50 :

    echo (
    "Sinavdan C aldiniz");

    break;



    case 
    $Puan>40 :

    echo (
    "Sinavdan D aldiniz");

    break;

    case 
    $Puan>25 :

    echo (
    "Sinavdan E aldiniz");

    break;

    default:

    echo (
    "Sinifta Kaldiniz");

    }<<<-------------------------- (switch 
    yapisini kapattigimiz parantez)

    ...........(
    PHP "break goruruse okumaya buradan devam eder)

    ....................  

                    [/left]






    switch yapisini kullanirken bir kisayol



    "switch" komutu sandiginizdan biraz daha zekidir ve sizin ne yapmak istediginiz anlayabilir.Bu

    komut icin gelistirlmis bir kisayol tarzi bulunmaktadir.



    Switch ($Eyalet) {



    PHP- Kodu:


    PHP:
    case "IL" :
    PHP:

    [left]echo ("Illinois");

    break;

    case 
    "FL" //Benim dunyalar guzeli eyaletim/memleketim

    echo ("Florida");

    break;

    case 
    "GA" :

    echo (
    "Georgia");

    break;

    default:

    echo (
    "Texas");

    break;

    }  

                     [/
    left]






    Her iki yazim seklide hatasiz ve birbirinden farksizdir.Isterseniz ilk ornekteki gibi her

    seferinde $Puan degiskenini "case" yapisina yazin isterseniz birakin PHP sizin icin yapsin.



    Dikkat ederseniz "case" yazdiktan sonra ";" noktali virgul yerine ":" iki nokta kullnadik.Sakin

    yanlis yazildigini sanmayin dogru kullanimi bu sekildedir.



    Simdi bir onceki bolumde (IF Yapisi - Bolum 3)yaptigimiz ornegi simdi switch kullanarak tekrar

    yazalim.



    1.Text editorunuzu acin ve asagidakileri yazin.



    PHP- Kodu:

    PHP:
                           <HTML>

    <
    HEAD></HEAD>

    <
    BODY>

    Seres Otelcilik Online Web Sayfasina Hosgeldiniz

    <FORM METHOD=GET ACTION="tatil2.php">

    Tatil icin nereye gitmeyi dusunuyorsunuz?

    <
    BR>

    <
    BR>

    <
    INPUT NAME="Sehir" TYPE "Radio" VALUE="Istanbul">

    Istanbul

    <INPUT NAME="Sehir" TYPE "Radio" VALUE="Ankara">

    Ankara

    <INPUT NAME="Sehir" TYPE "Radio" VALUE="Izmir">

    Izmir

     

    <BR>

    <
    BR>

    Kac yildizli otelde kalmak istiyorsunuz?

     

    <
    INPUT NAME="Yildiz" TYPE "Radio" VALUE="Uc">

    Uc Yildizli Otel

     

    <INPUT NAME="Yildiz" TYPE "Radio" VALUE="Dort">

    Dort Yildizli Otel

     

    <BR>

    <
    BR>

    <
    INPUT TYPE=SUBMIT>

    </
    FORM>

    </
    BODY>

    </
    HTML>  

                     




    2.Bu dosyayi "tatil2.html" olarak kayit edin.



    3.Text editorunuzu acin ve asagidakileri yazin.



    PHP- Kodu:


    PHP:
    <HTML>
    PHP:

    [left]<HEAD></HEAD>

    <BODY>

    Seres Otelcilik Online web Sayfasina Hos Geldiniz

    <BR>

    <BR>

    <?php

    $Fiyat 
    500;

    $SehirFaktoru 1;

    $YildizFaktoru 1;

    $SehirYildiz $Sehir.$Yildiz;



    switch (
    $SehirYildiz) {



    case 
    "IstanbulUc":

    $SehirFaktoru 2;

    $Fiyat $Fiyat $SehirFaktoru;

    echo 
    "$Sehir sehrinde 1 haftalik tatil $Fiyat dolardir.";

    break;

    case 
    "IstanbulDort":

    $SehirFaktoru 2;

    $YildizFaktoru 2;

    $Fiyat $Fiyat $SehirFaktoru $YildizFaktoru;

    echo 
    "$Sehir sehrinde 1 haftalik tatil $Fiyat dolardir.";

    break;

    case 
    "AnkaraUc":

    $SehirFaktoru 3.5;

    $Fiyat $Fiyat $SehirFaktoru;

    echo 
    "$Sehir sehrinde 1 haftalik tatil $Fiyat dolardir.";

    break;

    case 
    "AnkaraDort":

    $SehirFaktoru 3.5;

    $YildizFaktoru 2;

    $Fiyat $Fiyat $SehirFaktoru $YildizFaktoru;

    echo 
    "$Sehir sehrinde 1 haftalik tatil $Fiyat dolardir.";

    break;

    case 
    "IzmirUc":

    $Fiyat $Fiyat $SehirFaktoru;

    echo 
    "$Sehir sehrinde 1 haftalik tatil $Fiyat dolardir.";

    break;

    case 
    "IzmirDort":

    $YildizFaktoru 2;

    $Fiyat $Fiyat $SehirFaktoru $YildizFaktoru;

    echo 
    "$Sehir sehrinde 1 haftalik tatil $Fiyat dolardir.";

    break;

    default:

    echo 
    "Lutfen geriye donerek tekrar deneyiniz";

    break;

    }
    ?>

    </BODY>

    </HTML>            [/left]






    4.Bu dosyayi "tatil2.php" olarak kayit edin.



    5."tatil2.html" dosyasini acip bir kac veri girip gonderdiginizde tatil icin ne kadar ucret

    odemeniz gerektigini goreceksiniz.



    Form Verileri'nin Kontrolu



    PHP programalarini biraz olsun hassas hale getirmek ancak program icindeki kontrollerle

    mumkundur.Ornegin bir kullanicin sizin onun "yasini" ordugunuz bir kontrole "694" gibi bir rakam

    girmesini istemeyiz.Bu nedenle girilen verileri bazi kistaslara gore kontrol edip ondan sonra

    islemlere devam etmek cok onemlidir.



    If ($Yas <1 OR $Yas>125)

    {echo "Gecersiz bir yas degeri girdiniz";

    break;

    }seklinde programin bir mantiga sahip olmasini saglayabilriz...



    exit komutu



    If ($Yas <1 OR $Yas>125)

    {echo "Gecersiz bir yas degeri girdiniz";

    exit;

    }Bir forma girilen verileri kontrol ediyorsak ve kisinin girdigi verinin tamamen imkansiz olduguna

    inaniyorsak "exit" komutunu kullanarak programin isleyisini o noktada durdurabilriz."exit"

    kulllandigimizda program tamamen duracak ve kalan HTML taglari bile kapatilmayacaktir.Kullanirken

    dikkat edilmesi gereken bir komuttur.



    Bu konu ile ilgili bir ornek yapalim,



    1.Text editorunuzu acin ve asagidaki kodlari girin.(Daha onceden yazdigimiz "kredi.php" dosyasini

    acip orada yapmadigimiz form kontrollerini simdi programa nasil ekledigimize bakabilirsiniz)



    PHP- Kodu:


    PHP:
     <HTML>
    PHP:

    [left]<HEAD></HEAD>

    <
    BODY>



    Seres Bankasi Kredi Isleme Basvuru Formu



    <FORM METHOD=POST ACTION="kredi2.php">



    Adiniz :



    <
    INPUT NAME="Ad" TYPE="Text">



    Soyadiniz :



    <
    INPUT NAME="Soyad" TYPE="Text">



    Yasiniz :



    <
    INPUT NAME="Yas" TYPE="Text" SIZE="2">



    <
    BR>

    <
    BR>



    Adresiniz :



    <
    TEXTAREA NAME="Adres" ROWS=5 COLS=50>

    </
    TEXTAREA>



    <
    BR>

    <
    BR>



    Geliriniz Nedir?

    <
    SELECT NAME="Ucret">

    <
    OPTION VALUE=0>10000 TL'DEN AZ</OPTION>

    <OPTION VALUE=10000>10000 TL'
    DEN 25000 TL'YE KADAR</OPTION>

    <OPTION VALUE=25000>25000 TL'
    DEN 50000 TL'YE KADAR</OPTION>

    <OPTION VALUE=50000>50000 TL'
    DEN BUYUK</OPTION>

    </
    SELECT>



    <
    BR>

    <
    BR>



    Ne kadar kredi almak istiyorsunuz?<BR><BR>



    <
    INPUT NAME="Kredi" TYPE="Radio" VALUE=1000>1000 TL'lik Paket %8.0 Faiz<BR>



    <INPUT NAME="Kredi" TYPE="Radio" VALUE=5000>5000 TL'
    lik Paket %12.0 Faiz<BR>



    <
    INPUT NAME="Kredi" TYPE="Radio" VALUE=10000>10000 TLlik Paket %15.0 Faiz<BR>



    <
    BR>

    <
    INPUT TYPE=SUBMIT VALUE="Buraya tiklayarak Formu gonderebilirsiniz">

    <
    INPUT TYPE=RESET VALUE="Formu Temizle">



    </
    FORM>

    </
    BODY>

    </
    HTML>  

                    [/
    left]






    2.Bu dosyayi "kredi2.html" olarak kayit edin.



    3.Baska bir text dosyaysi acip asagidaki kodlari yazin.



    PHP- Kodu:


    PHP:
    <HTML>
    PHP:

    [left]<HEAD></HEAD>

    <BODY>

    <?php

    if ($Yas<10 OR $Yas>120)



    {

    echo 
    " Yanlis yas degeri girdiniz,geriye donerek tekrar giriniz.";

    exit;

    }if (
    $Ad == "" OR $Soyad == "")



    {

    echo 
    " Bir isim ve soyad degeri girmelisiniz ,geriye donerek giriniz.";

    exit;

    }if (
    $Adres == "")



    {

    echo 
    " Bir adres degeri girmelisiniz ,geriye donerek giriniz.";

    exit;



    }



    if (
    $Kredi != 1000 AND $Kredi !=5000 $Kredi !=10000)



    {



    echo 
    " Bir kredi degeri girmelisiniz ,geriye donerek giriniz.";

    exit;

    }
    $UcretFaktoru $Ucret/5;

    $YasFaktoru = ($Yas/10 - ($Yas%10) /10 )-1;



    $KrediFaktoru $UcretFaktoru $YasFaktoru;



    echo 
    "Istediginiz Kredi Miktari : $Kredi <BR>";

    echo 
    "Alabilceginiz Kredi Miktari : $KrediFaktoru <BR><BR>";



    if (
    $Kredi <= $KrediFaktoru) echo "Sayin , $Ad $Soyad kredi isteginizi memnuniyetle KABUL

    ediyoruz"
    ;



    if (
    $Kredi $KrediFaktoru ) echo "Sayin,$Ad $Soyad uzgunuz,kredi isteginiz RED edilmistir.";

    ?>

    </BODY>

    </HTML>               [/left]






    4.Bu dosyayi "kredi2.php" olarak kayit edin.



    5.Bir kac gecersiz deger ile formu test edin
     

Bu Sayfayı Paylaş