Post on 16-Jun-2015
description
Internet Tabanlı
Programlama Dersi –
Uygulama Notları
2014
EYLÜL,2014 CELAL MURAT KANDEMİR
ESOGÜ | Eğitim Fakültesi – B.Ö.T.E
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
İçindekiler 1 Web Sunucusu Önemli Yapılandırma Dosyaları .............................................................................. 5
1.1 Önemli Yapılandırma Dosyaları ve Ayarları ............................................................................. 5
1.1.1 httpd.conf ........................................................................................................................ 5
1.1.2 php.ini .............................................................................................................................. 5
1.1.3 Diğer Yapılandırma Ayarları ............................................................................................. 6
1.2 PHP Sürüm Bilgisi (uygulama1‐1.php) ..................................................................................... 8
1.2.1 Ekran Çıktısı ..................................................................................................................... 8
1.3 PHP Sürüm 2 (uygulama1‐2.php) ............................................................................................ 9
1.3.1 Ekran Çıktısı ..................................................................................................................... 9
2 PHP Program Yapısı ve Değişken Tanımlamaları ........................................................................... 10
2.1 HTML Kodundan PHP’yi Ayırmak (uygulama2‐1.php) ........................................................... 10
2.1.1 Ekran Çıktısı: .................................................................................................................. 10
2.2 Açıklama Satırları ................................................................................................................... 11
2.3 Değişkenlerle İlgili Örnekler................................................................................................... 11
2.4 Değişken Türleri (uygulama2‐2.php) ..................................................................................... 13
2.4.1 Ekran Çıktısı ................................................................................................................... 14
2.5 Tür Değiştirme (uygulama2‐3.php) ....................................................................................... 15
2.5.1 Ekran Çıktısı ................................................................................................................... 17
2.6 Değişken Türü Kopyalama (uygulama2‐4.php) ..................................................................... 18
2.6.1 Ekran Çıktısı ................................................................................................................... 20
2.7 Sabit Değişken Tanımlama .................................................................................................... 20
2.7.1 Ekran Çıktısı ................................................................................................................... 21
3 Operatörler .................................................................................................................................... 22
3.1 Aritmetik İşlem Operatörleri ................................................................................................. 22
3.2 Atama Operatörleri ............................................................................................................... 22
3.3 Karşılaştırma Operatörleri ..................................................................................................... 23
3.4 Mantıksal Operatörler ........................................................................................................... 24
4 Dizi Değişkenler ............................................................................................................................. 26
4.1 Dizi Tanımlama ve İndis Kullanımı ......................................................................................... 26
4.2 Çok Boyutlu Diziler ................................................................................................................ 28
4.3 Dizi Değişken Fonksiyonları ................................................................................................... 30
4.3.1 unset() ve print_r() ........................................................................................................ 30
4.3.2 count() fonksiyonu ve for döngüsü ............................................................................... 30
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
4.3.3 foreach ile döngü kontrolu ............................................................................................ 31
4.3.4 array_unique() ............................................................................................................... 31
4.3.5 array_pop ve array_push .............................................................................................. 31
4.3.6 array_shift ve array_unshift .......................................................................................... 31
4.3.7 array_search ve array_sum ........................................................................................... 32
4.3.8 array_reverse ................................................................................................................ 32
4.3.9 array_merge, array_diff ve array_intersect .................................................................. 32
4.3.10 array_map ..................................................................................................................... 33
4.3.11 array_values, array_keys, each, array_flip, array_rand, array_slice, array_walk ......... 33
4.3.12 array_key_exists ............................................................................................................ 34
4.3.13 array_fill ......................................................................................................................... 34
4.3.14 explode, implode ........................................................................................................... 34
4.3.15 current, next, prev, end ................................................................................................. 35
4.3.16 Dizi Sıralama Fonksiyonları ............................................................................................ 35
5 Program Denetimi ......................................................................................................................... 36
5.1 IF … ELSE Kontrol Yapısı ......................................................................................................... 36
5.2 SWITCH CASE YAPISI .............................................................................................................. 38
5.3 FOR DÖNGÜSÜ ...................................................................................................................... 41
6 Form İşlemleri ................................................................................................................................ 46
6.1 GET Metodu ........................................................................................................................... 46
6.1.1 GET Örnekler ................................................................................................................. 46
6.2 POST Metodu ......................................................................................................................... 49
6.2.1 POST Örnekler ............................................................................................................... 49
6.3 Genel Örnekler ...................................................................................................................... 54
6.3.1 Basit Bir Üyelik Kayıt Ekranı ........................................................................................... 54
6.3.2 Kişisel Bilgi Formu .......................................................................................................... 54
6.3.3 Yorum Ekleme ............................................................................................................... 55
6.3.4 Dosya Yükleme .............................................................................................................. 56
6.3.5 Yemek Sipariş Formu ..................................................................................................... 57
6.3.6 Hidden (Gizli) Parametre Kullanımı ............................................................................... 58
6.3.7 Program Arama Formu .................................................................................................. 59
7 Fonksiyonlar .................................................................................................................................. 60
7.1 Fonksiyon Örnekleri ............................................................................................................... 60
7.2 Varsayılan Değerli Fonksiyonlar ............................................................................................ 61
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
7.3 Global Değişkenli Fonksiyonlar .............................................................................................. 63
7.4 Statik Değişkenli Fonksiyonlar ............................................................................................... 64
7.5 String Fonksiyonları ............................................................................................................... 66
7.6 Matematiksel Fonksiyonlar ................................................................................................... 70
7.7 Zaman Fonksiyonları .............................................................................................................. 73
8 Dosya ve Klasör İşlemleri ............................................................................................................... 77
8.1 Dosya İşlemleri ...................................................................................................................... 77
8.1.1 include() Fonksiyonu ..................................................................................................... 77
8.1.2 file_exists() Fonksiyonu ................................................................................................. 77
8.1.3 is_dir() is_file() Fonksiyonları......................................................................................... 78
8.1.4 realpath(), is_readable ve is_writable Fonksiyonları .................................................... 78
8.1.5 is_executable Fonksiyonu ............................................................................................. 78
8.1.6 filesize() ve touch() Fonksiyonları .................................................................................. 79
8.1.7 unlink() Fonksiyonu ....................................................................................................... 79
8.1.8 Dosya Açma/Kapama (fopen() ve fclose() Fonksiyonları) ............................................. 79
8.1.9 Dosyadan Okuma (feof(), fread(), fgets()) ..................................................................... 80
8.1.10 Dosyaya Yazma (fwrite(), fputs()) .................................................................................. 80
8.2 Dizin İşlemleri ........................................................................................................................ 81
8.2.1 Dizin Oluşturma ............................................................................................................ 81
8.2.2 Dizin Silme .................................................................................................................... 81
8.2.3 Dizin İçeriği Listeleme .................................................................................................... 81
8.3 Dosya Yükleme ...................................................................................................................... 82
9 MySQL ve phpMyAdmin ................................................................................................................ 86
9.1 root Parola Belirleme ............................................................................................................ 86
9.2 Yeni Veritabanı Oluşturma .................................................................................................... 88
9.3 Dışa Aktar / İçe Aktar ............................................................................................................. 91
10 PHP ve MySQL – Basit Telefon Rehberi ..................................................................................... 95
10.1 Kayıt Listeleme ...................................................................................................................... 95
10.2 Kayıt Ekleme .......................................................................................................................... 96
10.2.1 Header(“refresh”) yöntemi ile yönlendirme ................................................................. 97
10.2.2 Header(‘Location’) yöntemi ile yönlendirme ................................................................ 97
10.3 Kayıt Düzenleme .................................................................................................................... 98
10.4 Kayıt Silme ............................................................................................................................. 99
11 PHP ve MySQL – Doğum Günü Uygulaması ............................................................................ 100
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
11.1 PHP ve MySQL Veri Tabanı Bağlantısı (dbbaglanti.php) ...................................................... 100
11.2 Doğum Günü Uygulaması Ana Ekran ................................................................................... 100
11.3 Yeni Kayıt Ekranı .................................................................................................................. 101
11.3.1 Bilgi Girişi ..................................................................................................................... 101
11.3.2 Yeni Kayıt Ekleme ........................................................................................................ 102
11.4 Kayıtların Listelenmesi ......................................................................................................... 103
11.5 Kayıt Güncelleme ................................................................................................................. 104
11.5.1 Kayıt Güncelleme Ekranı – Güncellenecek Kayıt Seçimi ............................................. 104
11.5.2 Kayıt Güncelleme Ekranı – Veri Tabanı Güncelleme ................................................... 105
11.6 Kayıt Silme ........................................................................................................................... 106
11.6.1 Kayıt Silme Ekranı – Silinecek Kayıt Seçimi .................................................................. 106
11.6.2 Kayıt Silme Ekranı – Veri Tabanı Silme ........................................................................ 107
12 PHP ve MySQL – Okul Veritabanı ............................................................................................ 108
13 Çerez Kullanımı ve Oturum Yönetimi ...................................................................................... 109
13.1 Çerezler ................................................................................................................................ 109
13.1.1 Çerez Oluşturma .......................................................................................................... 109
13.1.2 Çerez Kullanımı ............................................................................................................ 109
13.1.3 Çerez Silme .................................................................................................................. 110
13.2 Oturum Yönetimi (Session) ................................................................................................. 110
13.2.1 Session Oluşturma ....................................................................................................... 110
13.2.2 Session Kullanma ......................................................................................................... 111
13.2.3 Session Silme ............................................................................................................... 111
13.2.4 Tüm Sessionları Silme .................................................................................................. 112
13.2.5 Basit Üyelik Sistemi ...................................................................................................... 112
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
1 Web Sunucusu Önemli Yapılandırma Dosyaları
1.1 Önemli Yapılandırma Dosyaları ve Ayarları
1.1.1 httpd.conf
httpd.conf dosyası Apache sunucusu yapılandırma dosyasıdır. Apachenin yapılandırma dosyaları [Apache Kurulumunun Yapıldığı Klasör]\Apache2\conf dizininde bulunur. Buradaki httpd.conf dosyasında değişiklik yaparak web sunucu yapılandırmasını yapabilirsiniz. Apache, web sitelerine ait sayfaları [Apache Kurulumunun Yapıldığı Klasör]\\Apache2\htdocs klasörü altına koyar, kolaylık olsun diye bunu da değiştirebilirsiniz. Örneğin c:\www şeklinde bir klasör kullanmak isterseniz, httpd.conf dosyasında DocumentRoot “[Apache Kurulumunun Yapıldığı Klasör]\\Apache2\htdocs” değerini DocumentRoot “C:/www” olarak değiştirip, apacheyi tekrar başlatmanız yeterlidir. MoWes taşınabilir sunucusunda web sitelerne ait sayfalar [MoWes Kurulumunun Yapıldığı Klasör]\www klasörü altında bulunur. Kurulum tamamlandığında httpd.conf dosyası içindeki değiştirilmesi gereken değişken değerleri aşağıdaki tabloda verilmiştir.
Değişken adı Eski Değer Yeni Değer
ServerRoot "C:\webSunucu\apache2" "..\..\webSunucu\apache2"
DocumentRoot "C:\webSunucu\www" "..\..\webSunucu\www"
<Directory …> "C:\webSunucu\www" "..\..\webSunucu\www"
Bu ayarları yaptıktan sonra MoWes taşınabilir sunucu klasörü istenilen herhangi bir yere kopyalanabilir ve taşınabilir (başka bir klasör, sabit disk veya taşınabilir sakalama birimi) ve çalıştırılabilir.
1.1.2 php.ini Yapılandırma dosyası (php.ini) PHP başlatıldığında okunur. PHP'nin sunucu modülü sürümlerinde bu işlem bir kereliğine HTTP sunucusu başlatıldığında gerçekleşir. MoWes taşınabilir sunucusunda [MoWes Kurulumunun Yapıldığı Klasör]\php4 ve [MoWes Kurulumunun Yapıldığı Klasör]\php5 klasörleri altında bulunur. Hangi PHP sürümü
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
kullanılacaksa ilgili klasör altındaki php.ini dosyasında değişiklikler yapılır ve sunucu durdurulup tekrar başlatılır.
php.ini dosyasında yaklaşık olarak 530-540. Satırlar arasında bulunan display_errors = Off değişken değeri display_errors = On olarak değiştirilerek yazılan php sayfalarında hata oluştuğunda tarayıcı ekranında hata mesajının yazdırılması sağlanır.
1.1.3 Diğer Yapılandırma Ayarları
Apache sunucusu için bir diğer önemli yapılandırma dosyası ise .htaccess dosyasıdır. htaccess dosyası (hypertext access file), klasör(ler) düzeyinde Apache‘nin ayarlanmasına izin veren, http sunucusu genel ayar dosyasını (httpd.conf) özelleştirebilen dosyadır. Dosya “.htaccess” olarak geçmektedir. Sitenizin kaynaklarını tüketen, sitenizden veri çeken linkler (hotlinking) engellenebilir, sitenizi ziyaret eden zararlı botlar engellenebilir, site üzerinde gizli
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
klasörler oluşturulabilir, klasörlere erişim engellenebilir, URL’deki bağlantı adresleri biçimlendirilebilir. Örnek olarak “makale.php” “makale.html” olarak, “makale.php?id=5” “makale-kuresel-isinma-id-5” gibi düzenleme yapılabilir, veri sıkıştırma için kullanılabilir, dosya veya klasörlere şifre eklenebilir, hata sayfalarını özelleştirilebilir, klasörleri listelemede kullanılabilir, yönlendirmelerde kullanılabilir, hangi dilin kullandığı saklanabilir, site için otomatik alt alan adları(subdomainler) oluşturulabilir.
htaccess dosyası site için çok önemli bir dosyadır. Bu dosya ile arama motoru optimizasyonu, bant genişliğinin optimum kullanılması, güvenlik önlemleri, erişim ayarları ve daha birçok ayar yapılabilmektedir. Her dosyanın çağrılışında .htaccess dosyası incelenir. Bu nedenle htaccess dosyasını küçük tutmada fayda vardır. .htaccess dosyasının kuralları, üst dizinlerdeki htaccess kurallarını, o dizin için değiştirebilir. (Ayrıntılar için bkz: http://www.mikropsoft.net/2011/09/htcaccess-dosyasi-kullanimi/)
Varsayılan ayarlara sahip bir .htaccess dosyası içinde aşağıdaki satırlar bulunur.
DENY FROM ALL
ALLOW FROM 127.0.0.1
Bu ayarlara göre web sunucunuza sadece 127.0.0.1 ip adresinden erişilebilir. Başka ip adreslerinden de web sunucusuna erişim izni verilmek istenirse, MoWes arayüzünde aşağıdaki değişikliklerin yapılması gereklidir.
Yukarıdaki ayarlara sahip bir .htaccess dosyası içinde aşağıdaki satırlar bulunur.
ORDER ALLOW,DENY
Eğer web sunucusuna erişim izni verilecek ve verilmeyecek (yasaklı ip) ip adresleri varsa bu ip adreslerinden izin verilecek olanlar “Allow access from the following IPs” bölümüne, izin verilmeyecek olanlar da “Deny access from the following IPs” bölümüne “New” düğmesi yardımıyşa eklenip, “Delete” düğmesi yardımıyla da çıkarılabilirler.
Yukarıdaki ayarlara sahip bir .htaccess dosyası içinde aşağıdaki satırlar bulunur.
ORDER ALLOW,DENY
DENY FROM 192.168.1.20
ALLOW FROM 192.168.1.10
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
1.2 PHP Sürüm Bilgisi (uygulama1-1.php)
1.2.1 Ekran Çıktısı
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
1.3 PHP Sürüm 2 (uygulama1-2.php)
1.3.1 Ekran Çıktısı
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
2 PHP Program Yapısı ve Değişken Tanımlamaları Aşağıdaki bölümlerde bulunan PHP kodları yazarak, sunucuda ilgili klasör altına kayıt ediniz ve tarayıcınızda sayfaya istekte bulunarak php kodun ekran çıktılarını elde ediniz.
2.1 HTML Kodundan PHP’yi Ayırmak (uygulama2-1.php)
2.1.1 Ekran Çıktısı:
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
2.2 Açıklama Satırları
2.3 Değişkenlerle İlgili Örnekler
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
2.4 Değişken Türleri (uygulama2-2.php)
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
2.4.1 Ekran Çıktısı
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
2.5 Tür Değiştirme (uygulama2-3.php)
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
2.5.1 Ekran Çıktısı
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
2.6 Değişken Türü Kopyalama (uygulama2-4.php)
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
2.6.1 Ekran Çıktısı
2.7 Sabit Değişken Tanımlama
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
2.7.1 Ekran Çıktısı
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
3 Operatörler
3.1 Aritmetik İşlem Operatörleri
3.2 Atama Operatörleri
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
3.3 Karşılaştırma Operatörleri
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
3.4 Mantıksal Operatörler
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
4 Dizi Değişkenler
4.1 Dizi Tanımlama ve İndis Kullanımı
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Aşağıda tanımlı dizileri, ekran çıktılarını elde edecek şekilde php kod içinde kullanınız.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
4.2 Çok Boyutlu Diziler
Yukarıdaki 2 farklı kod aynı çok boyutlu diziyi tanımlar.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
4.3 Dizi Değişken Fonksiyonları
4.3.1 unset() ve print_r()
4.3.2 count() fonksiyonu ve for döngüsü
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
4.3.3 foreach ile döngü kontrolu
4.3.4 array_unique()
4.3.5 array_pop ve array_push
4.3.6 array_shift ve array_unshift
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
4.3.7 array_search ve array_sum
4.3.8 array_reverse
4.3.9 array_merge, array_diff ve array_intersect
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
4.3.10 array_map
4.3.11 array_values, array_keys, each, array_flip, array_rand, array_slice, array_walk
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
4.3.12 array_key_exists
4.3.13 array_fill
4.3.14 explode, implode
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
4.3.15 current, next, prev, end
4.3.16 Dizi Sıralama Fonksiyonları sort(); ve rsort(); diziyi elemanların değerlerine göre alfabetik sıralarlar, anahtarlarını yeni sıralamaya göre düzenlerler. sort ile düzalfabetik sıralama, rsort ile ters alfabetik sıralama yapılır.
asort(); ve arsort(); fonksiyonları da diziyi eleman değerlerinin alfabetik sıralamasına göre düzenler fakat anahtarlarını değiştirmez. Aynı şekilde düz sıralama için asort, ters sıralama için arsort kullanılır.
ksort(); ve krsort(); diziyi elemanların anahtar değerlerine göre sıralarlar ve anahtarları değiştirmezler. ksort artan sıralama, krsort azalan sıralama yapar.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
5 Program Denetimi
5.1 IF … ELSE Kontrol Yapısı
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
5.2 SWITCH CASE YAPISI
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
5.3 FOR DÖNGÜSÜ
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
6 Form İşlemleri
6.1 GET Metodu
Yukarıdaki formda bulunan bilgilerin okunacağı kayit.php dosyasını yazınız.
6.1.1 GET Örnekler
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
6.2 POST Metodu
Yukarıdaki formda bulunan bilgilerin okunacağı anket.php dosyasını yazınız.
6.2.1 POST Örnekler
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
6.3 Genel Örnekler
6.3.1 Basit Bir Üyelik Kayıt Ekranı
6.3.2 Kişisel Bilgi Formu
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
6.3.3 Yorum Ekleme
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
6.3.4 Dosya Yükleme
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
6.3.5 Yemek Sipariş Formu
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
6.3.6 Hidden (Gizli) Parametre Kullanımı
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
6.3.7 Program Arama Formu
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
7 Fonksiyonlar
7.1 Fonksiyon Örnekleri
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
7.2 Varsayılan Değerli Fonksiyonlar
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
7.3 Global Değişkenli Fonksiyonlar
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
7.4 Statik Değişkenli Fonksiyonlar
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
7.5 String Fonksiyonları
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
7.6 Matematiksel Fonksiyonlar
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
7.7 Zaman Fonksiyonları
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
8 Dosya ve Klasör İşlemleri
8.1 Dosya İşlemleri
8.1.1 include() Fonksiyonu
8.1.2 file_exists() Fonksiyonu
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
8.1.3 is_dir() is_file() Fonksiyonları
8.1.4 realpath(), is_readable ve is_writable Fonksiyonları
8.1.5 is_executable Fonksiyonu
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
8.1.6 filesize() ve touch() Fonksiyonları
8.1.7 unlink() Fonksiyonu
8.1.8 Dosya Açma/Kapama (fopen() ve fclose() Fonksiyonları)
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
8.1.9 Dosyadan Okuma (feof(), fread(), fgets())
8.1.10 Dosyaya Yazma (fwrite(), fputs())
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
8.2 Dizin İşlemleri
8.2.1 Dizin Oluşturma
8.2.2 Dizin Silme
8.2.3 Dizin İçeriği Listeleme
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
8.3 Dosya Yükleme
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
9 MySQL ve phpMyAdmin PHP’de veritabanı işlemlerine girdiğimiz için MySQL kullanımından bahsedeceğiz. MySQL e
erişebilmek için tarayıcınızın adres satırına http://localhost/phpmyadmin/ yazınız.
MoWes Kurulumunda root kullanıcısına ait parola boştur. Bu yüzden eğer bir parola belirtilmemişse
phpmyadmin’e bağlanırken yukarıdaki gibi bir ekranla karşılaşılmayabilir. Kimlik doğrulamasından
sonra phpMyAdmin uygulamasının ana sayfasına aşağıdaki ekranda görüldüğü gibi erişilebilir.
9.1 root Parola Belirleme MySQL veritabanı sunucusu ilk kurulduğunda varsayılan olarak root kullanıcısı ile beraber
gelmektedir. Bu kullanıcıya şifresiz giriş izni verilmektedir. Ancak bunu yukarıdaki resmin alt kısmında
bulunan uyarı mesajında da görebileceğiniz gibi düzeltmeniz istenmektedir. Bunu düzeltmek için root
kullanıcısına bir şifre vermelisiniz. root kullanıcısına şifre vermek için yukarıdaki pencerede bulunan
Yetkiler linkine tıklayınız.
Açılan aşağıdaki pencerede root kullanıcının yanındaki Yetkileri Düzenle linkine tıklayınız.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Açılan aşağıdaki pencerede parolanızı belirleyip Git demelisiniz. Bunu yaptıktan sonra phpMyAdmin'i
kullanmaya çalıştığınızda şifre hatası verecektir.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
phpMyAdmin şifre hatasını düzeltmek için [mowes kurulumunun yapıldığı
dizin]\www\phpmyadmin\config.inc.php dosyasına belirlediğiniz şifreyi aşağıdaki gibi girmelisiniz.
9.2 Yeni Veritabanı Oluşturma Veritabanları bölümündeki açılır menüde üzerinde işlem yapacağımız veritabanlarını seçebiliyoruz. Bir
sonraki örneğimizde kullanacak olduğumuz veritabanını gelin şimdi oluşturalım.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Bunun için phpMyAdmin ana ekranında yer alan “Yeni veritabanı oluştur” bölümünden oluşturacak
olduğumuz veritabanının adını giriyoruz. Biz “deneme” olarak belirledik. Ve “Oluştur” butonuna
tıkladık.
Veritabanımız başarıyla oluşturulduktan sonra sol kısımda bulunan “Veritabanları” bölümünde de
oluşturduğumuz veritabanının adını görebiliriz. Bu bölümden veritabanımızı seçelim. Şu an
veritabanımızda herhangi bir tablo bulunmamaktadır. Yeni bir tablo oluşturalım. İsim kısmına
oluşturacak olduğumuz tablonun adını, Alan sayısı kısmına da tablomuzda olacak olan alan sayısını
belirleyelim ve “Git” butonuna tıklayalım. Unutmadan hatırlatayım. Veritabanı isimlerinde, tablo yada
alan isimlerinde Türkçe karakter kullanmamaya dikkat edelim.
Çıkan sayfada alan isimlerini, tiplerini ve boyutlarını belirliyoruz. Biz birincil anahtar (Primary Key)
olarak ID isimli alanı belirttik. Bu alan otomatik sayı özelliğine sahip olmalı. Bu özelliğe sahip
olabilmesi için ilgili alanın “Ekstra” isimli sütunundaki açılır menüden “auto_increment” özelliğini
seçiyoruz. Son olarak da bu alanın birincil anahtar özelliğine sahip olabilmesi için “Ekstra” sütununun
hemen yanında bulunan anahtar simgesinin altında, ilgili alanda bulunan radyo butonunu seçili hale
getiriyoruz.
Tablomuza alan eklemek istersek “Kaydet” butonunun yanında bulunan text kutusuna ekleyecek
olduğumuz alan sayısını giriyoruz ve “Git” butonuna basıyoruz. Başka bir alan eklemeyeceğimiz için ve
tanımlama işlemimiz bittiği için “Kaydet” butonuna tıklıyoruz. Tablomuz ve içindeki alanlar böylece
oluşturuldu. MySQL’deki veri tipleri genel olarak aşağıdaki gibidir.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
phpMyAdmin ana ekranındaki sol tarafta bulunan açılır menüden veritabanımızı seçtikten sonra
karşımıza çıkan sayfanın sol tarafında o veritabanının içindeki tablolar sıralanır. Çıkan sayfada çeşitli
sekmeler bulunur. Burada bilmeniz gereken önemli sekmelerden bahsedeyim. Yapı sekmesinden
veritabanında bulunan tablolarla ilgili işlemleri yapabiliriz. SQL sekmesinde tablolarla ilgili kendi SQL
sorgumuzu yazabiliriz. Dışarı Aktar sekmesinden veritabanımızı başka bir yere aktarırken gerekli olan
SQL sorgusunu üretir. SQL sorgusunun içinde veritabanı içinde bulunan tabloların yapıları ve
tabloların içinde bulunan kayıtlar bulunur. İçeri Aktar sekmesinden veritabanımıza dışarıdan bir SQL
sorgusu içeren dosyayı alabiliriz. İşlemler sekmesinden veritabanı ile ilgili işlemleri gerçekleştirebiliriz.
Yetkiler sekmesinden kullanıcıların veritabanı üzerindeki yetkilerini görebiliriz. Kaldır sekmesinden
veritabanını silebiliriz.
Sol taraftan herhangi bir tablo seçelim. Çıkan sayfada o tablo ile ilgili işlemleri yapabileceğimiz
sekmeler bulunur. Gözat sekmesinde veritabanı içinde bulunan verilere bakabiliriz. Yapı sekmesinde
seçili tablo içindeki alanlarda değişiklik yapabiliriz. SQL sekmesinde veritabanı ile ilgili SQL sorgumuzu
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
yazabiliriz. Ara sekmesinde seçili tablo içindeki kayıtlarda arama yapabiliriz. Ekle sekmesinden tabloya
yeni kayıt ekleyebiliriz. Dışarı Aktar sekmesinden tablonun yapısını ve içerisindeki kayıtları başka bir
veritabanında kullanabileceğimiz SQL sorgusu üretir. İçeri Aktar sekmesinden tabloya dışarıdan SQL
sorgusu içeren bir dosya ile kayıt eklememizi sağlar. Boşalt sekmesinde seçili olan tablo içerisindeki
kayıtları silmemizi sağlar. Kaldır sekmesinde seçili tabloyu silmemizi sağlar.
9.3 Dışa Aktar / İçe Aktar Temel SQL komutlarını denemek için öncelikle örnek bir veritabanı oluşturup, verdiğimiz veritabanı
yedeğini geri yükleyerek işe başlayalım. Bunun için sırasıyla aşağıdaki işlemleri yapınız.
1. okul adında utf8_general_ci karşılaştırma seti ile yeni bir veritabanı oluşturunuz. Buradaki
utf8_general_ci kullanılacak olan karakter setini belirtmektedir. Veritabanı işlemlerinde en
çok yaşanan sorunlardan biri türkçe karakter sorunudur. Bu sorunu yaşamamak için türkçe
karaketerleri destekleyen utf8_general_ci yada utf8_turkish_ci karşılaştırma setlerinden
birini seçmelisiniz.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
2. Veritabanını oluşturduktan sonra yukarıdaki İçeri Aktar linkini kulllanarak açılan aşağıdaki
pencereden Gözat diyerek okul.sql isimli veritabanı yedeğini seçip aşağıdaki Git düğmesine
tıklayınız. Bunu yaparak alınmış bir veritabanı yedeğini geri yüklemiş oldunuz.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
3. ogrenciler tablosunda SQL komutlarını denemek için soldaki ogrenciler tablosuna tıklayıp
Düzenle linkine tıklayınız.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
4. Açılan SQL penceresinde istediğiniz SQL komutlarını yazıp sonuçları gözlemleyebilirsiniz.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
10 PHP ve MySQL – Basit Telefon Rehberi Aşağıdaki ekranda görülen isim ve özelliklere sahip personel veritabanı ve bu veritabanı içinde kişiler
tablosu oluşturunuz.
10.1 Kayıt Listeleme
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
10.2 Kayıt Ekleme “Yeni Kayıt Ekle +” yazısına link vererek yeni bir sayfa “yeni_kayit_form.php” adında bir sayfa
görüntületiyoruz. Bu sayfa için bir HTML form oluşturalım. Formun action bölümünü
“yeni_kayit_ekle.php” yapalım.
“Yeni Kayıt Ekle +” yazısına link vererek bu sayfaya erişimi sağlayalım. Formdaki verileri
“yeni_kayit_ekle.php” ye göndereceğimizi belirtmiştik. “yeni_kayit_ekle.php” adında bir PHP dosyası
açalım.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
SQL komutumuzdan dönecek değeri (True yada False) $Komut değişkenine atadık. Kaydımızın
sorunsuz bir şekilde gerçekleşmesi halinde $Komut değişkenimizin değeri “True” olacağından if()
kullanarak ekrana “Kaydınız başarıyla gerçekleşmiştir.” yazdırıyoruz.
Ardından mevut sayfamızı (yeni_kayit_ekle.php), 1. bölümde hazırlamış olduğumuz “Listele.php”
sayfasına yönlendiriyoruz. PHP’de sayfa yönlendirmeyi 2 şekilde yapabiliriz.
10.2.1 Header(“refresh”) yöntemi ile yönlendirme Bu yöntem ile yönlendirilecek olan sayfaya belirlenen süre sonunda yönlendirebiliriz. Kullanımı
aşağıdaki gibidir.
Buradaki “2” değeri, kodun işlenmeye başladıktan 2 saniye sonra belirtilen sayfaya yönlendirileceği
anlamındadır.
10.2.2 Header(‘Location’) yöntemi ile yönlendirme Bu yöntemde yönlendirilecek olan sayfaya zaman belirtmeksizin direkt olarak yönlendirme işlemi
yapılır. Bu yöntemin kullanımı da aşağıdaki gibidir.
Header fonksiyonunu kullandığınız sayfada “Warning: Cannot modify header information – headers
already sent by…” şeklinde bir hata mesajı alabilirsiniz. Hatayı gidermek istediğiniz sayfanın başına,
sonuna da eklenmelidir.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
10.3 Kayıt Düzenleme Oluşturulan “Listele.php” sayfasında kayıtların yanındaki “Düzenle” yazısına link verelim.
(düzenle_form.php) Veritabanımızda birincil anahtar olarak “Personel_No” alanı seçilmişti.
“Personel_NO” alanından dönen değerleri “Düzenle” linkinin sonuna “?” operatörü kullanarak
eklenmelidir.
duzenle_kayit.php dosyasındaki php kodlar aşağıda görülmektedir.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
10.4 Kayıt Silme Kayıt düzenleme bölümünde yapıldığı gibi “Listele.php” de “Sil” yazısına “Sil.php” ye gidilecek şekilde
link verilmelidir. Linkin sonuna, “?” operatörünü kullanarak kişinin Personel_No bilgisi de
eklenmelidir.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
11 PHP ve MySQL – Doğum Günü Uygulaması Kişilerin ad, soyad ve doğum günü bilgilerinin tutulduğu bir tabloya veri girişi yapılması, verilerin düzenlenmesi, verilerin güncellenmesi ve verilerin listelenmesi işlemlerini gerçekleştirmek amacıyla (temel CRUD işlemleri: Create Retrieve Update Delete) PHP tabanlı bir uygulama hazırlanacaktır.
11.1 PHP ve MySQL Veri Tabanı Bağlantısı (dbbaglanti.php)
11.2 Doğum Günü Uygulaması Ana Ekran
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
11.3 Yeni Kayıt Ekranı
11.3.1 Bilgi Girişi
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
11.3.2 Yeni Kayıt Ekleme
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
11.4 Kayıtların Listelenmesi
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
11.5 Kayıt Güncelleme
11.5.1 Kayıt Güncelleme Ekranı – Güncellenecek Kayıt Seçimi
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
11.5.2 Kayıt Güncelleme Ekranı – Veri Tabanı Güncelleme
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
11.6 Kayıt Silme
11.6.1 Kayıt Silme Ekranı – Silinecek Kayıt Seçimi
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
11.6.2 Kayıt Silme Ekranı – Veri Tabanı Silme
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
12 PHP ve MySQL – Okul Veritabanı
http://www.phpdefteri.com/tumdersler/5/veritabani.html
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
13 Çerez Kullanımı ve Oturum Yönetimi
13.1 Çerezler Çerezler (cookies) sunucuda gerektiğinde kullanılmak üzere içerisinde istediğimiz değerleri
barındırabilen istemci tarafında oluşturabildiğimiz dosyalardır. Çerezleri genellikle kullanıcı tanımlama
işlemlerinde kullanırız. En yaygın örneği login işlemlerinde beni hatırla seçeneğinin yapımıdır. Burada
yapılan işlem beni hatırla seçildiğinde istemci tarafında(siteye giren kullanıcının bilgisayarında) bir
çerez dosyası oluşturarak içerisine o kullanıcıya ait eşsiz bir değişken yazılır. [...] Bu değişken kullanıcının
bilgisayarında tutulur. Bu işlemi yapabilmemiz için, kullanıcının tarayıcısını çerez kabul edilebilir şekilde
ayarlaması gerekmektedir. bu nedenle çok güvenli bir yöntem değildir. Değerli bilgilerin saklanması için
tercih edilmez. İstemci tarafına yazdığımız çerez belirli bir ömür ile yaratılır. Örneğin bir haftalık
yaratılan çerez bir haftanın sonunda istemci pc den kendiliğinden silinir. Peki bu yarattığımız çerez ne
işe yarayacak. Eğer çerezin ömrü bitmedi ise, istemci (kullanıcı) siteye tekrar girdiğinde daha önce
istemciye yazdığımız çerez içerisindeki değişkeni kullanarak login işlemi gerçekleştirilebilir.
setcookie() fonksiyonu tarayıcıya herhangi bir header (başlık) bilgisi gönderilmeden önce
kullanılmalıdır.
Sözdizimi:
setcookie(değişken ismi, değer, ömür(timestamp cinsinden), yol, domain);
13.1.1 Çerez Oluşturma
13.1.2 Çerez Kullanımı
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
13.1.3 Çerez Silme
13.2 Oturum Yönetimi (Session) Session aynı çerezlerde olduğu gibi $_SESSION global dizisi ile okunur, fakat yazılması için çerezlerdeki
gibi bir fonksiyona ihtiyaç duymaz. Çerezlerin son kullanma tarihini biz belirlerken sessionlar tarayıcının
kapatılmasıyla silinir. Yani siteye girildiğinde oluşturacağımız sessionlar, girenin sayfayı kapatmasıyla
silinecektir. Kullanım, oluşturma ve silme dışındaki asıl teknik farkı da sessionların tarayıcıya direkt
olarak tanımlanmıyor olması.
Bir çerez tanımladığımızda bu çerezin adı ve değeri tarayıcıya açıkca gönderilir ve bu değer istenilen
süre boyunca tarayıcıda açık bir şekilde saklanır. Sessionda ise kaydedilen değer ve değerin adı
tarayıcıya gönderilmez. Onun yerine PHPSESSID adında içinde uzun bir session id değeri bulunan bir
çerez tanımlanır. Ve bizim oluşturduğumuz sessionlar sunucuda saklanır ve girenlerin gönderdiği
PHPSESSID kimliğine göre kime ait oldukları bulunur ve yeniden düzenlenir.
Bu olayı daha iyi anlamanız için kredi kartı örneğini vereyim: Session olayı aynı kredi kartı kullanımı
gibidir. Banka size bir kart verir bu kartın içinde size özel bir anahtar kod yer alır. Ama para ve bilgiler
bankada saklanır. Siz bilgilerinize ve paralarınıza ulaşmak için kartı kullanırsınız. Sessionda size direkt
olarak bilgileri vermek yerine bir PHPSESSID adında değer verir ve o değer üzerinden size ait olan
verileri okur ve düzenler.
13.2.1 Session Oluşturma Başta da dediğim gibi sessionları tek bir $_SESSION global dizisi üzerinden okuyup, oluşturup,
silebiliyoruz. Tek önemli mevzu session kullanımına ya da oluşturulmasına başlamadan önce bir kere
her sayfanın en başında session_start() fonksiyonunu yazmalıyız, bu fonksiyon session olayını kullanıma
hazırlar ve olmazsa olmazdır. Bazı sunucularda session kullanımı otomatik olarak hep açıktır, açık olan
sunucularda session_start() yazmaya çalışırsanız hata verir. Bu durumda bu fonksiyonu kullanmaya
gerek yoktur.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
13.2.2 Session Kullanma
13.2.3 Session Silme
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
13.2.4 Tüm Sessionları Silme
13.2.5 Basit Üyelik Sistemi
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
Üyemizin adı “deneme” şifresi ise “12345” tir.
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
admin.php sayfası:
Internet Tabanlı Programlama Dersi – Uygulama Notları
Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi – B.Ö.T.E Celal Murat KANDEMİR
uyecikis.php