116
  Internet Tabanlı Programlama Dersi  Uygulama Notları  2014 EYLÜL,2014 CELAL MURAT KANDEMİR ESOGÜ | Eğitim Fakültesi  B.Ö.T.E 

İnternet Tabanlı Programlama Uygulama Notları

Embed Size (px)

DESCRIPTION

Eskişehir Osmangazi Üniversitesi Eğitim Fakültesi B.Ö.T.E Bölümü İnternet Tabanlı Programlama Dersi Uygulama notları.

Citation preview

Page 1: İnternet Tabanlı Programlama Uygulama Notları

 

 

Internet Tabanlı 

Programlama Dersi – 

Uygulama Notları 

 

2014

EYLÜL,2014 CELAL MURAT KANDEMİR 

ESOGÜ | Eğitim Fakültesi – B.Ö.T.E 

Page 2: İnternet Tabanlı Programlama Uygulama Notları

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 

Page 3: İnternet Tabanlı Programlama Uygulama Notları

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 

Page 4: İnternet Tabanlı Programlama Uygulama Notları

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 

Page 5: İnternet Tabanlı Programlama Uygulama Notları

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 

 

 

Page 6: İnternet Tabanlı Programlama Uygulama Notları

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ü

Page 7: İnternet Tabanlı Programlama Uygulama Notları

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

Page 8: İnternet Tabanlı Programlama Uygulama Notları

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

Page 9: İnternet Tabanlı Programlama Uygulama Notları

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ı

 

Page 10: İnternet Tabanlı Programlama Uygulama Notları

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ı

Page 11: İnternet Tabanlı Programlama Uygulama Notları

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ı:

 

Page 12: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 13: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

 

Page 14: İnternet Tabanlı Programlama Uygulama Notları

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)

 

 

Page 15: İnternet Tabanlı Programlama Uygulama Notları

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ı

 

Page 16: İnternet Tabanlı Programlama Uygulama Notları

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)

 

Page 17: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

Page 18: İnternet Tabanlı Programlama Uygulama Notları

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ı

 

Page 19: İnternet Tabanlı Programlama Uygulama Notları

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)

 

Page 20: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

Page 21: İnternet Tabanlı Programlama Uygulama Notları

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

Page 22: İnternet Tabanlı Programlama Uygulama Notları

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ı

Page 23: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 24: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

 

Page 25: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 26: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

   

Page 27: İnternet Tabanlı Programlama Uygulama Notları

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ı

 

 

 

Page 28: İnternet Tabanlı Programlama Uygulama Notları

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. 

 

 

Page 29: İnternet Tabanlı Programlama Uygulama Notları

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. 

 

 

 

Page 30: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 31: İnternet Tabanlı Programlama Uygulama Notları

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ü

  

Page 32: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 33: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 34: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 35: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 36: İnternet Tabanlı Programlama Uygulama Notları

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.

 

Page 37: İnternet Tabanlı Programlama Uygulama Notları

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ı

 

 

Page 38: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 39: İnternet Tabanlı Programlama Uygulama Notları

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  

 

 

Page 40: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

 

 

Page 41: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 42: İnternet Tabanlı Programlama Uygulama Notları

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Ü

 

 

 

 

 

Page 43: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

 

Page 44: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

Page 45: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

 

Page 46: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

Page 47: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 48: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 49: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

Page 50: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 51: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

 

Page 52: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 53: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 54: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

Page 55: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 56: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 57: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 58: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 59: İnternet Tabanlı Programlama Uygulama Notları

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ı

 

Page 60: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 61: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 62: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 63: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

Page 64: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

 

Page 65: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

 

Page 66: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 67: İnternet Tabanlı Programlama Uygulama Notları

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ı

 

 

 

Page 68: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 69: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 70: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 71: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 72: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 73: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 74: İnternet Tabanlı Programlama Uygulama Notları

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ı

 

 

Page 75: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

Page 76: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 77: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 78: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 79: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 80: İnternet Tabanlı Programlama Uygulama Notları

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ı)

 

Page 81: İnternet Tabanlı Programlama Uygulama Notları

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())

 

Page 82: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 83: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

 

Page 84: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 85: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 86: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

Page 87: İnternet Tabanlı Programlama Uygulama Notları

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. 

Page 88: İnternet Tabanlı Programlama Uygulama Notları

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. 

 

Page 89: İnternet Tabanlı Programlama Uygulama Notları

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. 

Page 90: İnternet Tabanlı Programlama Uygulama Notları

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. 

Page 91: İnternet Tabanlı Programlama Uygulama Notları

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 

Page 92: İnternet Tabanlı Programlama Uygulama Notları

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. 

 

Page 93: İnternet Tabanlı Programlama Uygulama Notları

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. 

 

Page 94: İnternet Tabanlı Programlama Uygulama Notları

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. 

 

Page 95: İnternet Tabanlı Programlama Uygulama Notları

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. 

 

 

Page 96: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 97: İnternet Tabanlı Programlama Uygulama Notları

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. 

Page 98: İnternet Tabanlı Programlama Uygulama Notları

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. 

Page 99: İnternet Tabanlı Programlama Uygulama Notları

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. 

 

 

Page 100: İnternet Tabanlı Programlama Uygulama Notları

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. 

 

 

Page 101: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 102: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 103: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 104: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 105: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 106: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

 

Page 107: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

Page 108: İnternet Tabanlı Programlama Uygulama Notları

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

 

 

   

Page 109: İnternet Tabanlı Programlama Uygulama Notları

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   

Page 110: İnternet Tabanlı Programlama Uygulama Notları

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ı

 

Page 111: İnternet Tabanlı Programlama Uygulama Notları

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. 

Page 112: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 113: İnternet Tabanlı Programlama Uygulama Notları

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

 

Page 114: İnternet Tabanlı Programlama Uygulama Notları

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. 

 

 

Page 115: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

 

 

 

admin.php sayfası: 

Page 116: İnternet Tabanlı Programlama Uygulama Notları

Internet Tabanlı Programlama Dersi – Uygulama Notları  

Eskişehir Osmangazi Üniversitesi  Eğitim Fakültesi – B.Ö.T.E  Celal Murat KANDEMİR 

 

uyecikis.php