• No results found

HTML Css Php SQL Mysql Rehberi

N/A
N/A
Protected

Academic year: 2021

Share "HTML Css Php SQL Mysql Rehberi"

Copied!
498
0
0

Loading.... (view fulltext now)

Full text

(1)

İbrahim Halil Kutluay

Nisan 2013

HTML-CSS-PHP

MYSQL-SQL

(2)

Ġçindekiler

Ġçindekiler ... 2

GĠRĠġ ... 21

Kullanım Kuralları ... 23

HTML DĠLĠ ... 24

Bir Web Sitesi Bilinmesi Gereken Temel Bilgiler ... 26

Bir web sitesi için ... 26

Domain Uzantı Adları ... 28

TCP / IP ... 29

PORT ... 30

Web Server ... 30

Apache ... 32

IIS ... 32

Bir Web Server yazılım paketi seçerken dikkat edilmesi gereken bir kaç ilkeyi sıralayalım: ... 32

Web‘de Gezme ĠĢlemine Genel Bir BakıĢ ... 35

HTML‘in baĢlıca özelliklerini Ģöyle sıralayabiliriz: ... 36

Web Tarayıcıları ... 39

Microsoft Internet Explorer ... 39

Netscape Navigator ... 40

Firefox ... 40

Opera ... 40

Google Chrome ... 40

Yandex Browser ... 40

Tarayıcılar Ġçin Yardımcı Programlar ve Ek Birimler .. 40

HTML Editörleri ... 42

Expression Web ... 42

Dreamweaver ... 42

Word ... 42

NVU ... 43

(3)

Etiketler (Tag) ... 44

HTML Yazım Kuralları ... 45

HTML Dosyasının Bölümleri... 45

Türkçe bilgi içeren bir sayfa örneği ise; ... 46

<html>...</html> ... 47

<head>...</head> ... 47

<title>...</title> ... 47

<body>...</body> ... 47

Meta Etiketleri Arama Motorları Ġçin Sitemize Eklememiz Gereken Bilgiler ... 48

Meta Tağlarının GeliĢmiĢ Kullanımı ... 50

Sayfanın Süre AĢımını Belirtmek ... 50

Bir Sayfanın Belirli Bir süre Ekranda Kalıp Otomatikman BaĢka Bir Adrese Yönlenmesini Sağlamak ... 50

Türkçe Karakterleri Görüntülemek-Kod Sayfası ... 51

<BODY> Etiketinin Parametreleri ... 52

TrueType Fontlar-Harf GeniĢliği Serif ve Sans Serif Harfler ... 52

H1,H2,H3,H4,H5,H6 BaĢlık Etiketleri ... 53

<br> etiketi... 54

<p>…</p> etiketi ... 55

Genel Biçimlendirme Etiketleri ... 57

Metni Koyu, veya Ġtalik Yazdırma ... 58

HTML Dilinde Renk Kodlaması ... 59

Güvenilir 216 Renk ... 62

Sıralı Listeler... 65

Sırasız Listeler ... 67

<HR> Etiketi ile Çizgi OluĢturma ... 68

Resim ve Multimedya Dosyalarını Kullanmak ... 69

Marquee ile Resim Ve Metin Kaydırma ... 71

(4)

Video ve Ses Dosyalarının Kullanımı ... 74

Tablolar ... 75

BaĢlık, Satır ve Veri Etiketleri... 75

Sütun ve Satır BirleĢtirme – Colspan- Rowspan ... 78

Zemin - Bgcolor ... 78

Tablonun geniĢliği- Width ... 78

Tablonun Çerçevesi - Border ... 79

Hücre içindeki boĢluk miktarı CELLPADDING ... 79

Hücreler arası boĢluk miktarı CELLSPACING ... 80

Sembol ĠĢaretlerinin HTML Dilindeki KarĢılıkları ... 80

Genel Sayfa Kullanım ġekilleri ... 82

Çerçeveler -Frames ... 86

Avantajları ... 86

Dezavantajları... 86

Frame Parametreleri ... 88

Frame Satırları ve Sütunları ... 89

Yatay Dikey KarıĢık Frame OluĢturmak ... 91

HTML‘de Bağlantı‘ya (LINK) GiriĢ... 93

HTML‘de Bağlantı Türleri ... 97

HTTP bağlantıları: ... 97

FTP bağlantıları: ... 97

Haber Grupları: ... 97

Elektronik Posta Bağlantısı: ... 98

Dosya Bağlantıları: ... 98

Diğer bağlantılar: ... 98

Resimleri Link BaĢlığı Vermek Ġçin Kullanmak ... 99

Resim Haritası (Image Map) ile Link Kullanımı ... 100

Link Verirken Relative (göreceli) ve Absolute (mutlak) Adreslemelerin Farkları ... 101

KULLANICI ĠLE ETKĠLEġĠM VE FORMLAR ... 103

Form Etiketinin Alt Seçenekleri ... 106

(5)

INPUT ... 110

Kullanıcının klavyeden metin girmesi için: ... 113

Parola GiriĢi için: ... 113

Onay Kutusu için (Check iĢareti): ... 113

Tekil Seçme Kutusu için (Radyo düğmesi): ... 114

Listeleme Kutusundan SeĢmek Ġçin (SELECT)... 114

Uzun Metin GiriĢi Ġçin (TEXTAREA) ... 115

Gönder ve Sil düğmeleri (Submit ve Reset) ... 115

Tabindex ... 116

URL Kodları ... 118

CSS ile Biçimlendirme Teknikleri, Dinamik HTML ... 120

CSS Stillerine Neden Ġhtiyaç Duyulur ... 120

Cascading Style Sheets -CSS ve Kullanım ġekilleri . 121 Yerel Stil ġablonu ... 122

Sayfa Ġçi Global Stil ġablonu ... 122

Site Ġçi Global Stil ġablonu ... 124

Birden fazla stil Ģablonu verilirse Tarayıcı ne yapar? 125 HTML içinde bölüm oluĢturma (DIV) ... 126

CSS ve Seçici(Selector) Kavramı ve Seçici Tipleri ... 127

ĠsimlendirilmiĢ Seçiciler ... 127

Sınıf Seçiciler ... 128

Karma Seçiciler (Pseude Classes) ... 129

ġartlı Seçiciler (Contextual Selectors ) ... 131

Bir Alana Tanımlı Stillerin DıĢında Stil Uygulamak .. 133

CSS Blokları ve Denetlenebilir Özellikler ... 133

CSS Biçimlendirme Tablosu ... 133

Font Özellikleri Ġçin CSS Kullanımı: ... 139

FONT-FAMILY (Yazıtipi ailesi): ... 139

FONT-STYLE(YazılıĢ ġekli): ... 140

FONT-VARIANT (Yazıtipi türü):... 140

FONT-WEIGHT (Yazıtipi Koyuluğu): ... 140

(6)

Renk ve Zemin Özellikleri: ... 142

Metin Özellikleri: ... 143

Konum (Pozisyon) Özellikleri ... 145

Konum ―POSITION:‖ Değerleri ... 146

CSS ve Katman (Layer) Kavramı ... 147

Katman Ġndeksi – (Z-index): ... 149

BoĢluk bırakma, Margin : ... 150

Xhtml BELGE TÜRÜ ... 151

Sonuç ... 152

Altın Öğütler ... 153

Hosting Hizmeti Alırken ... 153

Web Sitesi Yaparken ... 153

Site Tasarımı Adımları ... 154

Bir Site Tasarlarken ... 156

Bir Web Sitesinin Tutulmasını Sağlayan Etkenler ... 158

Tanıtım ... 159

Kullanıcı Dostu Tasarım ... 160

EriĢilebilirlik ... 160 Kaliteli Ġçerik ... 161 Geri Besleme ... 161 Php Programlama Dili ... 162 Php Programlama Dili ... 162 Php Dilinin GeçmiĢi ... 162 Neden PHP ... 164

Interaktif Web Sayfaları Hazırlamak Ġçin Yöntemler 165 PHP ve ASP KarĢılaĢtırması ... 167

PHP ve Cold Fusion KarĢılaĢtırması ... 169

PHP Dilinin Kapasitesi ... 169

PHP Nasıl ÇalıĢır ... 170

PHP Dili ve Veritabanı Programları ile ĠliĢkisi ... 172

PHP Dilinin GeniĢletilebilirliği ... 175

(7)

PEAR (PHP Extension and Application Repository) .. 179

PHP - Web Sunucusu – PHP Kurulumu ... 179

XAMPP ... 180

APPSERV ... 180

Uniform Server ... 181

EasyPHP ... 181

Php Öğrenmek Zormu ... 182

Ġlk PHP Programımız – Merhaba Dünya ... 182

PHP KOD YAZIM KURALLARI ... 182

Açıklama (Yorum) Satırları ... 187

PHP ile Ekrana Çıktı Verme ... 189

echo() fonksiyonu-(Ekrana yazdırma) ... 189

print() fonksiyonu – (Ekrana Veri Yazma) ... 190

Escape Kodlar ... 191

DeğiĢken Nedir ? ... 192

DeğiĢken Türleri ... 195

Alfanümerik DeğiĢkenlerin Ġçeriğine Dizi Olarak EriĢme ... 196

Diziler (Array) ... 197

Çok Boyutlu Diziler ... 198

Dizi Tanımlama Kuralları ... 199

Nesneler (Objects) ... 200

Sabit Değerler - Constants ... 201

define ("SABIT_ADI", değeri); ... 202

Operatörler ... 204

Aritmetik Operatörler: ... 205

BirleĢik Atama Operatörleri ... 207

Bir Arttırmak veya Azaltmak için ... 208

Kontrol Blokları ve KarĢılatırma Operatörleri ... 208

KarĢılaĢtırma Operatörleri ... 208

ĠĢlem Önceliği Sıralaması ... 211

(8)

if-endif Kullanımı ve PHP ile HTML Kodunu Ayırma .. 215

Endif ... 217

switch komutu ... 217

Tek KoĢula Göre Ġki Sonuç - Üçlü Operatör (Ternary Operatör)... 220 Döngü Kavramı ... 220 For Döngüsü ... 221 While Do Döngüsü ... 223 Do While Döngüsü ... 223 For .. Each Döngüsü ... 225

Döngüyü Kırmak için Break Komutu ... 226

Döngüyü Devam Ettirme : Continue ... 227

Döngü Ġçinde Döngü Kullanımı ... 228

Döngü ve Kontrol Bloklarında PHP ve HTML Ġç içe Kullanım ... 229

BaĢka Bir Dosyayı Ġthal Etme ... 230

include() fonsiyonu ... 231

require() fonksiyonu ... 231

include_Once ve require_Once ... 231

include() ve türevlerindeki güvenlik açığı ... 233

include() ile Kodun Yeniden Kullanımı ... 234

HEREDOC Nedir ... 235

Fonksiyon Kavramı ve Kategorilere Göre PHP Fonksiyonları ... 236

DeğiĢkenlerle ĠĢlem Yapan Fonksiyonlar ... 237

isset() fonksiyonu (değiĢkene değer atanmıĢ mı kontrol etmek) ... 237

unset() fonksiyonu (değiĢkeni hafızadan atmak-yok etmek) ... 238

empty() (DeğiĢken boĢmu) ... 238

is_string(), is_integer(), is_double() fonksiyonları ile tip tespiti... 239

(9)

print_r () fonksiyonu ... 240 DeğiĢken Tiplerini DönüĢtürme ve DeğiĢken Tipini Öğrenme ... 241 gettype() fonksiyonu (DeğiĢken tipini alma)... 242 settype() fonksiyonu (değiĢekene bir tip atama) . 243 Dizilerle ĠĢlem Yapan Fonksiyonlar ... 245 array_merge() fonksiyonu- (Dizileri birleĢtirme) .. 246 array_push() fonksiyonu–(Dizilere değiĢken ekleme) ... 246 array_shift() fonksiyonu–(Dizinin ilk elemanını silme) ... 247 array_slice() fonksiyonu – (Diziden kopyalama) .. 247 sort() ve rsort() fonksiyonları-(Dizileri sıralama).. 248 asort() ve ksort() fonksiyonları-(ĠliĢkili dizileri

sıralama) ... 248 Program Durdurma Fonksiyonları ... 249 exit() fonksiyonu (kodun çalıĢmasını durdurmak) ... 249 die() fonksiyonu (kodun çalıĢmasını durdurmak) .... 249 eval() fonksiyonu (kodun çalıĢmasını durdurmak) .. 249 Tarih ve Zamanla ĠĢlem Yapma ... 250 Avantajları ... 250 Dezavantajı ... 251 time() fonksiyonu (Ģu anki zaman bilgisini alma) . 251 microtime() fonksiyonu (Ģu anki zaman bilgisini

hassas birimle alma) ... 251 strtotime() fonksiyonu (Metni zaman bilgisine

çevirme) ... 252 date () fonksiyonu (tarih zaman bilgisini metne

çevirme) ... 252 mktime() fonksiyonu (sayılardan tarihi oluĢturma) ... 256 checkdate() fonksiyonu-Tarih geçerli mi ... 257

(10)

setlocale() fonksiyonu (bölgesel ayarlar) ... 257

Tarih Bilgilerini Türkçe Yazdırmak ... 258

getdate() fonksiyonu (tarih zaman bilgisini alma) 259 Matematiksel ĠĢlemlerde Kullanılan Fonksiyonlar Ve ĠĢlevleri ... 260

ceil() fonksiyonu (yukarı yuvarlama) ... 260

floor() fonksiyonu (aĢağı yuvarlama) ... 260

round () fonksiyonu (matematiksel yuvarlama) ... 260

rand() fonksiyonu (rastgele sayı üretme) ... 261

mt_rand() fonksiyonu (rastgele sayı üretme) ... 261

srand() ve mt_srand() fonksiyonları (ilk sayıyı vererek rastgele sayı üretmek) ... 262

getrandmax() ve mt_getrandmax() fonksiyonları (Üretilebilecek en yüksek sayı) ... 263

abs() fonksiyonu (mutlak değer) ... 263

sqrt() fonksiyonu (karekök alma) ... 263

pow() fonksiyonu (üs alma) ... 263

hypot() fonksiyonu (hipotenüs hesaplama) ... 264

log() fonksiyonu (logaritma) ... 264

log10() fonksiyonu (logaritma) ... 264

base_convert() fonksyionu (sayının tabanını değiĢtirme) ... 264

bindec() fonksiyonu (desimal düzene çevirme) .... 265

decbin() fonksiyonu (Onluk düzenden ikilik düzene çevirme) ... 265

dechex() fonksiyonu (16 lık düzene çevirme) ... 265

decoct() fonksiyonu (8 lik düzene çevirme)... 265

hexdec() fonksiyonu (Hex düzeninden ikilik düzene çevirme) ... 265

octdec() fonksiyonu (8‘lik düzenden 2‘lik düzene çevirme) ... 266

(11)

min() fonksiyonu (en küçük değeri bulma) ... 266

Trigonometrik fonksiyonlar ... 266

sin() fonksiyonu (sinüs) ... 266

cos() fonksiyonu (kosinüs) ... 266

tan() fonksiyonu (tanjant) ... 266

asin() fonksiyonu (arcsinüs) ... 266

cos() fonksiyonu (arckosinüs) ... 267

atan() fonksiyonu (arctanjant) ... 267

deg2rad() fonksiyonu (açıyı radyana dönüĢtürme) ... 267

rad2deg() fonksiyonu (açıyı radyana dönüĢtürme) ... 267

Metin ĠĢleme Fonksiyonları ... 268

substr() fonksiyonu (Metnin bir parçasını alma) ... 268

chr() fonksiyonu (ASCII kodun karakter karĢılığı) 270 ord() fonksiyonu (Karakterin ASCII kodunu bulma) ... 270

strlen() fonksiyonu (Metnin uzunluğunu bulma) .. 270

count_chars() fonksiyonu (Metin içinde karakterlerin tekrar etme sayısını bulma) ... 271

str_word_count() fonksiyonu (Metin içindeki kelime sayısını bulma)... 271

strpos() ve stripos() fonksiyonları (Metnin bulunduğu pozisyon) ... 272

strstr () ve stristr () fonksiyonları (Metnin ilk bulunduğu yer) ... 273

wordwrap() fonksiyonu (Metni satırlara ayırma) .. 274

explode() fonksiyonu (Metni bölümlere ayırma) ... 274

implode()fonksiyonu (Metni bölümlere ayırma) ... 275

strtoupper() fonksiyonu (büyük harfe çevirme) .. 275

(12)

ucfirst () fonksiyonu (ilk harfi büyük harfe çevirme)

... 275

ucwords () fonksiyonu (kelimelerin ilk harfini büyük harfe çevirme) ... 276

number_format() fonksiyonu (Rakamları ekrana biçimlendirerek yazdırmak) ... 276

strcmp () fonksiyonu (iki metni karĢılaĢtırma) ... 277

strcasecmp () fonksiyonu (iki metni karĢılaĢtırma) ... 278

str_pad () fonksiyonu (metnin etrafını boĢlukla (yada karakterle) destekleme) ... 278

printf() ve sprintf() fonksiyonu (biçimlendirerek çıktı verme)... 279

parse_str() fonksiyonu (get ile alınan değiĢkenleri parçalayarak bir diziye atma) ... 283

Veri ġifreleme Fonksiyonları ... 284

cyript() fonksiyonu (Metni verilen bir anahtara göre Ģifreleme) ... 284

sha1() fonksiyonu (Metni hash algoritması ile Ģifreleme) ... 285

md5() fonksiyonu (Metni MD5 algoritması ile Ģifrelem) ... 286

Düzenli Ġfadeler (REGEXPS) ... 287

Temel Seviye Regexpler ... 288

BaĢlangıç Düzeyi Regexpler ... 289

Üst Düzey Regexp Ġfadeleri ... 290

En Üst Seviye (Guru ) Düzeyi Regexp Ġfadeleri... 292

preg_match() fonksiyonu (metinler eĢitmi) ... 294

preg_match_all() fonksiyonu ... 295

ereg() fonksiyonu (dizilim arama) ... 295

(13)

ereg_replace() fonksiyonu (dizilim arama ve

değiĢtirme) ... 296

split() fonksiyonu (metni parçalara ayırma) ... 297

sql _regcase() fonksiyonu (düzenli ifade üretme) 298 Kullanıcı Tanımlı Fonksiyonlar GeliĢtirmek ... 299

Basit Bir Fonksiyon Yazalım - myecho ... 299

GLOBAL ve STATĠK DEĞĠġKENLER ... 302

Dizi Fonksiyonları ... 305

array() fonksiyonu (değerleri diziye çevirme) ... 305

count() fonksiyonu (dizinin eleman sayısını bulma) ... 305

print_r () fonksiyonu (değiĢken içeriğini yazdırma) ... 305

var_dump () fonksiyonu (değiĢken içeriğini yazdırma) ... 305

Dizileri Sıra ile ĠĢlemek ... 307

list() fonksiyonu ... 307

each() fonksiyonu ... 307

For.. Each ile dizileri iĢlemek ... 307

For ile dizileri iĢlemek ... 308

PHP ve Formlar ... 309

Süper Globaller (Superglobals) ... 309

Form Dizaynında Altın Kurallar ... 312

Formlardan Bilgi Alma ... 313

Form Verilerini ĠĢleme (Ġki dosya ile) ... 313

Form Verilerini ĠĢleme POST Metodu ... 316

Form Verilerini ĠĢleme (Tek dosya ile) ... 317

Form Verilerini ĠĢleme POST Metodu ... 320

Hesap Makinesi Programı ... 322

Basit Bir ġifreli GiriĢ Sayfası ... 324

Birden Fazla Sayfaya Yayılan Formlar ... 325

(14)

mail() fonksiyonu – PHP ile eposta göndermek ... 326

Web Sayfasından Bir Siteye Dosya Yükleme (Upload) 333 PHP SERVER DEĞĠġKENLERĠ ... 336

Kullanıcının Girdiği Değerlerin Doğruluğunu Kontrol Etme ... 338

Windows ve Unix Dosya EriĢim Yetkilendirmesi ... 339

PHP Klasör Fonksiyonları ... 341

mkdir() fonksiyonu (Klasör oluĢurmak) ... 341

rmdir() fonksiyonu (Klasör silmek) ... 341

chdir() fonksiyonu (Klasör değiĢtirmek) ... 341

is_dir() fonksiyonu (Dizin mi) ... 341

opendir() fonksiyonu (Klasörü açmak) ... 342

readdir() fonksiyonu (Klasörü okumak-listelemek) ... 342

closedir() fonksiyonu (Klasörü kapatmak) ... 342

PHP Dosya Fonksiyonları ... 345

file_exits() fonksiyonu (Dosya var mı?) ... 345

filesize() fonksiyonu (Dosya boyutunu bulma) ... 346

is_file() fonsiyonu (Dosya mı ) ... 347

is_readable() fonksiyonu (Dosya okunabilir mi?) . 347 is_writable() fonksiyonu (Dosya yazılabilir mi? ) .. 348

is_executable() fonksiyonu (Dosya çalıĢtırılabilir mi? ) ... 348

touch() fonksiyonu (dosya oluĢturma) ... 349

unlink() fonksiyonu (dosya silme) ... 350

copy() fonksiyonu (dosya kopyalama) ... 350

readfile() fonksiyonu (Dosyayı satır satır okumak ve ekrana yazmak) ... 350

fopen () fonksiyonu (dosya açma) ... 351

fgets () fonksiyonu (dosyadan satır satır okuma) . 352 fseek () fonksiyonu (dosya içinde bir yere konumlanma) ... 352

(15)

fread () fonksiyonu (dosyadan belirli sayıda karakter

okuma) ... 353

fgetc () fonksiyonu (dosyadan birer birer okuma) 353 feof () fonksiyonu (dosya sonuna gelindi mi) ... 353

fclose () fonksiyonu (dosyayı kapat) ... 353

fputs() ve fwrite() fonksiyonu (dosyaya yazma-dosyaya ekleme) ... 356

flock() fonksiyonu (Kullanımdaki dosyayı kilitleme) ... 357

fileadate() fonksiyonu (Dosyaya son eriĢim tarihi- file access date ) ... 359

filemdate() fonksiyonu (Dosyanın son değiĢtirilme tarihi- file modification date) ... 359

filecdate() fonksiyonu (Dosyanın oluĢturulduğu tarih - file creation date) ... 359

CSV Dosya Fonksiyonları ... 359

fgetcsv() fonksiyonu (CSV dosyasını satır satır okuma) ... 360

fputcsv() fonksiyonu (Değerleri CSV formatında yazma) ... 361

KullanıĢlı Bir Örnek Kayıt Arama ... 362

Öğrenci Notlarını Webde Yayınlama ... 362

Basit Telefon Rehberi ... 365

Basit Sözlük ... 369

Basit Ziyaretçi Defteri ... 372

PHP Çerez - Cookie Fonksiyonları ... 377

setcookie() fonksiyonu – (Çerez bırakma) ... 379

Aynı sayfada birden fazla çerez bırakmak ... 383

PHP Dilinde Oturum – Kullanımı ... 384

PHP ve MYSQL Kullanımı ... 385

MySQL Nedir ? ... 386

(16)

Mysql Tablo Tipleri ... 387

Mysql Veri Tipleri ... 387

Metin tipleri ... 388

CHAR ve VARCHAR Farkı ... 388

BLOB ve TEXT Alanlar ... 389

Sayısal Veri Tipleri ... 389

Tarih / Zaman Tipleri ... 390

Küme Tipi ... 391

Tablo Tasarlama, Key Ve Ġndex Kullanımı ... 392

MYSQL ‗i Komut Satırından Yönetmek ... 395

Mysql‘i BaĢlatmak ... 395

Komut Satırından Veritabanı OluĢturmak ... 395

Komut Satırından Tablo OluĢturmak ... 395

Komut Satırından Veri GiriĢi ... 396

Komut Satırından Veri Sorgulama ... 396

Komut satırından Bilgi DeğiĢikliği Yapmak ... 397

Komut Satırından Kayıt Silmek ... 398

SQL Dilinin Tarihçesi... 399

ĠliĢkisel Bir VTYS Ġçin 12 kural ... 400

SQL Dilinin Bölümleri ... 403

A. DDL (DATA DEFINITION LANGUAGE) KOMUTLARI ... 404

B. DML (DATA MANIPULATION LANGUAGE) KOMUTLARI ... 404

Veritabanı içindeki seçmek, değiĢtirmek, güncellemek ve silmekle ilgili SQL deyimleridir. ... 404

C. DCL (DATA CONTROL LANGUAGE) KOMUTLARI .. 404

SQL Komutları ve Örnekler ... 405

A. DDL KOMUTLARI ... 406

(17)

CREATE komutu tablo ve view gibi bir veritabanı nesnesi yaratmayı sağlar. (Create ayrıca yeni veritabanıda

oluĢturabilir.) ... 406

Mysql‘de sütun adlarını sınırlamak için ― ` ‖ karakteri kullanılır. Normalde bu verilmedende iĢlem yapılır. normal SQL nostasyonlarında bu karaktere gerek yoktur. ... 406

Kullanım Yapısı: ... 406

ALTER DEYĠMĠ... 407

Daha önce yaratılmıĢ nesnenin değiĢtirilmesini sağlar. Örneği bir tablonun tasarımını değiĢtirmek gibi. ... 407

ALTER TABLE ders01a ADD msn VARCHAR( 40 ) NOT NULL ; ... 407

DROP DEYĠMĠ ... 407

Bir nesnesin silinmesini sağlar. ... 407

DROP TABLE ders01a ... 408

B. DML (DATA MANIPULATION LANGUAGE) KOMUTLARI ... 408

SELECT DEYĠMĠ ... 408

Temel Kullanımı: ... 408

Parametrelerin Anlamları: ... 409

AS Deyimi ile Alias Tanımlama ... 411

Where Deyimi ... 412

And ve Or ile Birden Fazla KoĢulun Kontrol Edilmesi 414 In ve Not In Deyimleri ... 414

Like ve Not Like Deyimleri: ... 415

Group By Deyimi ... 416

Order By Deyimi: ... 416

SELECT Ġçinde Aritmetik ĠĢlemler ... 417

Aritmetik ĠĢlem Operatörleri ... 418

Aggregerate fonksiyonları ... 419

(18)

Bir sütuna göre bir select ifadesinin toplamını alır. .... 419

avg() fonksiyonu – Bir sütunun ortalaması ... 420

min() fonksiyonu – Bir sütundaki en küçük değer 420 max() fonksiyonu – Bir sütundaki en büyük değer ... 421

count() fonksiyonu – Bir sorguya göre dönen kayıt sayısı ... 422

JOIN ĠġLEMĠ ... 422

INNER JOIN ... 423

LEFT JOIN ... 424

RIGHT JOIN ... 424

TABLOYU KENDĠSĠ ĠLE ĠLĠġKĠLENDĠRME (SELF JOIN) ... 424

ĠÇĠÇE SELECT NESTED SELECTS ... 425

UNION KULLANIMI ... 425

EXISTS KULLANIMI ... 426

C. DCL (DATA CONTROL LANGUAGE) DEYĠMLERĠ ... 426

GRANT DEYİMİ ... 426

GRANT CREATE DATABASE, CREATE TABLE ... 426

TO ayĢe ... 426

SQL FONKSĠYONLARI ... 427

Metinlerle ĠĢlem Yapan SQL Fonksiyonları ... 427

ascii() fonksiyonu ... 427 char() fonksiyonu ... 427 concat() fonksiyonu ... 428 length() fonksiyonu ... 428 DönüĢtürme Fonksiyonları ... 428 conv() fonksiyonu ... 428 bin() fonksiyonu ... 428 oct() fonksiyonu ... 428 hex() fonksiyonu ... 428

(19)

TABLOLARDA DEĞĠġĠKLĠK YAPMAK: ... 431

INSERT Komutu ... 431

UPDATE Komutu: ... 431

DELETE DEYĠMĠ ... 432

Kullanım biçimi: ... 432

DELETE FROM tablo ... 432

PHPMYADMIN ... 434

PhpMyAdmin Kurulumu ... 435

PhpMyAdmin'i ÇalıĢtırma ve Tanıma ... 436

PhpMyAdmin ile Database OluĢturma ... 438

PhpMyAdmin ile Tablo OluĢturma ... 438

Bir Veritabanının Modelini Çıkarmak ... 440

MySQL ve PHP ... 442

PHP Dili Mysql Fonksiyonları Tablosu ... 443

mysql_connect() deyimi(Database bağlantısı) ... 446

mysql_select_db() deyimi ... 447

mysql_query() fonksiyonu- Mysql‘e sorgu göndermek ... 448

mysql_numrows() fonksiyonu-Sorgudan Dönen Kayıt Sayısını Bulmak... 448

mysql_result()-Sorgudan Dönen Kayıtları ĠĢlemek449 Kayıtları Ekrana Listelemek ... 449

DeğiĢkenleri Sorguların Ġçinde Kullanmak ... 450

mysql_fetch_assoc() fonksiyonu- sorgu sonucundan bir satır almak ... 452

mysql_error() fonksiyonu- MySQL hatalarını konrol etmek ... 452

PHP ile Veritabanı OluĢturma Listeleme ve Silme . 453 PHP ile Tablo OluĢturma, Listeleme, Güncelleme ve Silme ... 455

PHP ile Tablolara Veri GiriĢi, Listeleme, Güncelleme ve Silme ... 457

(20)

Örnek Uygulama: PHP ile ġifreli GiriĢ Sayfası Yapılması

... 460

PHP ve GÜVENLĠK ... 473

addslashes() fonksiyonu (metindeki zararlı olabilecek karakterleri etkisiz yapmak) ... 476

stripslashes () fonksiyonu (etkisizleĢtirilmiĢ kodları ilk haline döndürmek) ... 476

strip_tags () fonksiyonu (HTML etiketlerini metinden çıkarmak) ... 477

PHP ile Header Kullanımı ... 478

header() fonksiyonu-(BaĢlık bilgilerini kullanmak) .. 478

Bir Nesne OluĢturalım ... 483

PRATĠK BĠLGĠLER ... 487

Resim Albümü: ... 487

GiriĢ sayfası yapmak ... 490

Sayfada Tarih Yazdırma ... 491

CMS Sistemleri ... 495

(21)

GĠRĠġ

Son yıllarda internet denen olgu hayatımızın içine öyle bir girdi ki artık çıkması mümkün olmayacak noktayı bile çoktan geçti. Önceleri fantazi yada prestij olsun diye web sitesi yaptıran Ģirketler artık bunu zorunluluk olarak görmeye baĢladılar. Bir çok firma teklif mektuplarını elden yada kağıda baskılı gönderen Ģirketleri doğrudan elemeye baĢladı.

Internet denen Ģeyle 1992 de tanıĢtım. Daha doğrusu internet denen sanal dünya ilk tanıĢmamızda sanal olarak gerçekleĢti. ArkadaĢlarla bazı üniversitelerin yurt dıĢına doğrudan bağlanabildiğini konuĢmuĢtuk yani hepsi bu.

1995 yılında Çukurova Üniversitesinin internet kursuna katıldım. Ftp, ls, sz gibi komutları öğrenmiĢ ne de çok sevinmiĢtim. Ardından sürekli takip ettiğim dergilerde, her Ģey internet, web tarayıcı, Netscape, Frontpage, Outlook, ICQ, IRC gibi baĢlıklara çıkmaya baĢladı.

1998 yılında ilk resmi iĢime baĢladıktan bir süre sonra Ģirketin ilk internet sitesi için benimde HTML öğrenmem gerekmiĢti. Bende Joe Barta‘nın yazdığı ücretsiz HTML öğrenme setinden faydalanarak bugünkü Ģartlarda yüzüne bile bakmayacağım ilk sitemi yapmıĢtım.

Derken Hakkı Öcal üstadın kitapçıkları çıkmaya baĢladı. HTML, Javascript, PHP… Hatta kendisi ile yazıĢan Daphne rumuzlu arkadaĢım sayesinde birkaç kez e-mail gönderip yazıĢmıĢlığımızda oldu. Bu vesile ile bugünlerde çok sık kullanılan ―web sitesi olmayana kız vermiyorlar”

(22)

lafını ilk kez ben bir –emailimde yazdım Hakkı Hocama. Patenti bana ait olsa gerektir ama kimse takmaz sanırım. Etrafta yığınla Ġngilizce kaynak varken neden Türkçe bir kaynak sorusu beni hep üzmüĢtü. Hakkı Öcal üstadın kitapçıkları bir açığı doldurmuĢtu evet ama onlarda yüzeyseldi sonuçta. ĠĢin asıl kötü tarafı kaynak yerinde sayarken PHP çok yol katetmiĢti. Ġsim zikretmek istemiyorum ancak para verip aldığım orijinal kitaplarda son derece yüzeysel konular, son derece yetersiz bir anlatımla verilmiĢti.

Yabancılara baktığımda kendimize kızmaya baĢlıyordum. Mesela Paul Hudson‘un online kitabı bizde yazılmıĢ bütün kitaplardan kat be kat iyiyken, web sitesinde bedava yayınlanmaktaydı. Bruce Perens‘in kitapları da ilk yılda parayla satıldıktan sonra PDF halinde bedava veriliyordu. Bense para verip aldığım Türkçe kitaplarda merak ettiğim basit Ģeyleri bile bulamıyordum.

Sonuçta iĢ baĢa düĢtü ve 2007 yılında yazmaya baĢladığım notlar, 2008 yılında bu kitabın ilk taslağına dönüĢtü. Ancak uzun bir süre ilgilenme Ģansım olmadı. Artık daha fazla öyle kalmasına gönlüm razı olmadı ve sıkı bir çalıĢma ile yayınlamaya karar verdim.

ÇeĢitli kaynaklardan esinlenmeler olduğunu ilk baĢta yazmıĢtım. BaĢta dediğim gibi bu materyaller için maddi beklenti içinde değilim, ancak kullanımı konusunda çeĢitli sınırlar da getirmek zorundayım. Çünkü onca emek harcadıktan sonra bazılarının bunları kaynak bile göstermeden kendilerinmiĢ gibi sahiplenmesi ayıp ötesi bir durum olurdu.

(23)

Kullanım Kuralları

1. Bu çalıĢmanın tamamı veya bir kısmını kaynak belirtmeden yayınlamanız, çalıĢmamımı sahiplenerek kendinizinmiĢ gibi sunmanız yasaktır. Kaynak belirterek yaptığınız alıntıları bir e-mail ile bildirirseniz sevinirim.

2. ÇalıĢmamızdaki yazı ve örnek kodları ticari amaçla satılan bir kitap için kullanamazsınız. Ticari olmayan çalıĢmalarınızda ise alıntı yapma kurallarına uymanız gereklidir.

3. Bu çalıĢmayı tamamen öğrenciler ve öğrenmek isteyenler bir Ģeyleri araĢtırmak istediklerinde bir kaynak bulabilsinler diye, maddi bir beklenti olmadan hazırladım. Beni teĢvik edecek bir mail, bir teĢekkür, siteme verilmiĢ bir link bu konudaki Ģevkimi artıracaktır.

4. Bu çalıĢma için harcağım emek hakkı için; Ģunu da hatırlatırım ki: Koyduğum kurallar haricinde davranıp emek hırsızlığı yapanlardan hakkımı, öbür dünyadaki hesaplaĢmada talep edeceğim.

5. Emek hırsızlarına karĢı yasal haklarım saklıdır. Bu yasal müeyyideler konusunda sizi önceden uyarmak gibi bir zorunluluğum yada lüksüm yoktur.

(24)

HTML DĠLĠ

Atası olan ARPA-NET ve daha sonra adeta çağı değiĢtiren Internet çağımızın en büyük kütüphanesidir. Bu bilgiler değiĢ tokuĢ edilirken herkesin ortak bir dilden konuĢması gerektiğinden buna bir çare arayan uzmanlar, 1986‘da, Standart GenelleĢtirilmiĢ ĠĢaretleme Dili (Standart Generalized Markup Language, SGML) adıyla bir protokol –dili- ortaya çıkardılar. Daha sonra ise günümüzde hala geliĢtirilen HTML protokolu üzeri bir standart oldu.

Burada dil derken bir ayrıma dikkat etmek gerekir. HTML bir dildir ancak bu dil makineye komut veren değil sadece bilgiyi görüntüleyecek olan bilgisayar programına ―yazının şurasını kalın yap, burada tablo yapılacak, kenarlıklı olacak, bu kısım bir pragraf” gibi komutlar veren bir dildir. Bu bakımdan HTML‘nin bir betik dili olduğu hatırlanmalıdır.

HTML, önceleri Macintosh, ardından IBM uyumlu bilgisayarların yardım dosyalarının oluĢturulmasında kullanıldı. Ancak, HTML kısaltmasının açık Ģekli olan Hypertext Markup Language‘de geçen Hypertext terimi, 1950 yılında Ted Nelson adlı bir bilgisayar uzmanı tarafından içinde “hot” yani baĢka bir metinle veya resimle ilintilendirilmiĢ noktalar bulunan metin anlamına kullanılmıĢtı. Apple bunu bir metne yada simgeye tıklayınca baĢka bir yere gitme yöntemi olarak kullandı. Böylece metinler hareketli gibi davranmıĢ oluyordu.

Asıl aĢama ise 1989 yılında yaĢandı. CERN uzmanlarından Tim Berners-Lee, laboratuvar yönetimini ortak bir yazı biçimlendirme sistemine ikna edebilmek

(25)

için, “Enformasyon Yönetimi: Bir Öneri” baĢlıklı bir rapor hazırlayarak bilgisay Ģebekeleri arasında bilgi alıĢveriĢi için Hypertextin ortak bir dil olmasını önerdi. Doğrusu imza attığı devrimi kendisi bile hayal edememiĢ olsa gerek.

Bugünkü Internet‘i Internet yapan iki ana baĢlık vardır. Birincisi bilgisayar arası iletiĢimi gerçek zamanlı olmaktan çıkartan ve iletiĢimi daha sağlam hale getiren HTTP bağlantı protokolünün geliĢtirilmesi; diğeri ise HTML dilinin çok yalın ancak resim, ses, video gibiher materyali taĢımaya yetecek kadar güçlü olmasıdır.

Ağ teknoloji 1980‘lerin baĢlarında bağlantının gerçek zamanlı olmasını gerektiriyordu. Internet‘in adı da ağlar-arası ağ anlamına gelen Ġngilizce ―Inter-networks-network: Inter-net kısaltmasından doğmuĢtur. Bir bilgisayar diğerine bağlandığında iletiĢim gerçek zamanlı ve birebir olma durumundaydı. Gönderilen ile alınan bilginin aynı olup olmadığını kontrol etmek ancak böyle mümkündü. HTTP (Hypertext Transmission Protocol-Hyper Metin İletim Kuralları) bunu ortada kaldırdı. HTTP protokolünü bir otobanın ve yanında uzayıp giden bir otoyol çifti gibi düĢünülebilir. Otoban bakımda ise otoyoldan iĢinize devam edebilirsiniz.

HTTP‘nin , 1990 yılında kurulan World Wide Web Konsorsiyomu‘nun (W3C) tarafından resmi standartları kabul edildi. Bu yüzden 1990 bugünkü Internet‘in de doğum tarihi olarak kabul edilebilir. W3C sürekli olarak http ve HTML içinde bulunan eksiklikler için ortak standartlar belirlemekte ve bunları duyurmaktadır.

(26)

Web ortamında çalıĢan dinamik dillerin, HTML‘in pabucunu dama attığı söylense de bu doğru değildir. Çünkü dinamik diller kullanıcının tarafında değil sunucu tarafında çalıĢmaktadır. Yani dinamik dilin ASP veya PHP yahut JSP olması fark etmez çünkü kullanıcı hep HTML verisi almaktadır.

Bir Web Sitesi Bilinmesi Gereken Temel Bilgiler

Bir web sitesi için

 Her web adresi aslında bir numara bloku tarafından temsil edilir. Bu o sitenin IP numarasıdır. Örneğin 212.175.12.43 gibi.

 IP numarası hatırlamak kolay olmadığından her site için bir isim tanımlanmasının hatırlamayı kolay kılacağı düĢünülmüĢtür. Bu isimlere alan adı (domain name) denir.

 Hangi ismin hangi IP tarafından karĢılanacağını tutmak içinse NS (name server) dediğimiz rehber bilgisayarlar kurulmuĢtur. (9 ana NS bilgisayar vardır ve tamamı ABD ‗dedir). Name server üzeride kayıt sorgulamak içine DNS denilen servisten yararlanılır. Örneğin IP adresi olarak 194.27.128.101 gibi numaraları akılda tutmak zor olduğundan 1983‘te Wisconsin Üniversitesi DNS‘yi geliĢtirmiĢtir. DNS isimleri rakamlara çevirir ve bu da daha kolay kullanım sağlar. Bazen Ttnet DNS sunucuları hata verdiğinden ―internet çalıĢmıyor‖ diyenler olur. Oysa adres çubuğuna IP no yazılırsa siteye eriĢim sağlanması mümkündür.

(27)

 Ġsimleri tahsis etmek ve çakıĢmaları önlemek üzere Domain Register iĢi yapan Ģirketler kurulmuĢtur. Bunların iĢi uygun bir alan adını belirli bir ücret karĢılığı kullanıcılara kiralamaktır. Kiralama iĢlemi ile birlikte bu alan adının internette hangi IP no üzerinde olduğuda burada kayıt altına alınır.

 Bir sitenin eriĢilebilir olması için DNS bilgisayarında IP ile ağa bağlı bir bilgisayar olması gerekir. Bu kendi bilgisayarımızda olabilir ancak bu sistemlerin gerçek sunucu olması iĢlemlerin aksamasını engelleyeceğinden ve bu sunucularda bizim için hayli masraflı olacağından yeni bir iĢkolu doğmuĢtur. HOSTING dediğimiz bu iĢ kolunun ana amacı kullanıcıların web sitelerini kendi sistemlerinde yayınlamak ve bunun karĢılığında ücret almaktır.

 Hosting Ģirketleri sunucu bilgisayarlarına Web server adı verilen bir program kurarlar. Bu program ise 80 nolu portu dinleyere kendisine bağlanan kiĢilere istedikleri dosyaları iletir.

 Web server ile kullanıcı TCP/IP iletiĢim protokolü üzerinden konuĢurlar.

 Kullanıcı Web Server programına kendisine kurulu olan ve Browser (Web tarayıcı, Gezgin) adı verilen programlar ile 80 nolu http portundan bağlanır.  Kullanıcıları ile Web server arasında köprü olarak

ise internete çıkarmak üzere Internet Servis Sağlayıcı (ISS- Ingilizcesi ISP – Internet Service Provider) yer almaktadır. Zaten gerçek zamanlı iletiĢimi gereksiz kılanda bu iĢlemdir bir nevi.

(28)

Kullanıcı örneğin www.tcmb.gov.tr yazdığında browser bu talebi ISS‘ te bağlandığı bilgisayara iletmekte, o da gerekli arama iĢleminden sonra bilgiyi talep etmektedir. ĠĢte bu aĢamada kullanıcı bağlantıyı kesse bile web server bunu bilmemektedir. Zaten bilmesine de gerek yoktur.  Web sunucu HTML metni ( içerik ve o içeriğin

ekranda nasıl gösterileceğine dair biçimlendirme bilgileri) gönderir ancak metni biçimlendirme iĢlemi kullanıcı tarafından yer alan browser tarafından yerine getirilir. Browserlar iĢte bu yüzden HTML yorumlama motoru denilen engine barındırırılar. Her yorumlayıcı farklı mantıkla ve ayrı firmalar tarafından yazıldığından bazı metinlerin ekranda görüntüleme iĢleminde farklılıklar oluĢabilir. Ayrıca bazen Ģirketler sadece kendi tarayıcısına yönelik etiketleri üstelik W3C tarafından onaylanmadan motoruna ekleyebilir.

Örneğin BLINK etiketi NETSCAPE O yüzden site tasarımında ne çok bu konuya dikkat edilmelidir. Dolayısı ile BLINK kullanılan bir sayfa Netscape ile normal görünürken, Safari ile farklı görünecektir. En büyük Ģansımız ise tarayıcılar hatalı bir etikete rastlayınca bunu göz ardı ederek geri kalanları çalıĢtırmaya devam etmesidir.

Domain Uzantı Adları

Günümüzde alan adları yaĢanan sıkıntıların ardından çeĢitlendirilmiĢ ve alternatifler artmıĢtır. Ancak biz temel standartlar üzerinden anlamlarını belirtelim.

(29)

.com -Ticari Ģirketlere ait alan adını belirtir .edu -Eğitim kurumlarına ait alan adını belirtir .gov -Hükümet ve devlete ait alan adını belirtir .mil -Askeri alan adını belirtir

.net -Ağ servis sağlayıcılarına ait alan adını belirtir

.org -Dernek, spor kulübü gibi organizasyonlara ait alan adını belitir

TCP / IP

Transmission Control Protocol / Internet Protocol Kelimelerinin baĢ harflerinden oluĢan Paul Baran tarafından düĢünülmüĢ bir sistemdir. Paul Baran‘dan talep edilen Ģey Ģuydu. ―A,B,C Ģehirlerinde bilgisayarlarımız var, A,B,C birbirleriyle konuĢabilsin, bilgi gönderebilsin, ama A devre dıĢı kalsa bile B ve C konuĢmaya devam edebilsin, bu diğerleride içinde geçerli olsun‖. Paul Baran bu iĢ için paket anahtarlamalı ağ iletiĢimi tekniğini düĢündü. Çünkü istenen Ģey verinin iletilmesiydi. Her koşul ve şart altında bile verinin iletilmesi birinci öncelikti. (İlk öncelik güvenlik olmadığı içinde bu gün güvenlik anlamında bir sürü ekstra yatırıma vs gerek duyulmakta). Veriler paketlere bölünecek ve hedef yerde bu paketler birleĢince verinin kendisi oluĢmuĢ olacaktı.

Paul Baran daha sonra A,B,C lokasyonlarının nükleer füze merkezleri olduğunu öğrendiğinde aslında geliştirdiği şeyin ne olduğunu anlamıştı anlamasına da bilmeden de olsa internetin ilk öncüsü de olmuştu. Kısaca TCP / IP protokolü de

(30)

Ģüphesiz ilk olarak askeri amaçlı geliĢtirilen bir protokoldü ve temel amacı ―bir nükleer savaĢ anında tüm telefon Ģebekesi yok olsa bile biz iletiĢimi devam edip karĢı tarafa nükleer saldırı ile cevap verebilelim.― 1983 yılında TCP / IP ye temel hali verildi. TCP / IP protokolü Unix iĢletim sistemine eklenmiĢ ve 1984 yılında DNS kavramı oluĢturulmuĢtur. Günümüzde internet hayatın içine öyle girmiĢtir ki, TCP / IP sadece internetin değil tüm ağ protokollerinin arasından en çok kullanılan durumuna yükselmiĢtir.

PORT

TCP / IP de her bilgi bilgisayarlar arasında portlar üzerinden iletilir. Ġletim için geçilen yol aynı olsada bilgilerin doğru adrese gitmesi için portların kullanımı Ģarttır. Bir gazete datıcısını düĢünün. Dağıtım kanalı hep aynıdır. Sokaklar. Ancak gazetelere doğru yerlere ulaĢtırmasının tek yolu adreslerdir. Yani kapı numaraları. HTTP iĢlemleri için 80 nolu port kullanılır. Mail alıp gönderme için 25 ve 110 nolu portlar kullanılır. MSN, ICQ, IRC, FTP vs vsvs tüm yazılımların ayrı bir port kullanımı vardır.

TCP /IP veriyi iletirken baĢına port‘u da kaydettiğinden, o paketin hangi yazılım için olduğu bilgisi de otomatikman iletilmiĢ sayılabilir. Böylece bilgisayarda aynı anda bir çok yazılım ile internet kullanılabilmektedir.

Web Server

Internette tanımlı bir alan adına karĢılık gelen bir numara (IP numarası) vardır demiĢtik. Bu IP nolu bilgisayar sayfa

(31)

gelen kiĢilere istedikleri bilgileri gönderebilmek için hep açık olmak zorundadır. Ayrıca bu bilgisayarda gelen talepleri toplayıp onlara cevap verecek bir de program yüklü olmalıdır.

Web server aslında hem bu iĢlere yarayan programlara hemde bu programların kurulduğu bilgisayarlara verilen bir isimdir. Kafa karıĢtırıcı olabilir ama ama iki tanımda doğrudur. En çok bilinen Web Server programları Apache, MS Internet Information Server (IIS), Xitami gibi yaygın sunuculardır.

Bu programların, bilgi alıp-vermenin yanı sıra, elektronik posta alıp verme ve yönlendirme, veritabanlarına eriĢme ve içinden seçme yapma (Query, SQL, vb. gibi), kendi sabit diskinde duran bir dosyayı alıp karĢı tarafa aktarma (FTP, Gopher, WAIS) veya karĢı tarafın vereceği dosyayı alıp kendi sabit diskine kaydetme yeteneği olur.

Ġlk Web Server programı, yukarıda, HTML dilinin geliĢtirilmesindeki öncü konumu nedeniyle sözünü ettiğimiz, Ġsviçre‘deki CERN kurumu tarafından geliĢtirildi; ama kısa zamanda UNIX platformunda, anonim bir tarzda ve ücret ödemeden kullanılabilen bir Ģekil aldı. KiĢisel bilgisayarların UNIX gerektiren bilgisayarlara oranla daha ucuz olması, Microsoft‘un NT, IBM‘in OS/2 iĢletme sistemlerinin UNIX‘e ciddî rakip haline gelmiĢ bulunmaları nedeniyle, bu sistemlere dayalı Web Server programları da hızla artmaktadır.

Apache Web Server ise bir çok iĢletim sisteminde çalıĢabilmesi ve ücretsiz olması nedeniyle Linux ile birlikte iyi bir ikili olmuĢ ve Internette en çok kullanılan

(32)

Web Server olma özelliğini açık ara ile elinde tutmaktadır.

Apache

 Açık kaynak kodludur

 Bir çok iĢletim sisteminde çalıĢabilir (hatta bir çok sistemde zaten kurulu halde gelir)

 Tamamen ücretsizdir IIS

 Kaynak kodu kapalıdır.

 Windows iĢletim sisteminde çalıĢır.  Ücretsiz değildir.

Linux ve FreeBSD adlı, ücretsiz dağıtılan UNIX iĢletme sistemleri de, ticarî olanları aratmayacak niteliklere sahiptir. Ayrıca bu tür ücretsiz programlar, Apache Web Server‘ın ücretsiz sürümünü de içerdiklerinden sıfır maliyet ve kurulum ile web server edinmek mümkündür. Bir Web Server yazılım paketi seçerken dikkat edilmesi gereken bir kaç ilkeyi sıralayalım:

1. Yazılım paketi yeterli güvenliği sağlayacak özelliklere sahip olmalıdır. Binalarda bir odadaki yangının yandaki odaya sıçramasını önleyen ateĢe dayanıklı duvarlardan (Firewall) esinlenerek adlandırılan bir dizi program, Web Server yazılımının bulunduğu bilgisayarın, kötü niyetli kiĢiler tarafından bozulmasına engel olmaktadır. Ancak Web Server‘ın kendi içinde mevcut güvenlik

(33)

önlemlerinin neler olduğunu dikkatle araĢtırmanız gerekir. Bunuda tarafsız bir gözle yapmak gerekir örneğin çoğu kiĢi için Unix çok güvenli, Windows ise berbattır yada bunun tersi düĢünülebilir. Oysa bu bir takım tutma olayı değild,r ve önyargılı olmak yanlıĢtır. Asıl güvensiz olan sistem değil sistemin baĢında oturan sistem yöneticisidir.

Yönetici ne kadar dikkat ederse sistemde o kadar güvende demektir. Burada önemli olan, Internet‘e açılmanın, iyi niyetli-kötü niyetli herkese açılmak olduğunu unutmamaktır. Özellikle form denilen, HTML‘in ziyaretçi bilgisayarın evsahibi bilgisayara talepten baĢka Ģeyler göndermesine imkan veren etiketlerini ve ona bağlı CGI (Common Gateway Interface-Ortak Geçit Arabirimi) adı verilen ziyaretçinin ev sahibi bilgisayardaki programları harekete geçirebildiği buluĢma noktasında yer alacak programları tasarlarken, daima kötüniyetli kiĢileri dikkate alarak hareket etmek gerekir. Internet‘te güvenliğin ne kadar kolay sarsılabildiğine ve ne kadar kolay önlem alınabileceğini bir örnek verelim.

Sayfanızda, ziyaretçinin doldurması gereken ―Elektronik Posta Adresiniz:‖ diye bir metin kutusu bulunduğunu düĢünün. Bu kutuya bütün ziyaretçilerin elektronik posta adreslerini yazacaklarını düĢünüyor ve bu bilgiyi iĢleyecek CGI programında, ziyaretçinin bu kutuya yazacağı bilgiyi, alıp doğruca Web Server‘ın ―Mail‖ programına veriyorsunuz.

(34)

[email protected]; mail [email protected]</etc/passwd”

yazarsa? Bu yaptığınız basit ama ölümcül hata sonucu, forma girilen bu adrese, bilgisayar sisteminizdeki bütün password-parola dosyaları email ile gönderilecektir.

Oysa, programı yazan kiĢi, elektronik posta adresini Mail programına gönderirken ―unless ($mail_to = ~/^[\w-.]+\@[\w-.]+$)‖ Ģeklinde bir satırla, girilen bilgideki karakterleri kontrol etse sorun halledilebilecektir.

2. Özel Bilgilerin Korunması ve Doğrulatma: Web hizmeti sunan kiĢi, sadece baĢkalarının kendi bilgisayar sisteminde arzu edilmeyen Ģeyler yapmalarını önlemekten değil, aynı zamanda kendisine emanet edilen baĢkalarına ait bilgileri de saklamak ve baĢkalarından korumak zorundadır. Bu bilgiler, ziyaretçinin adı, elektronik adresi, hatta kredi kartı numarası olabilir. Bunlar, sizin Internet‘te çizdiğiniz portreye güvenilerek size verilmiĢ mahrem bilgilerdir.

Ziyaretçi bu bilgileri size, kötüye kullanılmayacağı güvencesiyle vermektedir. Aynı bağlamda, Web hizmeti sunan kiĢi olarak, sizin de bu bilgilerin kolayca ve baĢkalarına açık hale getirilmeden doğrulatılmasına ihtiyacınız olacaktır. Web Server programınız, örneğin kredi kartı numarasını, yeni programlar edinmeye ihtiyaç kalmadan doğrulatabilmelidir.

3. Web Server, siteye yapılan ziyareterin kaydını uygun Ģekle kayıt altına almalıdır? Örneğin sayfanıza kaç kiĢi uğramıĢ, sitenizin en çok hangi sayfası

(35)

görüntülenmiĢ, en çok hangi dosya indirilmiĢ, han gisteden sizin sitenize en çok ziyaretçi gelmiĢ bunların bilinmesi önemlidir.

Özellikle elektronik ticarete dayalı veya mesajını daha çok sayıda kiĢiye iletmek amacıyla hazırlanan Web alanlarını iĢletenlerin, sayfalarının varlığını duyurmak için, mümkün olan her yoldan yararlanmaları gerekir. Çok önemsiz gibi görünebilir ama Google içerik ile reklamı birleĢtirmeyi akıl eden reklam yapısı Ģu anda alanında dünyanın en büyüğü olmayı baĢarmıĢ bir Ģirket. Örneği sitenize gelen ziyaretçi eğer mobilya hakkında bilgi arıyor ise belkide mobilya almaya niyeti vardır bu durumda ona mobilya reklamı gösterilmelidir… ĠĢte bu formül Google Ģirketini bir numara yapmıĢtır.

4. Web Server programıyla ilgili teknik destek ve sorun çözme hizmeti alıp almamak, programın seçiminde belki de en önemli unsur sayılabilir.

Web’de Gezme ĠĢlemine Genel Bir BakıĢ

Internet ve intranet ortak dili, HTML dilidir. Bir Web sayfasında yer alan belgenin içindeki bazı kelimeler, simgeler, fotoğraflar, grafik unsurlar veya bunların parçaları bir baĢka sayfa ile hiper-link kurularak, bağlanmıĢtır.

Kullanıcı, hiç bir komut öğrenmek zorunda kalmadan, hiç bir bağlantının Internet‘teki adresini bilmek zorunluluğu olmadan bu sayfalardaki bağlantıları tıklayarak, yazıdan yazıya, Ģekilden Ģekilde, gidebilir. Aslında kullanıcı ya da ziyaretçinin bir HTML sayfasıyla iliĢkisi burada da

(36)

bitmemektedir. Çoğumuz ulaĢtığımız bir alanın adresini Web tarayıcı programında sık sık ziyaret etmek istediği yerlerin arasına koyabilir (bookmark) ve arzu ettiği zaman doğruca iĢaretlenmiĢ olan bu adreslere gidebilir.

HTML’in

baĢlıca

özelliklerini

Ģöyle

sıralayabiliriz:

1. Belge biçimlendirme: HTML, Web tasarımcısına, belgelerini ziyaretçinin ekranında nasıl oluĢmasını istiyorsa öyle Ģekillendirme imkanı verir.

2. Bununla birlikte tarayıcı programlarının HTML komutlarını yorumlayıĢlarında az da olsa fark vardır ve bu fark sayfalarınızın bir ziyaretçinin bilgisayarında baĢta, diğerinin bilgisayarında baĢka gösterilmesine yol açabilir. Ayrıca ziyaretçileriniz, tarayıcı programlara verdikleri komutlarla, aldıkları sayfalarda genel değiĢiklik veya kısıtlamalar yapabilirler. Siz sayfanızda ne tür harf türü (font) kullanmıĢ olursanız olun, ziyaretçiniz tarayıcı programa ―Sadece Times fontları kullan‖ demiĢ ise, sayfanız bu ziyaretçinin ekranında sizin istediğinizden farklı biçimde görülecektir. Ziyaretçi tarayıcı programına ―Grafik unsurları gösterme!‖ demiĢ ise, sayfalarınız ve tabiî vermek istediğiniz görsel mesaj tamamen farklı bir nitelik kazanacaktır. Bu duruma rağmen, bugünkü Ģekliyle HTML, Web tasarımcısına adeta bir gazete ya da dergi sayfası tasarlarcasına, oluĢturmak istediği görsel etkiyi sağlamasına yeterli tasarım araçları sunmaktadır.

(37)

3. Ġlk çıktığında web sadece durağan sayfaların aktarıldığı bir yer iken bugün canlı yayın radyo ve tlevizyonlara varıncaya kadar hayatımıza grmiĢtir. Bununla birlikte HTML, bir kelime iĢlem ya da masaüstü yayıncılık programının oluĢturabileceği görsel özelliklere sahip sayfalar oluĢturamaz. Bu kısıtlamalara, Internet‘i tasarlayan uzmanların, platformlar (Windows 3.x, Windows 95/98, Windows NT, Unix, MacOS), donanımlar (Macintosh, PC, Sun) ve tarayıcı programların hepsi tarafından doğru Ģekilde anlaĢılabilen bir platform oluĢturma isteği sebep olmaktadır.

HTML, dililinin hassas ölçmelere ve biçimlendirmelere izin vermemesi HTML için eksiklik değil bilinçli bir tercihtir. Çünkü bu durumda ancak belirli platformlarda çalıĢır duruma gelecekti. HTML dilinin platformdan bağımsız olması adına bu yol seçilmiĢtir.

4. HTML ile oluĢturulacak statik alanların içine dinamik sonuçlar doğuracak programlar konulabilir. Bu dillerle HTML sayfalarını duraganlıktan çıkartmak ve ziyaretçi ile etkileĢen, ziyaretçinin arzu, beğeni ve özelliklerine göre içeriğini değiĢtirebilen Web alanları tasarlamak mümkündür

5. Web‘de bulunan aĢağı yukarı bütün içerik yani metin, ses, video türü mer materyal sanat eseri kabul edilmektedir. Kısaca telif hakkı ve bu hakka sahip birisi vardır. Dolayısı ile telif hakkı size ait olmayan veya sahibi tarafından size izin verilmeden bir sanat eserini yayınlayamazsınız.

(38)

Bir sanat eserini Web sayfanıza koymak ve kamuoyunun ulaĢabileceği Internet gibi herkese açık bir ortama yerleĢtirmek, yasaların ―yayın‖ saydığı bir fiildir. Ġzinsiz sanat eseri yayınlamak ise, Türk Ceza Yasası‘na göre ağır hapis cezasıyla cezalandırılan bir suçtur. Ceza yasaları olmasada bu ahlaki bir suçtur.

(39)

Web Tarayıcıları

Bir Web tarayıcı kullanıcının yazdığı adresi yada tıkladığı linki ilgili web serverdan talep eden varsa dönen bilgiyi içinde tanımlı motor ile yorumlayıp ekran görüntüsünü oluĢturup ekranda gösteren yazılımdır.

Burada çok dikkat edilmesi gereken nokta Ģudur. Her tarayıcının yorumlayıcı motoru farklı kiĢiler tarafından geliĢtirildiği için haliyle her komutu aynı Ģekilde yorumlamaları beklenemez. ĠĢte bu yüzden bazı web sayfaları bir tarayıcıda diğerinde olduğundan farklı görünebilirler. Web sitesini ziyaret edebilecek kiĢilere de illa Ģu tarayıcı kullanılmalıdır gibi bir sınır konamayacağından sayfa bazı kiĢiler tarafından hatalı olarak görülecektir. ĠĢte bu yüzden web sitesi yaparken mutlaka sayfanın diğer tarayıcılarda nasıl göründüğü kontrol edilmelidir.

HTML‘i kullanarak, ticarî amaçlı Web tasarımı yapan kiĢi, Internet ile bağlantılı bilgisayar kullanıcılarının (Internet kullanıcılarının) hepsinin ekranında aynı Ģekilde gösterilecek sayfalar yapmaya mecburdur. Buna karĢılık bir firmanın intranet ortamı için Web tasarımı yapan kiĢi, HTML‘in sadece kendi firmasının standart olarak benimsediği tarayıcının anlayabileceği özelliklerinden yararlanması mümkündür.

Microsoft Internet Explorer

Windows ortamında tarayıcı piyasasına, diğer tarayıcılardan sonra girmesine rağmen, Ģu anda pazarda %80 in üzerinde bir oranda kullanıma sahiptir.

(40)

Netscape Navigator

Netscape Communications Corporation‘ın (NCC) piyasaya sürdüğü NN, IE‘ın hızlı yükseliĢi sonucu gerilemiĢ ve sonunda yerini Open Source kardeĢi Firefox‘a bırakmıĢtır. Firefox

Netscape tarayıcısının kaynak kodu üzerine geliĢtirilmiĢtir. Hızla yaygınlaĢmıĢtır. Firefox Google tarafından da maddi anlamda desteklenen bir projedir Opera

Norveçli bir firmanın geliĢtirdiği Opera standartlara en uyan tarayıcı olması ile ünlüdür. Sekmeli arabirimde ilk defa Operada gelmiĢ bir yeniliktir. Günümüzde eski günlerini aramakta olsada hala bir ölçekte kullanımdadır. Google Chrome

Google‘ın çıkardığı tarayıcı olup Google adı üzerinde yaygınlaĢarak epey bir kullanım oranına kavuĢmuĢtur. Yandex Browser

Rusya menĢeili arama motoru Yandex‘in Google Chrome‘un açık kaynaklı kısmı üzerine kurulu tarayıcısıdır.

Tarayıcılar Ġçin Yardımcı Programlar ve Ek Birimler

Tarayıcılar eskiden sadece iletilen metni göstermekteydi. ġimdi hiçbir eklenti gerekmeden bir çok resim dosyayısını gösterebilmekte ve çözücü (CODEC- COder DECoder) yardımı ile video dosyalarını

(41)

oynatabilmektedir. CODEC kullanılması tarayıcıların asıl alanlarında kalmasına izin verir. Çünkü sürekli yeni görüntü ve ses formatları çıkmaktadır. Haliyle her tarayıcının buna ayak uydurması mümkün değildir. Plug-In denilen ek birimler tarayıcıya tamamen farklı bir programı açmak yerine, belirli bir tür dosya türünü ekranda canlandırabilme yeteneği kazandıran eklerdir. Tarayıcı program bilgisayara kurulurken bu ek birimler olmaksızın (ya da çok yaygın olanları ile) yüklenir.

(42)

HTML Editörleri

Genel olarak HTML editörleri iki grupta incelenirler, Metin editörleri ve WYSIWYG editörler. Normal metin editörlerine en bilinen örnek Windows ile birlikte gelen notepad programıdır. WYSIWYG editörler ise HTML dosyasını tarayıcı içindeymiĢ gibi göstererek kullanıcının yazdığı metinlerin geri planda HTML karĢılığını kaydederler.

Günümüzde editörler öylesine geliĢmiĢtir ki, hata kontrolü, Mouse ile çizerek sayfa çatısı kurma, hazır temalar, hazır sayaç çeĢitleri, FTP ile sayfayı siteye upload etme seçeneklerinin hepsini birden içinde barındıran editörler ortaya çıkmıĢtır.

Expression Web

Windows iĢletim sisteminde çalıĢır. Tema, WYSIWYG ve FTP desteği verir.

Dreamweaver

Hem metin hemde WYSIWYG tasarıma izin verir. Ayrıca PHP, ASP, CF gibi dilerlide kullanmayı sağlar. Sürükle bırak form dizayn etme, veri tabanına otomatik bağlantı ve sorgu dizayn etme, hazır formlar, FTP ile upload ve en önemlisi Mouse ile çizerek sayfa çatısını CSS formatında çizebilmesidir.

Word

Word aslında kelime iĢlemcidir ama sayfaları HTML olarak kaydetmeyede izin verir. En büyük sorunu ise Word ile oluĢturulan bir HTML sayfası, aynı iĢi yapan ve

(43)

Notepad ile oluĢturulmuĢ bir sayfadan yakalĢık iki kat daha büyük olmasıdır. Hele sayfada tablo da bulunuyorsa durum dahada vahimdir.

NVU

Bedava bir editördür. Composer kodu üzerine geliĢtirilmiĢtir. WYSIWYS tasarıma izin verir. Tablo kullanma yeteneği kısıtlıdır. Frame vs konularda da kullanıcıyı sıkıntıya sokmaktadır.

(44)

HTML’in Temel BileĢenleri

Bir web sitesinin temeli içeriktir. Resimde olsa metinde olsa görüntüde olsa sonuçta hepsi içeriktir. Bu içerikler ise Etiket denilen (TAG) iĢaretleyiciler yardımıyla biçimlendirilir.

Etiketler (Tag)

HTML komutları içeren ve tarayıcıların tanıyabildiği dosya, aslında içinde ASCII karakterlerden baĢka bir Ģey olmayan, düz yazı dosyalarıdır. Tarayıcıya, sayfayı ekranda oluĢtururken vermesini istenilen biçimle ilgili komutlar bir dizi özel etiketler ile belirtilir. Bunları içerikten ayırmak içinse ―<>‖ çifti arasına almak gerekir. Sayfa tasarımı yaparken örneğin <b> etiketi kullanılırsa tarayıcıya ―ben buraya bu etiketi koydum. Artık benden ikinci bir komut gelene kadar her Ģeyi ekrana KOYU olarak bastır‖ denilmiĢ olur. Dolayısıyla HTML‘de ilke, önünde etiketi olmayan herhangi metne yer vermemektir. Önünde etiketi olmayan herhangi bir metin parçası, tarayıcı tarafından temel paragraf olarak nitelenir.

HTML, içinde kontrol kodu olmayan metin dosyasıdır. Yani Wordde bir dosya yazdığınızda içinde HTML etiketleri kullanmıĢ ble olsanız bu dosya metin dosyası olmadığından HTML dosyası değildir. Böyle bir dosyanın adındaki uzantıyı silerek, yerine ―.html‖ uzantısını verilirse ekrana gelecek olan dosyadaki metin değil, Çinçe yada Japonca dilini çağrıĢtıran karakterler yığını olacaktır. HTML düz yazı olduğuna göre, bir HTML dosyası oluĢturmak için, herhangi bir kelime-iĢlem yazılımı kullanılabilir.

(45)

HTML Yazım Kuralları

1. Etiketlerin büyük harfle veya küçük harfle yazılması arasında fark yoktur. <br> ile <BR> aynı iĢi yapmaktadır.

2. Bir kaç istisna tiket hariç bütün etiketlerin birde sonlandırma çifti vardır. Sonlandırma için aynı etiketin önüne ―/‖ (bölü) iĢareti konulur. Örneğin <strong>Türkiye</strong> gibi.

3. <!-- ile --> arasındaki metinler yorum olarak ele alınır ve gösterilmez.

İyi bir programcı açtığı etiketi kapatmayı unutmamalıdır. Bunun için en kolay yöntem önce açma ve sonladırma etiketlerini yazma sonra içerisini doldurmaktır.

HTML Dosyasının Bölümleri

HTML dosyası iki kısımdan oluĢur.

1. Head denilen baĢlık kısmı. 2. Body denilen metnin kendisi

Web tarayıcılar, HTML etiketini gördükten sonra hemen HEAD ve BODY etiketlerini arar ve ekrandaki sayfayı buna göre biçimlendirirler.

Basit bir HTML örneği, <HTML>

<HEAD> BaĢlık Metni

(46)

</HEAD> <BODY> Body Metni </BODY> </HTML> <html> <head>

<title> İlk Sayfam </title> </head>

<body>

Sayfama Hoş geldiniz

</body>

</html>

Türkçe bilgi içeren bir sayfa örneği ise;

<HTML> <HEAD>

<meta http-equiv = "Content-Type" content = "text/html; charset = windows-1254">

</HEAD> <BODY>

(47)

Merhaba. Web Tasarım Rehberi‘ne HoĢ Geldiniz! </BODY>

</HTML>

<html>...</html>

Örneklerde görüldüğü gibi bu etiket bloku tarayıcıya HTML dosyasının baĢladığını ve bittiğini belirtir. Tüm diğer kodlar bu iki etiket arasına yazılır.

<head>...</head>

Etiketleri arasında ise sayfa hakkında bilgiler verilir. title gibi etiketler, anahtar kelimeler, sayfanın dili vs burada yer alır. Bu alandaki bilgiler ekranda görünmezler. Sadece title tarayıcı baĢlığı olarak kullanılır. <title>...</title>

Title etiketi tarayıcı penceresinin üstüne yazılacak olan baĢlığı belirtir. Yazılan metin penceresinin üstünde tarayıcı adı ile birlikte yazılır.

<body>...</body>

Bu etiketler ise sayfanın ekranda görüntülenecek olan kısmını yazdığımız bloktur. Parametreleri ile birlite sayfanın zemin rengini, linklerin rengini, arkaplan resmini ayarlamak mümkündür.

(48)

Meta Etiketleri Arama Motorları Ġçin Sitemize Eklememiz Gereken Bilgiler

Normal olarak oluĢturulan her sayfanın HEAD kısmına sayfanın açıklamasının yapıldığı, sayfa hakkında anahtar kelimelerin belirtildiği meta etiketler konabilir ve konulmalıdırda.

Anahtar kelimeler arama motorlarının sayfayı tanımasını ve tespit etmesini sağlar. Yeni nesil arama motorları (Örn : Google gibi) meta etiketlerinin yanısıra belgenin Gövde kısmındaki içeriği de dikkate alır. Eskiden sırf ziyaretçi çekmek için popüler metinlere meta etiketlerinde alakasız yer verilir bir nevi kullanıcı aldatılırdı. Google BODY kısmınıda dikkate alarak bu iĢe bir önlem almıĢ olmaktadır.

 NAME: Sayfanın yazarı, sayfanın yayın tarihi, vb., bilgiler içerir. <META NAME="bilginin türü" CONTENT="bilgi"> Ģeklinde yazılır.

 <META NAME="keywords" CONTENT = "kelime1 kelime2 kelime3">

"keywords" sayfa hakkında bazı anahtar kelimeler içerir. Böylece arama motorları için index oluĢturmaya yardımcı olur. (Dikkat: bu kısma ilgisiz alakasız Ģeyler yazarak arama motorları aldatıldığından artık sadece bu alan değil komple içerik indekslenmektedir. Kısaca kendinizi kandırmayın)

 <META NAME ="description" CONTENT

="metin">

 "description" etiketi site hakkında tanımlanma bilgisini içerir. Bu etiketi tanımayan arama motorları ise

(49)

sayfanın ilk bir kaç kelimesini tanımlama aracı olarak kullanır. Örnek:

<META NAME="description" CONTENT ="KiĢisel PHP sitem.">

<META NAME="author" CONTENT ="Adı Soyadı">

Arama yapanlara siteler gösterilirken bazı arama motorları site yazarını bu etiketi tarayarak bulur. Örnek:<META NAME="author" CONTENT="Türkiye"

 HTTP-EQUIV: Ġçinde yer aldığı sayfanın, Web Server tarafından ziyaretçiye gönderilmesinde oluĢturulacak Response Header (KarĢılık BaĢlığı) bölümünde yer alacak bilgiler içerir. <META HTTP-EQUIV="bilginin türü" CONTENT="bilgi"> Ģeklinde yazılır.

AĢağıda, meta etiketlerinin content bölümünde açıklama yapılmıĢ ve parantez içinde bu sayfa için uygun örnekler verilmiĢtir.

<meta name="author" content="Sayfayı düzenleyenin adı">

<meta name = "Description" content = "Sayfanın açıklaması">

<meta name="keywords" content="Arama motorlarına yardımcı olmak için sayfa hakkında anahtar kelimeler (bu sayfa için HTML,ders,web sayfası,web sitesi, PHP vs) "> <META name="copyright" content="Telif hakkı ve tanımları" >

(50)

Eğer sayfa içeriği Ġngilizceden farklı ise hazırlanan sayfada herhangi bir karakter görüntüleme sorunu sorunu yaĢamamak için <head> bölümünde sayfasının kod sayfasını belirten meta etiketleride eklenmelidir. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">

<meta http-equiv="Content-Type" content="text/html; charset=win-1254">

Bugünlerde arama motorları için yapılabilecek iĢlemler SEO Uzmanlığı adıyla ayrı bir meslek haline dönüĢmüĢtür. Bu konuda bazı materyalleri ilerleyen konularda bulacaksınız.

Meta Tağlarının GeliĢmiĢ Kullanımı

Sayfanın Süre AĢımını Belirtmek

Bu iĢlem için ―expires‖ etiketi kullanılır.

<META HTTP-EQUIV="expires" CONTENT="Wed, 04 Apr 2008 23:59:59 GMT">

Yukardaki örnekte sayfanın 4 Nisan 2008 günü Greenwich saatiyle gece yarısından itibaren arama motorlarından ve ziyaretçilerin bilgisayarlarında geçici Internet dosyaları klasöründen silinmesini sağlar.

Bir Sayfanın Belirli Bir süre Ekranda Kalıp Otomatikman BaĢka Bir Adrese Yönlenmesini Sağlamak

Bu iĢlem için ―refresh‖ etiketi kullanılır. Böylece tanımlı süre sonunda hedef URL otomatik açılır.

(51)

<meta http-equiv = "refresh" content ="5; url=http://abc.com/dnm.html">

Bu sayfanın 5 saniye ekranda kalacağını ve daha sonra URL ile belirtilen adresteki sayfanın yüklenmesini sağlar.

Türkçe Karakterleri Görüntülemek-Kod Sayfası

Yukarda örneğini gördüğümüz meta etiketi sayesinde sayfa için bir kod sayfası belirtebiliriz. Böylece hazırlanan sayfanın ekranda hangi karakter seti ile görüntüleneceğinin bilgisini tarayıcıya vermiĢ oluruz. Türkçe için 3 adet karakter seti kullanma imkanımız vardır.

 Windows-1254  Iso-8859-9  UTF

Türkçe bilgilerin görüntülenebilmesi için

<meta http-equiv="Content-Type" content = "text/html; charset=windows-1254">

<meta http-equiv="Content-Type" content = "text/html; charset=iso-8859-9">

Seçenekleri kullanılabilinirse de en doğrusu UTF-8 kod sayfasının kullanımıdır. UTF evrensel karakter seti olmak iddiasındadır. Bu konuda da hayli yol katetmiĢtir. Bu

(52)

nedenle artık UTF kodlamasının kullnaılması kesinlikle önerilir.

<meta http-equiv="Content-Type" content = "text/html; charset=utf-8">

<BODY> Etiketinin Parametreleri

Body etiketi çeĢitli parametreler ilede kullanılabilir. Bunlar

 Bgcolor : Sayfanın zemin rengini belirtir

 Background : Sayfanın zemini için bir resim

kullanılmasını sağlar.

 Text : Sayfadaki yazıların rengini belirtir. Bu

renk belirtilmiĢ ise sayfa içinde renk belirten etiket görülmediği sürece tüm içerik bu renkte basılır.

Örneğin

<body bgcolor=‖aqua‖ text="red" background=―1.jpg"> Normalde resimler için en boy belirtilebilir ancak <body> etiketinde bu durum söz konusu değildir. Seçilen resim tarayıcı tarafından tüm sayfayı kaplayacak Ģekilde sayfaya yerleĢtirilir.

TrueType Fontlar-Harf GeniĢliği Serif ve Sans Serif Harfler

Daktilolarda, kağıdı hareket ettiren mekanizma, her harfin geniĢliğine göre farklı hareket yeteneğine sahip

(53)

olmadığından ―i‖ veya ―k‖ veya hepsinden geniĢ olan ―m‖ harfi de aynı geniĢlikte bir alana yazılırdı. Zamanla teknoloji sayesinde bu sorun aĢıldı. Harfleri büyüklüklerine göre göreli geniĢlikte olan fontlarla bütün harfleri aynı geniĢlikte olan fontların farkı buradan kaynaklanır. Günümüzde, teknik gerekçelerle eski tip fontlar hala vardır.

Harflerin genel karakteristiğine göre ayrımda ise fontlar serif, sans serif ve dekoratif olarak üçe ayrılır. Serif harfler kuyruklu yazılmıĢ, sans serif harfler ise düz olan biçimdir. Web de görsel etki, zıtlıklardan yararlanarak sağlanır. Bir sayfada yer alacak bir metnin serif diğerinin sans serif harflerle yazılması iyi bir zıtlık oluĢturup okunulabilirliği artıracaktır Ekranda okuma kolaylığı açısından sans serif harfler tercih edilmelidir. Özellikle küçük puntolu serif harflerin okunması çok zor olabilir. Sans serif harfler içeren en bilinen fontlar Arial Verdana ve Tahoma fontlarıdır. Serif için en bilinen örnek ise times New Roman fontudur.

H1,H2,H3,H4,H5,H6 BaĢlık Etiketleri

HTML bize H1, birinci yani en büyük, H6 sonuncu, yani en küçük olmak üzere altı ayrı büyüklükte baĢlık kullanma imkanı veriyor. Farklı baĢlık büyüklüklerini daha yakından tanımak için, Ģu sayfayı yazarak, örneğin baslik.htm adıyla kaydedin:

<html> <head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">

References

Related documents

Specifically, within this study's ASD sample, 14 children had a diagnosis of autism (e.g. Given that data was only collected in n = 6 PDD-NOS and n = 6 Asperger children, it was

The decision to move to a capital based general rate removed the need for the historical differentials, and circumstances had changed enormously since they were

Colonization according to L’eglise and Migge (2007) played an instrumental role in the development and use of language in the African continent because a form of

• Telnet Server: enables remote users, including those running UNIX-based OS, to perform command-line administration tasks and run programs using a telnet client.. • Trivial

5.10.3.1 Macro and micro level policy analyses and economic research and analyses related to land-use systems, conflicts between wildlife and other sectors, wildlife utilisation

Although policies to reduce stove cost alone would be sufficient to enable all of R2 to use clean fuels in 2030 in the NNP, additional fuel price support is needed to achieve the

Proportionally, for the amino acids quantified in this study, proline was observed to make up from 14.4% (Grenache Blanc) to 69.21% (Merlot) and on average 35.7% of the

Intuitively, an on-line coloring algorithm is said to be competitive for a family of graphs G if, for any graph G ∈ G, the number of colors used by the algorithm on G is bounded