Eskişehir Osmangazi Üniversitesi, Eğitim Fakültesi, Bilgisayar ve Öğretim Teknolojileri Eğitimi Bölümünde açılan İnternet Tabanlı Programlama ders notları.PHP ve Kullanıcı Girişlerinin İşlenmesi
HTML Formlar – Kullanıcı Girişlerinin İşlenmesi
GET ve POST farklılıklar
Sihirli cURL
Escaping user data
Dosyalar
4. HTML Formlar
 Kullanıcıların sunucuya veri gönderebilmeleri
tek yolu vardır –HTML Formlar
ï‚ Grirdirilmesi/gönderilmesi planlanan verinin
türünü belirleyen alanlar kümesidir.
ï‚ Sunucu formda doldurulan veriyi alır ve yeni bir
sayfa üretir.
ï‚ Gönderilen verinin alınabimesi için CGI betiklere
ihtiyaç vardır
ï‚ Form verileri normal uygulamalardaki
argümanlar ile benzerlik gösterir.
5. Nasıl Çalışır
Kullanıcı veri girer ve gönderir. Form
Veriyi ileteceÄŸi bir "action" URL
özniteliğine sahiptir.
<?
echo "Welcome".$_POST ['username']."!";
?>
PHP betik veriyi
$_GETve $_POST
Diziler halinde alır ve çalıştırır.
…
<body>
Hoş geldinÇekirge!
…
Kullanıcının göndermiş olduğu
Verinin bir sonucu olarak
HTML üretir.
7. $_POST ve $_GET
 PHP verileri $_GET ve $_POST dizileri içinde
alır.
ï‚ URL parametreleri $_GET dizisine gider
ï‚ method="post" yöntemi ile fromdan
gönderilen veriler $_POST dizisindedir.
ï‚ Ä°stek yöntemi post yöntemidir.
ï‚ Hangi istek yönteminin kullanıldığı $_SERVER
dizisinden kontrol edilebilir
ï‚ Her iki dizi de global’dir ve diÄŸer diziler gibi
kullanılabilir
8. $_POST
ï‚® $_POST bir iliÅŸkisel dizidir
ï‚ Form giriÅŸ özniteliÄŸindeki isimler(name özniteliÄŸi )
dizideanahtar/ilişkihaline dönüşür ve girilen verilere bu
iliÅŸkilerile eriliebilir
ï‚ Kullanıcı name= "name" özniteliÄŸine sahip giriÅŸ
alanına "John"; name= "pass" özniteliğine sahip giriş
alanına "mypass" girerse
ï‚ test.php $_POST dizisini kullanır:
ï‚ $_POST['name']  "John"deÄŸerine sahip olur
ï‚ $_POST['pass"]  "mypass" deÄŸerine sahip olur
<form method="post" action="test.php">
<input type="text" name="name" />
<input type="password" name="pass" />
</form>
9. $_GET
ï‚® $_GET dizisi de iliÅŸkisel bir dizidir
ï‚ AÅŸağıdaki URL adres çubuÄŸunda açılırsa:
ï‚ test2.php betiÄŸi $_GET dizisinden
verileri alacaktır
ï‚ $_GET['page'] 1 deÄŸerine sahip olur
ï‚ $_GET['user']  "john" deÄŸerine sahip olur
http://phpcourse.com/test2.php?page=1&user=john
10. $_POST ve $_GET Karşılaştırma
 Get isteklerinde parametreler URL üzerinden iletilir
ï‚ Kullanıcıların baÄŸlantı ya da iÅŸaret imi olarak sayfaya
eriÅŸimineolanak saÄŸlar
ï‚ URL 255 karakter ile sınırlıdır
 Post isteklerinde parametreler istek gövdesi
üzerinden gönderilir
ï‚ Kullanıcılar form üzerindeki gönderilecek verileri
doldurmadansayfayı açamazlar
ï‚ Dosya gönderimine izin verir
ï‚ Sınırsız boyutta (php.ini dosyasındakiayarın izin
11. İstekTürüTespiti
ï‚® $_SERVER['REQUEST_METHOD']dizi
elemanı istek türünü saklar
ï‚ 'GET', 'POST', 'HEAD', 'PUT‘ deÄŸerlerinden
birine sahiptir
ï‚ Kullanıcıların veri gönderdiklerinin veya
URL’den henüz açıldığının tespit edilmesi
amacıyla kullanılabilir
ï‚ Büyük/küçükharf duyarlıdır!
13. HTML Formlar
 Formlar site ziyaretçilerinden veri toplamanın
en başta gelen yöntemidir.
 Form bloklarını yaratmak için:
 Örnek:
13
<form></form>
<form name="myForm" method="post"
action="path/to/some-script.php">
...
</form>
"action" niteliÄŸi form verilerinin hangi
sayfaya gönderileceğini söyler
“method" niteliği form verilerinin
nasıl gönderilmesigerektiğini söyler
– GET veya POST isteği üzerinden
14. Form Alanları
 Tek satır metin giriş alanı:
 Çok satır metin bölgesi alanı:
 Saklı (Hidden) alanlar kullanıcıya görünmeyen
verileri saklar:
ï‚ Genellikle JavaScript kodlar tarafından kullanılır 14
<input type="text" name= "ilkAdi" value= "Bu
bir metin alanıdır" />
<textarea name= "yorumlar">Bu bir çok satırlı
metin alanıdır</textarea>
<input type="hidden" name="hesap" value="Bu bir
gizli metin alanıdır." />
21. Etiketler
 Form etiketleri (label) , form alan ID’leri
kullanılarak açıklayıcı metin konmasını sağlar.
 Bir etikete tıklamak ilişkili alana odaklanılmasını
saÄŸlar (checkboxes terslenir (toggled), radio
düğmeleri seçili olur)
 Etiketler bir kullanılabilirlik ve erişilebilirlik özelliği
olup her ikisi de erişilebilirlik doğrulamasından
geçmek için gereklidir.
21
<label for="fn">Ä°lk Ä°sim</label>
<input type="text" id="fn" />
25. Range ve Spinbox
 Kullanıcıları sadece sayısal değer girmeleri
yönünde kısıtlar
ï‚ Ek özellikler min, max ve step ve value
ï‚ Input tipine baÄŸlı olarak Spinbox veya ºÝºÝߣr,
form bileşeni olacağı belirlenir
ï‚ Farklı tarayıcılarda farklılıklar gösterebilir.
ï‚ ºÝºÝߣrs ve Spinboxes Firefox üzerinde
çalışmazlar
ï‚ Standart textbox olarak görüntülenr. 25
<input type="range" min="0" max="100" />
<input type="number" min="0" max="100" />
26. HTML 5’ten Gelen Özellikler
ï‚® Autocomplete
ï‚ Tarayıcı öceden girilmiÅŸ deÄŸerleri saklar
ï‚ Aynı sayfaya yapılan sonraki ziyaretlerde
saklanmış değerler geri getirilir.
ï‚® Autofocus
ï‚ Alan sayfa yüklenirkenfocus alabilir. (seçili
olabilir)
ï‚® Required
ï‚ Alan eÄŸer required (gerekli) ise
doldurmalı/seçilmelidir. 26
27. Doğrulamalı Giriş Alanları
 Eposta – eposta için basit bir doğrulama sağlar
ï‚ DoÄŸrulama için bir örüntü (patern) verilebilir
ï‚ Mobil cihazlarda eposta klavye getirir
 URL – url için doğrulama
ï‚ Mobil cihazlarda url klavye getirir
ï‚® Telefon
ï‚ Sayısal klavye getirir
27
<input type="email" required="true"
pattern="[^ @]*@[^ @].[^ @]"/>
<input type="url" required="true" />
<input type="tel" required="true" />
28. TabIndex
ï‚® tabindex HTML niteliÄŸi ,TAB tuÅŸuna arka
arkaya basıldığında form alanları ve
bağlantılarınınhangi sırada gezileceğini
kontrol etmek amacıyla kullanılır.
ï‚ tabindex="0" (sıfır) - "natural" (doÄŸal) sıra
ï‚ EÄŸer X >Y, tabindex="X" sahip bileÅŸen
tabindex="Y " sahip bileşenden önce tekrarlanır
ï‚ Negatif tabindex’e sahip bileÅŸenler atlanır,
bununla beraber, bu standartta tanımlı değildir
28
<input type="text" tabindex="10" />