• Sonuç bulunamadı

ÜNİTE 9 ÜNİTE. İNTERNET PROGRAMCILIĞI - I Uzm. Gökhan TUTAR İÇİNDEKİLER HEDEFLER. Form ve Oturum İşlemleri

N/A
N/A
Protected

Academic year: 2022

Share "ÜNİTE 9 ÜNİTE. İNTERNET PROGRAMCILIĞI - I Uzm. Gökhan TUTAR İÇİNDEKİLER HEDEFLER. Form ve Oturum İşlemleri"

Copied!
16
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

ÜNİTE

9

Form ve Oturum İşlemleri

İNTERNET

PROGRAMCILIĞI - I Uzm. Gökhan TUTAR

İÇ İN DE KİL ER • Form ve Oturum İşlemleri

• Form Elementleri

• Form elementlerindeki verilerin işlenmesi

• Oturum İşlemleri

HED EF LER

•Bu üniteyi çalıştıktan sonra;

•Form oluşturarak girilen verileri işleyebilecek,

•Login sayfası oluşturarak sadece yetkili kişilerin o sayfaya

erişmesini sağlayabileceksiniz.

ÜNİTE

9

(2)

GİRİŞ

Bu ünitede form işlemleri ile oturum işlemlerinin nasıl yapılacağı anlatılacaktır.

Ünite içerisinde yer alan örnek kod gösteriminde notepad++ editörü kullanılmıştır.

FORM VE ELEMENTLERİ

Programlamada kullanıcıdan bilgi almada çalışacak program ihtiyacı çok azdır. Genellikle kullanıcılardan bilgi girişi istenir ve girilen o bilgiler işlenerek işlem yapılır. Bu bilgi girişi internet tabanlı programlamada genellikle form ve

elementleri ile oluşur. Form ve elementleri html elementleridir.

Kullanım şekli: <form action=”adres” method=”metot”>elementler<form>

Resim 9.1: Form

Form elementinin parametrelerinden olan “method” genel olarak iki değer alabilir. Bunlar:

GET:

Eğer formun method kısmına bu değer yazılırsa formda gönderilen bilgiler tarayıcının adres çubuğunda gözünür ve en fazla 255 karakter veri

gönderilebilir. Gönderilen bilgiler göründüğü için POST metoduna göre biraz daha güvensiz ancak daha hızlıdır.

POST:

Eğer formun method kısmına bu değer yazılırsa formdaki

gönderilen bilgiler tarayıcının adres çubuğunda görünmez ve sunucu ayarına göre sınırsız boyutta veri gönderilebilir. GET metoduna göre biraz daha güvenli, ancak daha yavaştır.

Kullanıcının veri gönderebilmesi için kullanılan html elementlerine” form elementleri” denir. Bu elementlerin kullanıcıların daha kolay veri gönderebilmesi için birçok türü vardır.

Bunlardan bazıları:

Tablo 9.1: Form elementleri tür açıklama

text Kısa metin girişi için password Şifre girişi için

submit Form verilerinin gönderilmesi için kullanılan buton

textarea Uzun metin girişi için

Form elementlerinin kullanım şekli textarea haricinde aynıdır. Bu elementlerin varsayılan değerinin kullanımı zorunlu değildir.

GET metodu ile en fazla 255 karakter veri

gönderilebilir.

POST metodunda ise sunucu ayarına göre

sınırsız veri gönderilebilir.

(3)

Kullanım şekli: <input type=”tür” name=”nesne adı” value=”değer”/>

Textarea kullanım şekli: <textarea name=”adı”> değer </textarea>

Resim 9.2: Form elementleri

FORM ELEMENTLERİNDEKİ VERİLERİN İŞLENMESİ

Daha önceki örneklerimizde bazı form elementlerinin kullanım şekli gösterilmiştir. Şimdi de bu form elementlerine girilen değerlerin PHP tarafından nasıl işleneceğini görelim.

Formdaki elementin değerini almak PHP’de “$_GET” ve “$_POST” global değişkenleri kullanılır ve bu global değişkenler dizi yapısındadır.

Kullanım şekli: $_GET[input’un name özelliğinde yazılan ad]

$_POST[input’un name özelliğinde yazılan ad]

Bir formun içerine “text” alanı ekleyerek “GET” metodu ile girilen bu değeri ekrana yazdıralım. Bu örnek için önce “form.php” dosyası oluşturalım.

Resim 9.3: Form elementleri

Yukarıdaki örnekte “yazi” adından bir text alanı oluşturulmuştur. “Gönder”

butonuna tıklanınca doldurulan bilgileri “islem.php” dosyasına gönderilecektir. Bu örnekte dikkat edilmesi gereken kısım formun “method” özelliğine “get”

yazılmasıdır. Bu özelliği “get” olarak ayarladığımız için gönderdiğimiz veriler adres çubuğunda görünecektir.

Resim 9.4: Form elementleri

Yukarıdaki örnek formda “name” özelliği “yazi” olanın içeriğini ekrana yazdırdık. Formda doldurduğumuz “yazi” inputunun değeri adres çubuğunda görünmektedir. Oluşturulan formun metodu “get” olduğu zaman PHP’de gönderilen veriyi alırken “$_GET” global değişkeni kullanılır.

$_GET ve $_POST, global değişkenlerdir.

(4)

Yukarıdaki örneği bu defa da “post” metodu ile yapalım:

Resim 9.5: Form elementleri

Formumuzu oluşturduk. Bu sefer “method” kısmına “get” yerine “post”

yazdık.

Resim 9.6: Form elementleri

Aynı işlemleri “post” metodu ile yaptığımızda gönderilen veri adres çubuğunda görünmez. Oluşturulan formun metodu “post” olduğu zaman PHP’de gönderilen veriyi alırken “$_POST” global değişkeni kullanılır.

OTURUM İŞLEMLERİ

Bir değişkene değer atadığımızda bu değer o sayfa için geçerlidir. Bu değişkeni başka sayfada kullanamayız. Bir sayfada tanımlanan değişkeni başka bir sayfada kullanmak için “$_SESSION” global değişkeni kullanılır. Bu değişken dizi yapısındadır. Bu global değişkeni tanımlamadan veya çağırmadan önce

session_start() fonksiyonunun kullanımı zorunludur.

Resim 9.7: Oturum işlemleri

Yukarıdaki örnekte “$uye_adi” adlı değişkene “Ahmet” değeri vererek tanımladık ve bu dosyayı “tanimla.php” adı ile kaydettik. Bu dosyada

tanımladığımız değişkeni “getir.php” adındaki dosyadan çağırmayı deneyeceğiz.

Resim 9.8: Oturum işlemleri

Yukarıdaki örnekte de görülebileceği gibi sıradan değişkenler bir sayfada tanımlandığında başka sayfadan çağırılamaz. Fakat “$_SESSION” global değişkeni bu işlemi yapabilmektedir.

$_SESSION değişkeni tanımlandıktan sonra

farklı sayfalar da çağrılabilir.

(5)

Resim 9.9: Oturum işlemleri

Yukarıdaki örnekte önce sesion_start() fonksiyonu ile bu sayfada

“$_SESSION” global değişkeni ile işlem yapacağımızı belirtik ve “$_SESSION”

değişkenini tıpkı dizilerde olduğu gibi index vererek tanımladık. Bu sayfayı

“tanımla.php” olarak kaydettik. Şimdi de bu sayfada tanımladığımız değişkeni

“getir.php” adından sayfa oluşturarak ekrana yazdıralım:

Resim 9.10: Oturum işlemleri

Yukarıdaki örnekte de görülebileceği gibi “tanımla.php” de oluşturduğumuz bir değeri daha sonra “getir.php” sayfasında ekrana yazdırdık.

PHP bu işlemi gerçekleştirmek için önce tarayıcımıza eşsiz bir değer gönderir ve sunucumuz da bu değer adında bir dosya oluşturur. Biz “$_SESSION”

değişkenine değer atadığımızda bilgiler bu dosyaya kaydedilir. Kişinin tarayıcısında bu essiz değer varsa PHP o dosyadaki değeri bize verir biz de istediğimiz işlemleri gerçekleştirebiliriz.

“$_SESSION” değişkeninin en fazla kullanım amacı, sayfalarımızı sadece bizim belirlediğimiz kullanıcıların ziyaret edebilmesini sağlamaktır. Bu işlemi yapmadan önce isset() fonksiyonunun kullanımını anlatılacaktır. Bu fonksiyon eğer değişken tanımlandı ise doğru “true”, tanımlanmadı ise yanlış “false” yanıtını döndürür.

Kullanım şekli: isset(değişken)

Resim 9.11: Oturum işlemleri

Yukarıdaki örnekte “$_SESSION[“isim”]” değişkeni daha önce

tanımlanmadığı için isset() fonksiyonu yanlış “false” yanıtını döndürdü. Şimdi de

“$_SESSION[“isim”]” adındaki değişken tanımlayıp bu işlemi tekrar yapalım:

isset() fonksiyonu değişkenin tanımlanıp

tanımlanmadığını kontrol eder.

(6)

Resim 9.12: Oturum işlemleri

Yukarıdaki örnekte “$_SESSION[“isim”]” adlı değişken tanımlandığı için isset fonksiyonu doğru “true” yanıtını döndürdü.

Yukarda gösterilen işlemleri kullanarak bir sayfamızdaki verileri, sadece

“$_SESSION[“isim”]” değişkeni tanımlanmışsa ekrana “Giriş başarılı”, tanımlanmamışsa “Giriş başarısız” yazdıralım:

Resim 9.13: Oturum işlemleri

Yukarıdaki örnekte “Giriş başarılı” yazmasının nedeni, daha önceden

“$_SESSION[“isim”]” adlı değişkeni tanımlamamızdır. Hiçbir kod değiştirmeden sayfayı ya farklı bir tarayıcıda veya tarayıcı geçmişini silerek yenileyelim:

Resim 9.14: Oturum işlemleri

Tarayıcımızın geçmişini sildikten sonra sayfayı yenilediğimizde ekranda

“Giriş başarısız” yazdığı görülmektedir.

(7)

Şimdiye kadar yaptığımız işlemleri birleştirerek önce bir form oluşturalım.

Bu formda kullanıcı,adını ve şifresini girsin. Eğer adı alanına “Ahmet”, şifre alanına da “123” yazarsa “islem.php” sayfasında “Hoşgeldin Ahmet”, farklı bilgiler yazarsa da “Yetkiniz yoktur” mesajı ekrana gelsin.

İlk olarak formu oluşturalım ve “login.php” adıyla kaydedelim:

Resim 9.15: Oturum işlemleri

Yukarıdaki örnekte bir tane “text” tipinde kullanıcı adını yazmak, bir tane de

“password” tipinde şifre yazmak için iki tane veri alanı oluşturduk.

Oluşturduğumuz formun ekran görüntüsü aşağıda verilmiştir:

Resim 9.16: Oturum işlemleri

Şimdi de sadece bizim belirlediğimiz kişilerin görebileceği sayfayı oluşturalım.

Resim 9.17: Oturum işlemleri

Yukarıdaki örnekte “login.php” sayfasından gelen “$_POST[“isim”]”

değişkeni “Ahmet” ve “$_POST[“sifre”]” değişkeni “123” ise girilen bilgileri

“$_SESSION” değişkenine atandı ve ekrana “Hoşgeldin Ahmet”, değilse ekrana

“Yetkiniz yoktur” yazıldı.

(8)

Formumuzda “Kullanıcı Adı” kısmına “Mehmet”, “Sifre” kısmına da “123”

yazarak “Gönder” butonuna tıklayalım:

Resim 9.18: Oturum işlemleri

Kullanıcı adına “Ahmet” yerine “Mehmet” yazdığımız için ekran görüntüsü aşağıdaki gibi olur:

Resim 9.19: Oturum işlemleri

Formumuzda “Kullanıcı Adı” kısmına “Ahmet”, “Sifre” kısmına da “123”

yazarak “Gönder” butonuna tıkladığımızda ekran görüntüsü aşağıdaki gibi olacaktır:

Resim 9.20: Oturum işlemleri

Yukarıdaki örnekte kullanıcı adı ve şifre bilgileri istediğimiz şekilde girildiği için ekrana “Hoş geldin Ahmet” yazıldı.

Kullanıcı grupları oluşturarak farklı kullanıcıları farklı sayfalara yetkilendirme yapabiliriz.

Bu örneğimizde “ahmet.php”, “mehmet.php”, “diger.php” dosyaları

oluşturalım. Ahmet kullanıcısı “ahmet.php”, Mehmet kullanıcısı ise “mehmet.php”

dosyasının içeriğini görebilsin. Formu dolduran herhangi bir kişi (Ahmet ve Mehmet dâhil) “diger.php” dosyasının içeriğini görebilsin.

(9)

Aşağıdaki işlemleri gerçekleştirmeden önce tarayıcınızın geçmişini silmeyi unutmayınız.

Kişilerin adlarını girebilmesi için “login.php” dosyasını oluşturarak içerisine aşağıdaki kodları yazalım:

Resim 9.21: Oturum işlemleri

Kullanıcının girdiği bilgiyi “$_SESSION” değişkenimize atayalım ve oluşturacağımız sayfalara kolay erişim sağlamak için link verelim:

Resim 9.22: Oturum işlemleri

Yukarıdaki örnekte formdan gelen veriyi $_SESSION değişkenine atadık ve ekrana “Hoşgeldin ” formdan gelecek isim yazdırdık. Kullanıcı adına “Ahmet” yazıp

“Gönder” butonuna tıklayınca aşağıdaki ekran görüntüsü oluşacaktır:

Resim 9.23: Oturum işlemleri

Yukarıdaki örnekte “Ahmet”, “Mehmet” veya “Diğer” yazılarının üzerine tıklanınca sayfalar hata verecektir. Çünkü henüz o sayfaları oluşturmadık. Şimdi

“ahmet.php” sayfasını oluşturalım:

(10)

Resim 9.24: Oturum işlemleri

Yukarıdaki örnekte eğer önceki formda kullanıcı adı olarak “Ahmet”

yazılmışsa ekrana “Yetkiniz var”, farklı bir şey yazılmışsa “Bu sayfayı sadece Ahmet görebilir” yazısı gelecek. Kullanıcı adı kısmına daha önceden “Ahmet” yazdığı için ekran görüntüsü aşağıdaki gibi olacaktır.

Resim 9.25: Oturum işlemleri Şimdi de “mehmet.php” adlı sayfanın kodlarını yazalım:

Resim 9.26: Oturum işlemleri

Yukarıdaki örnekte eğer önceki formda kullanıcı adı olarak “Mehmet”

yazılmışsa ekrana “Yetkiniz var”, farklı bir şey yazılmışsa “Bu sayfayı sadece Mehmet görebilir” yazısı gelecek. Kullanıcı adı kısmına daha önceden “Ahmet”

yazıldığı için ekran görüntüsü aşağıdaki gibi olacaktır:

(11)

Resim 9.27: Oturum işlemleri Şimdi de “diger.php” adlı sayfanın kodlarını yazalım:

Resim 9.28: Oturum işlemleri

Yukarıdaki örnekte eğer önceki formda kullanıcı adı olarak “Ahmet”

yazılmışsa ekrana “Merhaba Ahmet”, “Mehmet” yazılmışsa “Merhaba Mehmet”

veya farklı bir isim yazılmışsa “Merhaba” formda yazılan isim yazacaktır. Ancak form doldurulmadan direkt bu sayfaya erişmek isteyen kişinin ekranında “Formu”

doldurunuz yazacaktır. Biz daha önceden kullanıcı adı kısmına daha önceden

“Ahmet” yazıldığımız için ekran görüntüsü aşağıdaki gibi olacaktır:

Resim 9.29: Oturum işlemleri

Son olarak “$_SESSION” değişkeninde bulunan bütün değerleri silmek için session_destroy() fonksiyonu kullanılır. Genel olarak kullanıcı çıkış yapmak istediğinde bu fonksiyonu kullanılır ki kişinin oturumu kapatılsın.

Kullanım şekli: session_destroy()

Resim 9.30: Oturum işlemleri

(12)

Öz et

•GET: Eğer formun method kısmına bu değer yazılırsa formdaki gönderilen bilgiler tarayıcının adres çubuğunda görünür ve en fazla 255 karakter veri gönderilebilir.

Gönderilen bilgiler göründüğü için POST methoduna göre biraz daha güvensiz, ancak daha hızlıdır.

•POST: Eğer formun method kısmına bu değer yazılırsa formdaki gönderilen bilgiler tarayıcının adres çubuğunda görünmez ve sunucu ayarına göre sınırsız boyutta veri gönderilebilir. GET methoduna göre biraz daha güvenli ,ancak daha yavaştır.

•$_SESSION değişkeni tanımlandıktan sonra farklı sayfalar da çağrılabilir.

(13)

Öd ev

•Farklı sayfalar oluşturarak bu sayfalara farklı kişiler yetkilendirin ve bu kişilerin login yapabilmesi için form oluşturun.

•Hazırladığınız ödevi sistemde ilgili ünite başlığı altında yer alan

“Ödev” bölümüne yükleyebilirsiniz.

(14)

DEĞERLENDİRME SORULARI

1. Aşağıdakilerden hangisi “get” metodu hakkında doğrudur?

a) “post” metoduna göre daha hızlıdır.

b) Sınırsız boyutta veri gönderilebilir.

c) “post” metoduna göre daha güvenlidir.

d) “post” metoduna göre daha yavaştır.

e) En fazla 552 karakter veri gönderebilir.

2. Aşağıdakilerden hangisi “post” metodu hakkında doğrudur?

a) “get” metoduna göre daha hızlıdır.

b) En az 255 karakter veri gönderilir.

c) “get” metoduna göre daha güvensizdir.

d) “get” metoduna göre daha yavaştır.

e) En fazla 552 karakter veri gönderebilir.

3. Aşağıdakilerden hangisinde $_GET, $_POST, $_SESSION değişkenlerinin ortak özelliği verilmiştir?

a) Bir sayfa da tanımlandığında farklı sayfalarda da kullanılabilir.

b) Global değişkenlerdir.

c) En fazla 255 karakter veri barındırabilirler.

d) Kullanıcının bilgisayarında oluşturulurlar.

e) Dizi yapısında değillerdir.

4. $_SESSION değişkenini kullanmadan önce çalıştırılacak fonksiyon aşağıdakilerden hangisidir?

a) baslat_session() b) start_session() c) reset_session() d) get_session() e) stop_session()

5. Aşağıdakilerden hangisi $_SESSION değişkeni hakkında doğrudur?

a) Bir sayfada tanımlandıktan sonra farklı sayfalar da çağrılabilir.

b) En az 255 karakter veri depolayabilir.

c) Sadece tanımlandığı sayfada kullanılabilir.

d) Dizi yapısında kullanılamaz.

e) Global değişken değillerdir.

Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer

alan “Bölüm Sonu Testi” bölümünde etkileşimli olarak cevaplayabilirsiniz.

(15)

6. Aşağıdakilerden hangisi isset() fonksiyonunun kullanım amacıdır?

a) $_SESSION değişkenini silmek için b) $_GET değişkenini kullanmak için

c) Bir değişkenin tanımlanıp tanımlanmadığını öğrenmek için d) Dizinin ilk elemanını alabilmek için

e) Oturum açmak için

7. Oturum açma işlemi yapılırken neden form “method” una “get” yazılması tavsiye edilmez?

a) Veriler çok uzun olabileceği için

b) Gönderilen veriler adres çubuğunda göründüğü için c) Bu işlem gerçekleştirilemediği için

d) Çok fazla işlemci kullanıldığı için e) Çok fazla ram kullanıldığı için

8. Kullanıcıların şifre girmesi için oluşturulacak input un “type” özelliğine ne yazılır?

a) textarea b) text c) button d) password e) sifre

9. Kullanıcıların kısa metin girebilmesi için oluşturulacak input un “type”

özelliğine ne yazılır?

a) textarea b) text c) button d) password e) kisa_yazi

10. Aşağıdaki fonksiyonlardan hangisi $_SESSION değişkeninde bulunan bütün verileri silmek için kullanılır?

a) selete() b) session_sil() c) sil_session() d) session_destroy() e) destroy_session()

(16)

YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR

Tatros, K. MacIntyre, P. Lerdorf, R. (2013). Programming PHP, O’Reilly Media.

Forbes, A. (2013). The Joy of PHP: A Beginner's Guide to Programming Interactive Web Applications with PHP and mySQL, Paperback.

Welling, L., Thomson, L. (2009). PHP and MySQL Web Development (4th Edition), Pearson Education.

Powers, D. (2010). PHP Solutions: Dynamic Web Design Made Easy, Apress.

Referanslar

Benzer Belgeler

Yönlendiren adres bilgisini alabilmek için gerekli olan kod örneği aşağıdaki gibi verilebilir.. Resim 10.7: Yönlendirme bilgisi için PHP

short –&gt; shorter small –&gt; smaller tall –&gt; taller..  İki veya daha fazla heceli sıfatların önüne “more” kelime getirilir ve bu cümleye “daha”

Seçilen uygulama dilinin yerel bilgisayarda derlenmesi ve çalıştırılabilmesi için gerekli olan servislerin yüklenmiş olması gerekmektedir1. Her bir dilin kendine özgü

Sistemimizde yüklü olan temaları listelemek, temayı değiştirmek veya yeni tema yüklemek için “Görünüm”-&gt;”Temalar” yolu takip edilir..

2013- Öğretim Görevlisi Yakın Doğu Üniversitesi Mimarlık Fakültesi İLGİ ALANLARI: Sinema, Fotoğraf , Tiyatro, Kitap okumak, Halk Dansları. DİLLER:

 Değer, bir toplumun veya grubun varlık, birlik, işleyiş ve devamını sağlamak için üyelerinin çoğu tarafından doğru ve gerekli oldukları kabul ve tasdik edilen,

 Değerler eğitiminde öğretim programlarının değerleri benimsetecek şekilde düzenlenmesi, etkili, farklı değerler eğitimi etkinliklerine yer verilmesi, öğretmenlerin

İşlenecek Değer/Değerler (Planda birden fazla sayıda değer işlemek istiyorsanız burada belirtiniz) Değer Öğretimi Yaklaşımı (Planı hangi yaklaşıma uygun