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." />
16. Form Giriş Kontrolleri
Checkboxes:
Radio buttons:
Radyo düğmeleri gruplanabilir, grup içinden
sadece birinin seçilmesine izin verilir:
16
<input type="checkbox" name= "meyve"
value="elma" />
<input type="radio" name="sifat" value="Bay."
/>
<input type="radio" name="sehir" value="izmir" />
<input type="radio" name= "sehir" value="ankara" />
17. Diğer Form Kontrolleri
Açılır Liste (Dropdown menus):
Gönder (Submit) düğmesi:
17
<select name="cinsiyet">
<option value="1"
selected="selected">Erkek</option>
<option value="2">Kadın</option>
<option value="3">Diğer</option>
</select>
<input type="submit" name="submitBtn"
value="Şimdi Uygula" />
18. Diğer Form Kontrolleri (2)
Reset düğmesi – formu başlangış durumuna geri
getirir.
Image düğmesi– gönderme düğmesi gibidir fakat
resim gösterilir ve tık koordinatı gönderilir
Genel amaçlı düğme – Javascript içinde kullanılır,
versayılaneylem yoktur.
18
<input type="reset" name="resetBtn"
value="Reset the form" />
<input type="image" src="submit.gif"
name="submitBtn" alt="Gönder" />
<input type="button" value="bana tıkla" />
19. Diğer Form Kontrolleri (3)
Parola Girişi – Girilen metni * işareti ile
maskeler/gizler
Çoklu seçim alanı – tek satır yerine çok satırda
madde listesi görüntüler
19
<input type="password" name="pass" />
<select name="urunler" multiple="multiple">
<option value="1"
selected="selected">klavye</option>
<option value="2">fare</option>
<option value="3">monitör</option>
</select>
20. Diğer Form Kontrolleri (4)
Dosya girişi– Dosyaları yüklemek için kullanılan
bir alandır
Dosya yükleme yapılacağı zaman dosyayı
gönderme biçimini tanımlamak için enctype
niteliği kullanılır. Genelde multipart/form-data
değerini alır.:
20
<input type="file" name="foto" />
<form enctype="multipart/form-data">
...
<input type="file" name="foto" />
...
</form>
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 Slider,
form bileşeni olacağı belirlenir
Farklı tarayıcılarda farklılıklar gösterebilir.
Sliders 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" />