İbrahim Halil Kutluay
Nisan 2013
HTML-CSS-PHP
MYSQL-SQL
Ġç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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Ö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
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”
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.
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.
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
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.
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.
Ġ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.
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.
.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
Ģü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
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
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
ö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.
“[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ı
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
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.
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.
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.
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.
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ı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.
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
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.
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.
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
</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>
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.
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
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ı" >
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ı BelirtmekBu 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.
<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
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
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">