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
|