MultiServis.Net //PHP El Kitabı

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>

PHP ile HTML isaretleyicilerinin (Tag) birlikte Kullanimi Yazar: Serkan Tarih: 01/03/02

Giris:

HTML icerisinde en cok kafa karistiran bolum suphesiz "form"larin kullanilmasidir.Formlar ile kullanicidan veri setleri alinarak server uzerine gonderilir.Bu yaziya <FORM> taginin kullanima ornekler vererek baslayacagiz.

Genel olarak <FORM> taglari arasina yerlesitrilen kontroller ile kullanicdan alinan veriler paketlenerek server'a iletilir.Bu iletisim kullanicinin sayfa ya ulasmak icin URL yi browsera yazip entera basmasindan farkli degildir.Ayni sekilde formu dolduran kullanici "gonder" tusuna bastiginda tum veriler islenmek uzere servera gonderilir.Server bu veriyi PHP motoruna islemesi icin verir.Tum bu islemden sonra PHP kucuk bir "cevap" ciktisini (response) ayni sekilde istemciye iletir.

Form Taginin Ozellikleri

Form taginin Action,Method,Id,Class,Dir,Lang,Language,Name,Style,ve Title olarak tanimlanan ozellikleri vardir.Burada yanlizca Action ve Method ozelliklerine deginilecektir.

Action

Bu ozellik ile kullanici gonder tusuna bastigi zaman server uzerinde hangi sayfaya gidilecegi bildirilir.

<FORM ACTION="Veri_isleyecek_sayfa.php">
...
</FORM>

Method

Formdaki bilgilerin servera hagi yolla gonderilecegini belirtmek icin kullanilir.Alabilecegi iki deger vardir.GET ve POST.Kullanimi asagidaki gibidir.

<FORM ACTION="Veri_isleyecek_sayfa.php METHOD=GET>
....
</FORM>

veya,

<FORM ACTION="Veri_isleyecek_sayfa.php METHOD=POST>
....
</FORM>

(Aslinda alabilcegi deger Get ve Post ile sinirli degildir.Bunlardan ayri olarak HEAD,PUT,LINK,UNLINK,OPTIONS,DELETE,TRACE ve CONNECT degerleri istenilen amaca uygun olarak verilebilir.Bu secenekler genelde kullanilmaz)

Hemen GET seceneginin kullanimina gecelim.Form tagi icerisinde kullanilan Method ozelliginin aldigi bu deger,Browser'a kullanicinin form icerisinde girdigi degerlerin URL uzerinde kontrol_ismi/aldigi_deger ciftleri seklinde tasinacagini soyler.Browser URL den sonra bir soru isareti koyarak degerleri kontol_isim/aldigi_deger ciftlerini URL satirinda tasir.Eger birden fazla isim/deger cifti varsa aralarina "&" ampersand isreti konulur.
Bir ornek vermek gerekirse,

http://www.turk-php.com/oku.php?MakaleID=264737

burada "MakaleID" isim "264737" deger'dir.

Veya ?hayvanismi=kedi

burada hayvanismi "isim" aldigi deger " kedi" dir.Bunu URL uzerinde Get ile soyle tasiyoruz:

http://www.turk-php.com/test.php?hayvanismi=kedi

URL nin bir parcasi olan bu kisim artiksorgu stringi olarak adlandirilir.Bir kez kullandildiktan sonra PHP scriptleri icinde kullanilabilcek degisken sekline donusurler.Bir kez formu doldurup gonderdikten sonra gecilen diger sayfada PHP form uzerinde yer alan kontrolismi/deger ciftlerini degisken olarak degerlendirir.

URL Encoding

URL uzerinde yer alamayacak karekterler icin kullanilan encoding'dir.Programcinin herhangi bir sey yapmasina gerek yoktur.Tum bu islemler otomatik olarak server-istemci iletisimi sirasinda sizin kontrolnuzden bagimsiz olarak yaratilir.Web Browser URL uzerindeki yer almamasi gereken karekteri algilayarak buna uygun degistirmeyi kendisi yapar.Kullanilan encoding icin bir kac ornek asagida verilmistir.

Karekter URL Encoding
Tab %09
Space (Bosluk) %20
! %21
" %22
@ %40

POST

Eger form uzerinde yer alan bilgilerin URL icinde gorunmesini istemiyorsaniz POST kullanabilirsiniz.Tek dezavanataj tum islemin digerleri tarafindan gorulebilecek derecede acik olmasidir.POST un yaptigi sey GET komutuyla tamamen aynidir.Aralarindaki tek fark
Form uzerindeki verinin gonderimi ile ilgilidir.POST kullanildiginda form icindeki veri HTTP Body'si (HTTP Govdesi) icinde servera gonderilir.(Yukarida aciklandigi uzere GET kullanilarken form icindeki veriler URL'nin bir parcasi olarak servera iletiliyordu.)Eger gonderilen bilginin ,kullanicinin kullandigi browserin URL satirinda goruntulenmesini istemiyorsaniz POST kullanabilirsiniz.
Bir baska konuda URL icinde gonderebilecegimiz verinin limitinin olmasina karsin POST ile buyuk veri gruplari servera rahatlikla iletilebilir.

GET mi yoksa POST mu? Hangisini kullanmaliyim?

Bazi kisiler GET'in hicbir zaman kullanilmamasi gerektigini dusunuyor.Bunun sebebi veri limiti ve tamamen guvensiz olusu ,veriyi URL uzerinde aktarmanin uygun olmadigi gibi.Aslinda bu konu ile ilgili kesin konsumak yanlis olur.Burada anlatilanlar programciyi bilgilendirmek amaci ile yazilmistir.POST kullanildiginda bir dezavantaj POST ile ulsailan sayfalarin asla "bookmark" edilemeyecegidir.Bu sebeple buyuk arama motorlari genelde GET kullanmaktadir (Ornek Altavista.com).GET icin guvensiz diyenler sunu da goz onune almalidir.POST sirasinda HTTP Body'si icinde gonderilen bilgilerde bir hacker icin gorunmez degildir.Guvenlik icin mutlaka Guvenli baglanti protokkolleri kullanilmalidir.

HTML Form Kontrolleri ve PHP

HTML form kontrolleri yardimiyla kulanicidan alinan bilgiler server'a ulastirilir.Form kontrollerinde kullanilan isimler PHP icin bir degisken ismidir.Aldigi deger ayni normal degisken'e verdigimiz deger ile aynidir.Tek farki degeri bizim atamamiz yerine web kullanicinin klavye'den o degiskenin degerini kendisinin girmesidir.Mesela bir text kontrol u icinde kullanicya adini sordunuz.Form uzerindeki text box kontrolunun adini "isim" diye girdiniz.Eger Web sayfasini kullanima acarsaniz ve birisi o text box'a herhangi bir deger girrip servera gonderirse bu olay PHP tarafindan "isim" degiskenine kullanicinin girdigi deger atanmis gibi davranilir.

Text Box(Yazi Kutusu)

HTML icerisinde <INPUT> elementi kullanilarak yaratilan bu kontrol belkide web uzerinde en alisik oldugumuz kontroldur.

Kullanimi su sekildedir.

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

Ornek verecek olursak :

1.Text editorunuzu acip asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=GET ACTION="sarkici.php">
En sevdiginiz sarkici kim?

<INPUT NAME="Sarkici" TYPE="TEXT">
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

2.Bu dosyayi web serverin root klasorune "sarkici.html" olarak kayit edin.

3.Yeni bir text editoru acin ve asagdaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
En Sevdiginiz sarkicinin ismi :
<?php
echo $Sarkici;
?>
</BODY>
</HTML>

4.Bu dosyayi web serverin root klasorune "sarkici.php" olarak kayit edin.

5."sarkici.html" dosyaysini browserinizda acip bir isim yazmayi deneyin.

6.Gonder tusuna bastiginizda program size yazdigizniz kisinin adini verecektir.

Dikkat ettiyseniz ilk "test.html" dosyasinda textbox kontrolune "Sarkici" ismini verdik.Bu formu "test.php" dosyasina islenmesi icin gonderdigimizde PHP $Sarkici degiskenini otomatik olarak yaratip formdaki veriyi (Sakicinin Ismi) bu degiskene esitledi.

Ornek Dosyalar

http://www.turk-php.com/ornekler/sarkici.html

http://www.turk-php.com/ornekler/sarkici.php

Text Alanlari(Buyuk Yazi Alanlari)

Bazen kullanicidan tum bir satiri veya satirlari gondermesini isteyebiliriz.Bu bazen kullanicinin yorumlari,dusunceleri veya bir konudaki makale yi html formu icerisine yazdirmak olabilir.Iste bu noktada kullanabilcegimiz HTML kontrolu olan TextArea kontrolu bize icinde bir cok satirin yazilabilkcegi bir text alani kontrolu yaratmamaizi saglar.Bu kontrolun en buyuk avantaji icine yazilabilecek satir sayisinin ayarlanabilmesidir.

Bir ornek Vermek gerekirse,

1.Text editorunuzu acin ve asagidaki kodlari girin.

<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=POST ACTION="textkontrol.php">

En begendiginiz web siteleri hangileridir?

<TEXTAREA NAME="Siteler" COLS="50" ROWS="5">
http://www.turk-php.com/
http://
http://
http://
</TEXTAREA>
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

2.Bu dosyayi "textarea.html" olarak kaydedin mesela.(Dosyayi hangi adla kaydettiginiz cok onemli degil.Sonucta yukarida ACTION kisminda buraya girdigimiz verilerin hangi php dosyaysi taraindan islenecegini belirttik.)

3.Yeni bir text editor acip icine asagidakileri yazin.

<HTML>
<HEAD></HEAD>
<BODY>
Sizin sevdiginiz web siteleri :
<?php
echo $Siteler;
?>
</BODY>
</HTML>

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

5.Yukarida "textarea.html" olarak kayit ettiginiz dosyayi bir browser yardimiyla acin.

6.Bir kac satir veri girin ve "Gonder" tusuna basin.

7.Sonuc ta yazdiginiz verileri bir sonraki "textkontrol.php" dosyasinda islenmis olarak bulacaksiniz.

Ornek Dosyalar

http://www.turk-php.com/ornekler/textarea.html

http://www.turk-php.com/ornekler/textkontrol.php

Check Box Kullanimi
Diger kontroller gibi <INPUT> tagi kullanilarak yaratilir.
Ornek kullanim :
<INPUT NAME="IsaretKutusu" TYPE="Checkbox">

Genelde evet/hayir sorularina kullanicinin cevap vermesinde faydali bir HTML kontroldur.
Bu kontrol CHECKED olarak isimlendirilen bir ozellige sahiptir.Bu ozellik kullanildiginda "checkbox" kontrolumuz ontanimli "isaretli" olarak sayfada yuklenir.

Ornek vermek gerekirse,

<INPUT NAME="IsaretKutusu" TYPE="CHECKBOX" CHECKED>

Simdi de "checkbox" yani kontrol kutusu kullanimima bir genel ornek verelim ve bilgilerin HTML formundan PHP scriptlerine nasil aktarildigina bakalim.

1.Text editorunu acip asagidaki kodlari yazin.
<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=POST ACTION="checkbox.php">
Daha once hic yilan yedinizmi?
<INPUT NAME="Secim" TYPE="Checkbox">
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

2.Bu dosyayi "checkbox.html" olarak kaydedin.

3.Yeni bir text editoru acarak asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<?php
echo $Secim;
?>
</BODY>
</HTML>

4.Bu dosyayi ise "checkbox.php" olarak kayit edin.

5."checkbox.html" dosyasini web browser yardimiyla acin.

Yaptiginiz secime gore bir sonraki sayfada "on" yazili bir sayfa veya hicbirseyin olmadigi bos bir sayfa goreceksiniz.

Ornek Dosyalar

http://www.turk-php.com/ornekler/checkbox.html

http://www.turk-php.com/ornekler/checkbox.php

Eger burada kullandigimiz "checkbox" yani turkcesi "kontol kutusu"nu isaretleyerek sayfayi gonderdiginizde ,bizim tayin etmedigimiz bir deger bu kontrole veriliyor.Eger kullanici kontrolu isaretlerse alacagi deger "on" oluyor.Isartelemez ise hic bir deger atanmiyor.

Birden fazla "checkbox" in HTML sayfalarinda kullanimi

Eger birden fazla "checkbox"`i kullaniyorsaniz ne yapacaksiniz?

Ornek vererek devam edelim.

1.Text editorunu acin ve asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=POST ACTION="checkboxes.php">
Daha once yilan yedinizmi?
<INPUT NAME="Secim1" TYPE="Checkbox" VALUE="yilan">
<BR>
Daha once balik yedinizmi?
<INPUT NAME="Secim2" TYPE="Checkbox" VALUE="balik">
<BR>
Daha once ahtapot yedinizmi?
<INPUT NAME="Secim3" TYPE="Checkbox" VALUE="ahtapot">
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

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

3.Yeni bir text editoru acip asagidakileri yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<?php
echo "$Secim1 <BR>";
echo "$Secim2 <BR>";
echo "$Secim3 <BR>";
?>
</BODY>
</HTML>

4.Bu dosyayi "checkboxes.php" olarak kayit edin.
5."checkboxes.html" dosyasini browser yardimiyla acin.
6.Bir kac secenegi secip gonder tusuna basin.

Sectginiz secimler bir sonraki sayfada goruntulendi degilmi?
Ornek Dosyalar

http://www.turk-php.com/ornekler/checkboxes.html

http://www.turk-php.com/ornekler/checkboxes.php

Kisaca soylemek gerekirse biz "checkbox"`in VALUE ozelligini kullanarak secildiginde o degiskene aktarilacak verinin ne olmasi gerektigini belirttik.Eger hic bir VALUE degeri kullanmasaydik otomatik olarak "on" degeri secilen isaret kutularina aktarilacakti.Secilmeyenler bos kalacakti.

Checkbox kullanima iliskin bir onemli ayrtinti

Yukardaki ornekte butun kontrollerimiz icin NAME ozelligini kullarak kontrollere birer isim verdik.Biz formu Gonder tusuna basarak PHP sayfasina gonderdigimizde formun icinde yer alan butun kontroller isimleriyle anilan birer degiskene donusecektir.Mesela biz

Daha once yilan yedinizmi?
<INPUT NAME="Secim1" TYPE="Checkbox" VALUE="yilan">
<BR>

yukaridaki HTML kodunda bu "checkbox" kontrolune "Secim1" ismini verdik.Biz formu gonder tusu yardimiyla server uzerindeki PHP sayfasina gonderdigimizde PHP otomatik olarak $Secim1 adiyla bu degiskeni yaratip formun icinde verdigimiz degere esitleyecektir.Bu nedenle form uzerindeki kontrollere NAME ozelligi kullanarak verdigimiz degerler onemlidir.Dikkat ederseniz Secim1,Secim2 gibi farkli isimler kullandik.Boylece $Secim1, $Secim2 gibi PHP icersinde degiskenlerimiz yaratildi ve Form icerisinde verilen VALUE degerine esitlendi.

Biz eger diziler kullanarak form icerisindeki kontrollere isim vermek isteseydik su sekilde yazabilirdik.

Daha once yilan yedinizmi?
<INPUT NAME="Secim []" TYPE="Checkbox" VALUE="yilan">
<BR>
Daha once yilan yedinizmi?
<INPUT NAME="Secim []" TYPE="Checkbox" VALUE="yilan">
<BR>
Daha once yilan yedinizmi?
<INPUT NAME="Secim []" TYPE="Checkbox" VALUE="yilan">
<BR>

Bu konu aslinda daha sonra gorecegimiz "diziler" ile ilgilidir.Fakat yeri gelmisken kontrollere isim vermek icin kullanildigindan bahsetmek istedim.

Kisaca PHP yukaridaki kontrol isimlerine "0" dan baslayarak koseli parantezlerin icerisine sayi koyarak sirayla isim verecektir.

Yukaridaki kodlar icin bu su sekildedir.

Ilk kontrolumuz icin,

$Secim [0] ismini alarak islem gorecektir.Bu olay butun kontrollere uygulanacaktir.
$Secim [1]
$Secim [2]

Radyo Dugmeleri

Radyo dugmeleri ,checkbox kontrollerinin "bencil" kuzenleridir.Bu kontrolde secilecek olan cevaplardan yanlizca bir tanesi isaretlenebilir.Mesela Turkieyenin Baskenti hangisidir? gibi bir soruya insanlar yanlizca bir cevap gonderebilirler.Bunun gibi durumlarda "radyo dugmeleri" kullanilmaktadir.

Bir ornek vermek istersek,

1.Text editorunuzu acip asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=GET ACTION="radyo.php">

Turkiye'nin Baskenti Asagidakilerden Hangisidir?
<BR>
<BR>

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

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

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

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

2.Bu dosyayi "radyo.html" olarak kaydedin.

3.Yeni bir text editoru acarak asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<?php
echo "Seciminiz : $Cevap1 ";
?>

</BODY>
</HTML>

4.bu dosyayi "radyo.php" olarak kaydedin.

5."radyo.html" dosyaysini bir browser yardimiyla acin.

6.Bir secenek isaretleyip gonder tusuna basin.

7.Seciminiz bir sonraki sayfada goruntulenecektir

Liste Kutulari

Liste kutulari veya cek-birak menuleri genelde icinden secim yapacaginiz bir kac ogenin bulundugu kontrollerdir.HTML icerisinde bu kontroller <SELECT> VE <OPTION> taglari kullanilarak yaratilirlar.Radyo dugmeleri ile ayni islevi gorurler.Hemen hemen ayni yapiya sahiptirler.Genellikle kontrol icerisinde bulunan ogelerden yanlizca bir tanesinin secilmesine izin verirler.

Liste kutulari <SELECT> tagi kullanilarak yaratilirlar.<OPTION> tagiyla kontrol icinde gosterilecek ogeler yaratilir.

Bir ornek vermek gerekirse,

<SELECT NAME="Fiyat">
<OPTION>5.000.000 TL den az</OPTION>
<OPTION>5.000.000 TL den 10.000.000 TL ye kadar</OPTION>
<OPTION>10.000.000 TL den cok</OPTION>
</SELECT>

Eger liste kutusunun icindeki ogelerden,kullanicinin coklu secim yapabilmesini istiyorsaniz,<SELECT> taginin MULTIPLE ozelligini kullanmalisiniz.Kullanicininlistedeki ogelrden bir kacini secmesi icin "Shift" tusunu secimleri yaparken basili tutmasi gerekir.

Tum bu konuya bir ornek vermek istersek,

1.Text editorunu acin ve asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=GET ACTION="listbox.php">
Almayi dusundugunuz arabanin fiyat araligi nedir?
<BR>
<BR>
<SELECT NAME="Fiyat">
<OPTION> $5,000</OPTION>
<OPTION>$5,000-$10,000</OPTION>
<OPTION>$10,000-$25,000</OPTION>
<OPTION> $25,000 dan Fazla</OPTION>
</SELECT>
<BR>
<BR>
Motor hacminin ne olmasini istersiniz? (Shifte basili tutarsaniz birden cok tercih yapabilirsiniz)
<BR>
<BR>
<SELECT NAME="MotorHacmi[]" MULTIPLE>
<OPTION>1.0L</OPTION>
<OPTION>1.4L</OPTION>
<OPTION>1.6L</OPTION>
<OPTION>2.0L</OPTION>
</SELECT>
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

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

3.Bir baska text editor dosyasi acin ve icine asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<?php
echo "Fiyat Araligi: $Fiyat";
echo "<BR>Motor Hacmi: $MotorHacmi[0]";
echo "$MotorHacmi[1]";
echo "$MotorHacmi[2]";
echo "$MotorHacmi[3]";
?>
</BODY>
</HTML>

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

5."listbox.html" dosyasini acip bir kac secim yapin ve gonder tusuna basin.

Ornek Dosyalar

http://www.turk-php.com/ornekler/listbox.html

http://www.turk-php.com/ornekler/listbox.php

Yukarida PHP'nin dizileri nasil kullandigina da guzel bir ornek vermis olduk.Diziler hayatimizi biraz daha kolay hale getirmektedir.Gordugunuz gibi kontrol ismini degistirmeden bazi isleri PHP'nin yapmasini sagladik.Gorunuste zor gibi gorunsede aslinda uygulama yaptiginizda kullanimlarinin ne kadar basit oldugunu goreceksiniz.Tek yapmamaiz gereken biraz calismak oyle degilmi.:))

Gizli Form Kontrolleri(Hidden Controls)

Bu kontroller bir web sayfasindan diger bir web sayfasina veri aktarirken,kullanicinin herhangi bir sey yapmasina gerek kalmadan isimizin kolaylasmasi icin bize saglanmis kontrollerdir.Kullanici "Gonder" tusuna bastiginda bu veriler otomatik olarak server sistemine gonderilir.
"Gizli Kontroller" <INPUT> tagi kullanilarak yaratilirlar.Kullanimina basit bir ornek vermek istersek,

<INPUT TYPE=HIDDEN NAME="Gizli1" VALUE="Gizli Mesaj">

Burada gordugunuz gibi HIDDEN yazarak,girdigimiz verinin hicbirsekilde form uzerinde goruntulenmemesini istedigimizi belirttik.Diger kontrollerde oldugu gibi PHP kontrole verdigimiz isimle ayni bir degiskeni otomatik olarak olusturacaktir.

Kontrolun kullanimina iliskin bir ornek vermek gerekirse,

1.Text editorunuzu acip asagidaki kodlari yazin.

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

$Mesaj1="Turk Milleti Zekidir";
$Mesaj2="Izindeyiz Atam";
$Mesaj3="Turk Gencligi Sorumlulugunu Bilmektedir";

echo "<FORM METHOD=GET ACTION='Gizli2.php'>";

echo "Hangi cumle daha cok hosunuza gitti?";

echo "<SELECT NAME='ListeKutusu'>";

echo "<OPTION>$Mesaj1</OPTION>";
echo "<OPTION>$Mesaj2</OPTION>";
echo "<OPTION>$Mesaj3</OPTION>";

echo "</SELECT><BR><BR>";

echo "<INPUT TYPE=HIDDEN NAME=Gizli1 VALUE='$Mesaj1'>";
echo "<INPUT TYPE=HIDDEN NAME=Gizli2 VALUE='$Mesaj2'>";
echo "<INPUT TYPE=HIDDEN NAME=Gizli3 VALUE='$Mesaj3'>";

echo "<INPUT TYPE=SUBMIT>";
echo "</FORM>";
?>
</BODY>
</HTML>

2.Bu dosyayi "gizli.php" olarak kayit edin.

3.Bir baska text editoru dosyasi acarak asagidaki kodlari yazin.

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

echo "Listelenen uc cumle soyleydi : <BR>";
echo "$Gizli1<BR>";
echo "$Gizli2<BR>";
echo "$Gizli3<BR>";

echo "<BR>Sizin seciminiz : <BR>";
echo "$ListeKutusu";

?>
</BODY>
</HTML>

4.Bu dosyayi "gizli2.php" adiyla kayit edin.

5."gizli.php" dosyaysini acip bir secim yapin ve gonder tusuna basin.

Yukaridaki kodlarla ilgili detayli aciklama :

Ilk uc satir kod ile $Mesaj1,$Mesaj2,$Mesaj3 degiskenlerimize birer deger atadik.

echo kullanarak HTML taglarimizi degisken kullanarak yazdik.Aslinda echo kullanmadan da HTML taglarini dogrudan yazabilirdik ama ince nokta surada echo kullanimi ile PHP degiskenlerinin HTML icerisine yerlestirilmesini sagladik.

echo "<OPTION>$Mesaj1</OPTION>";
echo "<OPTION>$Mesaj2</OPTION>";
echo "<OPTION>$Mesaj3</OPTION>";

kodlari ile icinden secim yapilabilen liste kutumuzu yarattik.Gordugunuz gibi secenekleri dogrudan <OPTION> </OPTION> taglari arasina yazmak yerine PHP degiskenlerini kullandik.Nasil olsa onlarada biz deger verdik.Yani kisaca $Mesaj degiskenleri bizim kontrolumuzda.Bu sekilde programcilik tekniginizi gelistirmek onemli.

Son olarak ise zaten daha once liste kutusu icinde kullandigimiz bu $Mesaj degiskenlerini "Gizli Kontrolunu" kullanarak Gizli1,Gizli2,Gizli3 kontrollerine yerlesitrdik.
Gonder tusuna basilinca bu kontroller icinde kullanici gormeden bu 3 cumlede Gizli1,Gizli2,Gizli3 kontrolleri yardimiyla bir sonraki sayfaya rahatlikla tasindi.Son olarak bu Gizli kontroller icindeki veriler ekrana,bizim secimimiz ile beraber yazdirildi.

Password, sifrelerin text alaninda yildiz seklinde gosterilmesi

Aslinda bir "text" kontrolu olan "password" kontrolu ile text alanina yazilan yazilarin yildiz seklinde gosterimini sagliyoruz.Bu sekilde kullanicinin yazdigi karekterler baskalari tarafindan okunamiyor.Bu sekilde yanlizca lokal bir guvenlik saglanir.Kullanicinin yanindaki insanlarin sifreyi gormemelri icin saglanmis bir kontroldur.Halen internet uzerindeki yolculugunda bu veriler baskalari tarafindan okunabilir.Bunu engellemek icin SSL(Secure Socket Layer) kullanarak herseyi encrypt etmeniz gereklidir.

Kontrolun kullanimina bir ornek vermek istersek,

Sifreniz nedir?
<INPUT NAME="Sifre" TYPE="Password">

Kontroller konusunu burada bitirdik simdi genel olarak bu kontrolleri kullanarak kucuk bir uygulama yazip PHP nin bu kontroller yardimyla kullanicidan aldigimiz verileri dinamik olarak nasil isledigine bakalim.

ORNEK UYGULAMA

<HTML>
<HEAD></HEAD>
<BODY>

Seres Bankasi Kredi Isleme Basvuru Formu

<FORM METHOD=POST ACTION="kredi.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 TL'lik Paket %15.0 Faiz<BR>

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

</FORM>
</BODY>
</HTML>

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

3.Yeni bir text dosyasi acin ve asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
Seres Bankasi Kredi Isleme Sonuclari
<BR>
<BR>

<?php

$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>

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

5."kredi.html" dosyasini acip icine bir kac veri girin ve "Buraya tiklayarak Formu Gonderebilirsiniz" tusuna tiklayin.

6.Bakalim kredi isteginiz kabul edilcekmi :))

Ornek Dosyalar

http://www.turk-php.com/ornekler/kredi.html

http://www.turk-php.com/ornekler/kredi.php

Not : Yukarida yas faktoru hesaplanirken kullanicinin girdigi yas kategorilere ayriliyor ve eger 0-19 arasinda bir yas girerse goruldugu uzere formulasyonda $YasFaktoumuz 0 oluyor.20-29 arasi girilen yaslar icin 1 ,30-39 arasi yaslar icin 2 ve benzeri.Kullanicimiz 19 yasindan kucuk ise bu sekilde donen 0 degeri ile,Kullaniciya hic bir sekilde kredi verilmemesi saglanmistir.$YasFaktoru formulasyonunda "%" operatoru "modul" hesaplamalarinda kullanilir.Modul hesaplamasi hakkinda bilginiz yoksa biraz bahsedeyim.

Ornek verecek olursak 16 nin 3 lu olarak modulu 1 dir.

III+III+III+III+III+I
^ (Modul demek kalan demektir)
Yukaridaki tabloda 16 sayisini ucer ucer ayirdim ve kalan sonuca baktim kalan sonuc 1 degilmi.Iste modulumuz dememkki 1 mis.

Mesela 8 Mod 4 u hesaplayalim.

IIII+IIII Gordugunuz gibi kalan 0.Yani 8 icinde iki tane 4 lu grup var ve sonucta hic bir sey geriye kalmiyor.Modulumuz 0'mis.

25%3 = 4
9%3 = 0
12%5 = 2

Gibi ornekler verilebilir.

Tekrar konumuza donecek olursak,$Yas degiskeni icerisinde verilen degiskeni 10 ar 10 ar gruplamak istiyoruz.Bu sekilde $Yas faktorunu kredi verip vermeme konusunda bir kistas olarak kullanacagiz.Bunu yapmak icin "modul" kullaniyoruz.Verilen yasin 10'a gore modulunu aliyoruz.Mesela yasimizi 20 olarak forma girdigimizi varsayalim ve bilgisyarin yaptigi hesaplamalara bir bakalim.

$YasFaktoru = ($Yas/10 - ($Yas%10) /10 )-1;
^^^^^
Once formda kullanicin girdigi yasi 10'a bolunuyor.Sonuc 20/10 = 2

$YasFaktoru = ($Yas/10 - ($Yas%10) /10 )-1;
^^^^^^^
Sonra parantezin icindeki islem yapilarak verilen yasin 10'lu modulune bakiliyor.Sonuc 20%10 = 0 (20 yi 10 ar 10ar ayirdigimizda geriye hic kalan olmaz)

$YasFaktoru = ($Yas/10 - ($Yas%10) /10 )-1;
^
Cikan sonuc 10'a bolunuyor.Sonuc 0/10 = 0

$YasFaktoru = ($Yas/10 - ($Yas%10) /10 )-1;
( 2 - 0 )-1
Grdugunuz gibi yas faktorumuz "1" oluyor.Yas grubu arttikca alttaki fonksiyonda UcretFaktoru ile carpildigi icin Kullanicicnin daha fazla kredi alabilmesi saglaniyor.Yasi kucukler icin az kredi yasi buyukler icin cok kredi bu sekilde saglanniyor.

Her turlu sorunuz icin mail atmaktan cekinmeyiniz.
serkan@turk-php.com

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>