Dinamik (server-based) Web Teknolojileri ve Programlama



Benzer belgeler
Dinamik Web Programlama

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

1.PROGRAMLAMAYA GİRİŞ

Öğr. Gör. Serkan AKSU 1

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

PHP 1. Hafta 1. Sunum

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Internet Programming II

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

08220 Internet Programcılığı II

PROGRAMLAMA DERSİ 1. İNTERNET

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

PHP 1. Hafta 2.Sunum

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

JAVASCRIPT JAVASCRIPT DİLİ

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

2. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

İNTERNET PROGRAMLAMA II. Tanımlar

Programlama Yazılımı ile Web Sitesi Oluşturma

İnternet Programcılığı Öğr. Gör. Serkan AKSU Statik ve Dinamik Web Siteleri. Dinamik Web Sitesi Nedir?

Üst Düzey Programlama

PHP ile İnternet Programlama

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

Web Programlama Kursu

Üst Düzey Programlama

9. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

PHP ile İnternet Programlama

İNTERNET PROGRAMCILIĞI - II

BMT 202 Web Tasarımı Bahar Dönemi. Yük. Müh. Köksal GÜNDOĞDU 1

Internet Programming I. Hafta II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

WEB PROGRAMLAMA DİLLERİNİN PERFORMANS ANALİZİ PERFORMANCE ANALYSIS OF WEB PROGRAM LANGUAGE

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

SESSİON KULLANIMI. .Aşağıdaki Kodları da SessionDevam.asp adıyla kaydedelim. Language=VBScript Codepage="1254"%>

08220 Internet Programcılığı II

PHP (II) Formlar. Dosya İşlemleri. 2002, Sanem SARIEL PHP Ders Notları 2 1. Formlar

08217 Internet Programcılığı I

İnternet Programcılığı

WEB TASARIMIN TEMELLERİ

Basit bir web uygulaması

Internet Programming I. Hafta I. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Bölüm 10: PHP ile Veritabanı Uygulamaları

ASP.NET TEMELLERİ. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

WEB FORMLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

WAMP SERVER KURULUMU

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

PHP kodları çoğu zaman HTML kodları arasına gömülü olarak yazıldığından öncesinde HTML kodlarınının bilinmesinde fayda vardır.

4. Bağlantı (Köprü) Oluşturma

08217 Internet Programcılığı I Internet Programming I

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

2-Hafta Temel İşlemler

WEB PROGRAMLAMA I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

INTERNET ÜZERİNDE BAZI VERİ TABANI YÖNETİM DİLLERİNİN KARŞILAŞTIRILMASI

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

Arayüz Geliştirme Dokümantasyonu

JSON Korsanlığı. Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı

PHP Programlama 1. Bölüm. Tolga GÜYER

WEB PROGRAMLAMA. PHP Temelleri 2. Dr. Erman Yukselturk

4 Front Page Sayfası Özellikleri

SAB 103 TEMEL BİLGİSAYAR KULLANIMI

MOBILEPAX XML PRODUCT API KULLANIM ŞEKLİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

İNTERNET PROGRAMCILIĞI HAFTA. PHP ile FORM İŞLEMLERİ. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Form Elemanları Kullanımı

WEB TASARIMININ TEMELLERİ

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 4 MasterPage

Üst Düzey Programlama

<html> <head> <title>sayfa Başlığı</title> </head> <body> Bu benim ilk sayfam <b>bu metin koyu</b> </body> </html>

Veritabanı Uygulamaları Tasarımı

Google Search API ile ajax arama

08217 Internet Programcılığı II

İNTERNET TABANLI TEST HAZIRLAMA VE DEĞERLENDİRME PROGRAMLAMA ARAYÜZÜ

MOBİL İLETİŞİM CİHAZLARI İLE EV OTOMASYON SİSTEMLERİ (EOS)

Elbistan MYO Güz Dönemi Öğr.Gör. Murat KEÇECİOĞLU

Temel Bilgi Teknlolojileri 1. Ders notları 5. Öğr.Gör. Hüseyin Bilal MACİT 2017

Web Tasarımının Temelleri

İNTERNET PROGRAMCILIĞI I

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma.

PHP nin Tarihi. PHP ile başka neler yapılabilir?

@6 SERİSİ ÜRÜN KURULUMU

İSMET AKTAR ANADOLU TEKNİK LİSESİ BİLİŞİM TEKNOLOJİLERİ ALANI WEB PROGRAMCILIĞI DALI

7. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

WEB TASARIMININ TEMELLERİ

Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine)

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

Tanıtım Sunumu Internet Programcılığı II. ASP and ASP variables. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 02 Eki.

Web Tasarımının Temelleri

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Web Tasarımı - Yrd. Doç. Devkan Kaleci 1

Aktif Dizin Logon/Logoff Script Ayarları Versiyon

Transkript:

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI Dinamik (server-based) Web Teknolojileri ve Programlama 1. Giriş İlk bulunduğunda daha çok araştırma-geliştirme amaçlı çalışmalar yapılan İnternet, 1995 yılından itibaren yaygınlaşmaya başlamış ve toplumlarda önemli ölçüde kabul görmüştür. İnternetin önem ve yararının geniş ölçüde kabul edilmesi ile birlikte, statik Web-HTML sayfalarının kullanıcıları tatmin etmediği ve ortaya çıkan yeni ihtiyaçları karşılayamadığı görülmüştür. Özellikle bu sayfalardaki bilgilerin anlık değişimleri yansıtacak biçimde güncellenememesi ve kullanıcı ile yeterince etkileşimli olmaması gibi sorunlara karşılaşılmıştır. Oysa çoğu İnternet kullanıcısının aklında kullanıcının eylemlerinden etkilenen bir yapı oluşturma ve değişen bilgilerin anında Web-sayfasına yansıması fikri vardır. Bu fikirden hareketle kullanıcı etkileşimli ve anında güncellenen web sayfaları oluşturmak için çeşitli teknolojiler geliştirildi. Bu teknolojilerin bazıları ASP, CGI, PHP ve JSP dir. Bu deneyde dinamik ve aktif web sayfalarının çalışma mantıklarını inceleyerek PHP ve JavaScript ile ilgili örnek uygulamalar geliştirilecektir. 2. Statik ve Dinamik Web Sayfaları Web sayfaları kabaca dinamik sayfalar ve durgun(statik) sayfalar olmak üzere ikiye ayrılabilir. 2.1. Statik (Durgun) Sayfalar Statik sayfa yapısı genelde bilgi vermeye yönelik sayfalarda kullanılır. Sayfa ziyaretçisi ile herhangi bir enteraktif iletişim yoktur. Bu sayfalar gazeteye ya da dergilere benzetilebilir. Bu tür sayfalarda sadece sayfaya işlenmiş olan veriler (yazı, resim) görülür. Sayfaya herhangi bir veri gönderilmez. Bir habere yorum yapılamaz veya ankete oy verilemez. Sadece alıcı olarak sayfada var olanlar algılanır. Bu gibi sayfaların yapısında %90 HTML kodu ve %10 ise istemci taraflı kodlar (Javascript, CSS) bulunmaktadır. Statik (durgun) sayfalar dinamik sayfalara göre yapım maliyeti daha düşüktür. Güncellemek veya yapı değişiklikleri dinamik sayfalara göre daha zordur; yüksek maliyet gerektirir. Sayfa ziyaretçilerine herhangi bir hizmet verilemez. 2.2. Dinamik Sayfalar Bu tür sayfalar genelde. asp,.php,.jsp,.shtml gibi sunucu taraflı dil uzantılarından oluşur. Sayfa ziyaretçisi ile enteraktif iletişim vardır. Sayfa ziyaretçisine çeşitli hizmetler sunulabilir. Site güncellemesi kullanıcı tarafından yapılabilir. (örn: Fiyat listelerinin değiştirilebilmesi, 1

yeni sayfaların eklenmesi, çevrimiçi broşür hazırlama ve tek tuşla binlerce müşteriye gönderimi gibi...). Web sayfalarında şirket amaçlarına uygun hizmetler verilebilir. Şirket ürünleri e-ticaret vasıtası ile satılabilir veya bayi ağı çevrimiçi çalışır hale getirilebilir. Dinamik sayfaları dinamik yapan içerdiği kodun dinamikliğidir. Bu sayfalarda mesaj gönderilebilmekte, oy kullanılabilmekte ve e-posta atılabilmektedir. 3. Scripting (Betik) Diller 3.1. İstemci Taraflı Scriptler Web sayfalarında yaygın olarak kullanılan bu dillerden javascript Netscape firması tarafından HTML nin bazı yönlerinin yetersiz olduğu düşünülerek türetilmiştir. Söz dizimi C ye çok benzer. Javascripte benzer şekilde Microsoft firması tarafından türetilen VB script vardır. Temel olarak Javascript kodları, istemci tarafında çalışırlar ve gerektiği yerde popup hata mesajı, form denetimleri, sayfanın yazıcıya gönderilmesi gibi işlevleri yerine getirirler. İstemci taraflı scriptler yazmak için web tarayıcının desteğine göre JavaScript, VBScript ve PerlScript gibi dillerden herhangi biri kullanılabilir. Aşağıda verilen istemci taraflı iki script örneği de aynı işlemi yapar: her biri ekran üzerinde Hello world kelimelerini içeren bir mesaj kutusu gösterir. <script language="javascript"> function AlertJS() { alert("hello world.") } </script> <script language="vbscript">sub AlertVBS() MsgBox "Hello world." End Sub </script> Scriptlerin istemci tarafından icra edilmeden önce tarayıcıya yüklenmiş olmaları gerekir. Bu nedenle scriptler genellikle <head> ile </head> etiketleri arasına yerleştirilir. Aşağıdaki client_message.asp sayfası istemci taraflı scriptlerin bir ASP sayfasına nasıl yerleştirildiği ve çağrıldığını gösterir. client_message.asp <head> <title>istemci Taraflı Scripting Örneği</title> <script language="javascript"> function AlertJS() { alert("hello world.") } </script> </head> <body onload="alertjs()"> HTML etiketinin onload eylemi sayfa tarayıcıya yüklenirken icra edilecek scriptleri içerir. Dolayısıyla bir web tarayıcı client_message.asp sayfasını gösterirken AlertJS() ve AlertVBS() rutinlerini sırasıyla koşar. İstemci taraflı scriptlerin icrası istemci tarafında koştuğundan ağ trafiği etkilenmez ve sunucu bilgisayarın yükü hafifletilmiş olur. 3.2. Sunucu Taraflı Scriptler Sunucu taraflı scriptlerin çalışma şekilleri Şekil 1 de şematik olarak gösterilmektedir. 2

Şekil 1: Web sunucusundan bir web sayfası isteme adımları 1. İstemci bilgisayar, www aracılığı ile web sunucusundan bir sayfa çağırır. 2. Web sunucusu ilgili sayfanın başlık kısmını istemciye gönderir. 3. Eğer istemcinin istediği sayfa dinamik bir sayfa ise web sunucusu dinamik sayfayı yorumlar ve html sayfası üretir. 4. Dinamik sayfadan üretilen html sayfası Web server tarafından istemciye gönderilir. 5. İstemci kendisine gelen html sayfasını ekranda gösterir. Sunucu taraflı scriptler, sunucu üzerinde icra edilirler ve icra sonuçları, karşılık gelen HTML koduyla yer değiştirilirler. İstemcinin sayfa her isteğinde scriptler yeniden icra edilir. Örneğin, bir sunucu aşağıdaki server_message.asp sayfasına sahip olsun. server_message.asp <head><title>sunucu Taraflı Scripting Örneği</title></head> Hello. It is now <%=Time() %> on the server. Bu ASP sayfasındaki Time() scripti bir VBScript fonksiyonudur ve sayfa istemciye gönderilmeden önce icra edilmesi gerekir. <%= ve %> işaretleri bir fonksiyonun döndürdüğü değeri ya da bir değişkenin değerini HTML koduna eklemek için kullanılır. Sonuç olarak, sunucu aşağıdaki içeriğe sahip server_message.asp sayfasını istemciye gönderir. <head><title>sunucu Taraflı Scripting Örneği</title></head> Hello. It is now 10:42:43 on the server. Sayfadan görüldüğü gibi tarayıcı ekranında sadece Hello. It is now 10:42:43 on the server. kelimelerini içeren bir mesaj görünür. Sayfa her istendiğinde mesajda görünen zaman değeri farklı olacaktır. 3

4. Web 2.0 Tanım ya da etiket olarak 2004 yılındaki bir konferansta temelleri atılan Web 2.0 kavramı tam anlamıyla tanımlanıp açıklanmakta güçlük çekilse de geçtiğimiz yıllar içerisinde web teknolojilerine ve eğilimlerine olan etkisi göz ardı edilemeyecek derecede büyüktür. Kimi tanımlamalara göre bir teknoloji kimi tanımlamalara göre ise yeni bir çağ olarak kabul edilen yeni sürüm webin kullanıcılara sunduğu en büyük getiri içeriğin mikro boyutlara indirgenmesidir. Önceki yıllarda içeriği bulmak için referans sitelere gidilir ihtiyaç duyulan bilgiler yerinden sağlanırdı. Örneğin; haber isteyen cnn.com u, tasarımcılar adobe.com u, windowsla ilgili olanlar microsoft.com u ziyaret ederdi. Az sayıdaki içerik sağlayıcılar çok sayıdaki istemciye cevap verirdi. Ancak zaman geçtikçe istemcilerde kendi içeriklerini yazmaya ve bunları insanlarla paylaşmaya başladılar. Bir ya da iki saat içerisinde öğrenilen html bilgisiyle yapılmaya çalışılan sitelerin yerine kullanıcı için hiçbir tasarım bilgisi gerektirmeyen, kullanıcının tüm isteklerini düşünmüş uygulamaların ortaya çıkması, istemciler tarafından sağlanan içerik döneminin gelişmesine önemli derecede katkıda bulunmuştur. Bu uygulamalar neticesinde insanlar; tasarımla, teknikle uğraşmak zorunda kalmadan sahip olduğu fotoğrafları, anlatmak istedikleri teknik ya da sosyal içerikleri, ziyaret ettikleri siteleri (bookmark) vs. milyonlarla çok rahat bir şekilde paylaşır hale gelmişlerdir. Yayınlamanın yanında bu içeriklere ihtiyacı olanların, bu içerikleri arayanların istediklerini bulma konusunda işlerini kolaylaştıran arama motorları, portallar, geliştirilen api (Application Programming Interface)ler kullanıcı hâkimiyetindeki yeni nesil web zincirine eklenen tamamlayıcı halkalardan sadece biri olmuştur. Tablo 1 eski ve yeni nesil web arasındaki geçişi birkaç örnekle açıklayabilmektedir. Web 1.0 Web 2.0 Statik bannerlar Ofoto gibi fotoğrafları sadece kendi kullanımınız için saklayacağınız ortamlar mp3 indirmek için listeleri gezeceğiniz bir mp3.com Ansiklopedik bilgiyi arayacağınız yer Britannica Online Kişisel web siteleri domain name için akılda kalıcı tanımlamalar seçmek sayfa görüntülenmesi içerik yönetim sistemleri klasor yapıları (taxonomy) Sitedeki içeriğe göre reklam gösteren Google AdSense Fotoğrafları milyonlarla paylaşabileceğiniz Flickr Şarkı adını yazıp arama yaptığınız Kazaa Ansiklopedik bilginin aşamalı şekilde oluştuğu Wikipedia Bloglar akılda kalmak ya da öne çıkmak için arama motorları optimizasyonları geliştirmek tıklamaların değerlendiği dönem herkesin birşeyler söyleyebildiği wiki pedia tag yapıları (tagging,"folksonomy") Tablo 1. Eski ve yeni nesil webin karşılaştırılması 5. Dinamik Web Programlama Dilleri 5.1. ASP Dili ASP, ya da Active Server Pages (Etkin Sunucu Sayfaları), Microsoft tarafından geliştirilen internete yönelik sunucu taraflı (serverside) çalışan bir teknolojidir. Sunucunun sadece 4

durağan sayfaları istemciye (ziyaretçi) göndermesi yerine, ziyaretçiden veri kabul edilmesi gerekliliğinin sonucunda ortaya çıkmıştır. ASP sayfaları çoğunlukla VBScript kullanılarak yazılır, ancak @Language komutuyla JScript, hatta Perl gibi başka bir dil de seçilebilir. Bir ASP dosyasının içinde, özel nesneler ve VBS, JS, SQL kodları bulunur, bu sayfalar istemci tarafından istendiğinde sunucu öncelikle ASP içindeki kodları icra ederek, istemciye göndereceği bilgiyi oluşturur ve gönderir. Gönderilen bilgi genellikle HTML şeklindedir. Fakat sadece bunlarla sınırlı değildir, aynı şekilde bir grafik dosyası da oluşturulup, istemciye gönderilebilinir. ASP sayfaları HTML kodlarının içine gömülü şekilde oluşturulduğu halde bir kez sunucu tarafından yorumlandığında saf HTML olarak döner. Kaynak kodlara bakıldığında ASP kodları görülmez. Bu kodlamacıların kaynaklarını saklamalarını kolaylaştırır. ASP'nin ortaya çıkış nedenlerinden birisi de CGI dillerinin Oturum (Session) ve Uygulamaların (Application) başından sonuna kadar izlenmesinin yetersiz oluşundandır. Bir web sayfasının ASP kodu içerip içermediği dosyaya verilen.asp uzantısıyla belirlenir. Web sunucudan (IIS) istenen bütün.asp uzantılı dosyalar istemciye gönderilmeden önce sunucu ile aynı makine üzerinde bulunan ASP yorumlayıcıya (ASP.dll) gönderilirler. ASP yorumlayıcı.asp uzantılı bir dosya içerisinde bulunan ASP kodlarını HTML kodlarına dönüştürür ve sunucuya geri gönderir. Daha sonra bu yeni dosya sunucu tarafından istemciye gönderilir. İstemciye gönderilen dosyalar daima sadece HMTL kodu içerdiğinden dolayı ASP sayfaları web tarayıcılardan (browser) bağımsızdır. 5.2. PHP Dili PHP (Personal Home Pages)ın kısalması olan ve ASP gibi sunucu taraflı interaktif web siteleri oluşturmak için kullanılan bir script dilidir. 1990 ların ortalarında Rasmus Lerdorf tarafından oluşturulmuş ve giderek geliştirilmiştir. PHP söz dizimi (syntax) Perl ve C ye çok benzemektedir. PHP scriptleri sunucu tarafından çalıştırılmakta ve birçok veritabanı sistemiyle (MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC, vs ) uyumlu olarak çalışabilmektedir. Açık kaynak kodlu bir dildir ve ücretsizdir. PHP kodlarının çalışması için sunucu üzerinde web sunucu (çoğunlukla Apache) programı çalışmalıdır. PHP kodları. php uzantılı dosyalara yazılırlar. Web sunucusu. php uzantısını gördüğü an o dosyanın php dosyası olduğunu anlar. Php kodlarını yorumlar ve geriye html kodu döndürür. Bir PHP dosyası düz metinlerden, php kodlarından ve html etiketlerinden oluşabilir. Ayrıca php dosyaları.php3 ya da.phtml uzantısında da olabilirler. Bir web sayfasının php kodu içerip içermediği o dosyanın uzantısına bakarak anlaşılır. Bir istemci, sunucudan.php uzantılı bir sayfa çağırdığında Web sunucu (Apache) o dosyayı php yorumlayıcısına gönderir. Php yorumlayıcısı php kodlarını yorumlayarak html çıktısı üretilir. Üretilen html dosyası istemciye gönderilir ve istemci tarafından görüntülenir. Burada dikkat edilmesi gereken nokta istemci bilgisayarda görüntülenen kod php kodu değil html kodudur. PHP Söz Dizimi PHP blokları ile başlar ve ile biterler ve html kodları arasına yerleştirilebilirler. Aşağıda basit bir php kodu verilmektedir. 5

// Burası tek satırlık açıklama /* Burası blok şeklinde Yorumlar için kullanılmaktadır. */ echo "Bu kod php tarafından oluşturuldu."; $txt = "Hello World!"; $number = 16; echo $txt; echo $number; PHP Fonksiyonları PHP dilinin gücü içerdiği fonksiyonlardan kaynaklanmaktadır. PHP içerisinde 700 den fazla dahili fonksiyon bulunmaktadır. Bu fonksiyonlara www.php.net adresinden erişebilirsiniz. Bunun dışında bu fonksiyonlara ek olarak kullanıcı tanımlı fonksiyonlar da yazılabilmektedir. function writemyname() { echo "Kai Jim Refsnes"; } echo "Hello world!<br />"; echo "My name is "; writemyname(); echo ".<br />That's right, "; writemyname(); echo " is my name."; PHP Form Handling PHP web programlama dilinde istemciden bilgiler form yardımıyla alınır ve sunucuya iletilir. Verilerin sunucuya iletilme biçimleri 2 türlüdür. Get metodu Post Metodu Form olayını daha net anlamak için aşağıdaki örnekleri inceleyelim. Form.html <form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> Welcome.php Welcome echo $_POST["name"];.<br /> You are echo $_POST["age"]; years old. 6

GET Metodu Bu metodla iletilen veriler adres satırı üzerinden görülür ve herkesin görebileceği şekildedir. Değişkenler $_GET[ isim ] şeklinde kullanılırlar. İletilen değişkenler URL de gözükürler Kullanıcı adı ve parola iletimi gibi durumlarda bu metodun kullanılması sakıncalıdır. Bu metod büyük çaplı değişkenler için elverişli değildir. Örneğin karakter dizilerinin boyutu 100 ü geçemez. Parametreli sayfa çağırmaları için elverişlidir. Örn: : https://ceng.ktu.edu.tr/index.php?option=com_frontpage&itemid=1 POST Metodu Bu metod ile iletilecek olan veriler kullanıcılara gözükmeden iletilirler. Değişkenler $_POST[ isim ] şeklinde kullanılırlar. İletilen değişkenler URL de gösterilmezler. İletilen değişkenler için büyüklük sınırlaması yoktur. $_REQUEST Değişkeni Bu değişken ile hem GET metodu ile iletilen veriler hem de POST metodu ile iletilen veriler alınır. Örn: <form action="welcome.php" method="get"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> GET ile Welcome echo $_GET["name"];.<br /> You are echo $_GET["age"]; years old! POST ile Welcome echo $_POST["name"];.<br /> You are echo $_POST["age"]; years old! REQUEST ile Welcome echo $_REQUEST["name"];.<br /> You are echo $_REQUEST["age"]; years old! Yukarıdaki her üç kod da aynı görevi görmektedir. Tabi form ile veri iletilirken action parametresinin uygun şekilde verilmesi gerekir. PHP Çerezleri Çerezler, sunucu bilgisayarın istemci bilgisayarda kullanıcıyı tanımlamak için kullandığı dosyalardır. Genellikle sunucu bilgisayarın istemciyi daha sonraki girişlerde tanıması için kullanılır. 7

Syntax setcookie(name, value, expire, path, domain); Çerezlerin Ayarlanması setcookie("user", "Alex Porter", time()+3600); Çerezlerin Okunması if (isset($_cookie["user"])) echo "Welcome ". $_COOKIE["user"]. "!<br />"; else echo "Welcome guest!<br />"; PHP Oturumları Bir kullanıcı bir sayfayı açtığında uygulamayı kapatana kadar geçen süre oturum olarak adlandırılır. PHP de Session değişkeni ise bir oturum süresince olan bilgileri tutar. Bir web sayfası web tarayıcısı ile açıldığında açma, değişiklikler yapma ve kapama gibi işlemler yapılır. İşte bu gibi bilgiler session değişkeni yardımıyla daha sonra tutulur. Session değişkeni ile ilgili verilerin kullanılması için önce oturumun açılması gerekir. Not: session_start() fonksiyonunun tagından önce kullanıldığına dikkat edin. session_start(); Örn: session_start(); if(isset($_session['views'])) $_SESSION['views']=$_SESSION['views']+1; else $_SESSION['views']=1; echo "Views=". $_SESSION['views']; Oturumu Kapatma unset($_session['views']); Ya da session_destroy(); 8

6. Web Sayfalarının Çalıştırılması 6.1. Web Sunucu Web, internet üzerinde yer alan grafiksel bir servistir. Hazırlanan içeriklerin ( grafik, yazı, ses, animasyon, görüntü vb ) dünya üzerinde yer alan tüm kullanıcılara iletilmesi ve kullanıcıların bu dosyalara ulaşabilmesi için internete bağlı bir bilgisayar üzerinde çalışan uygulama yazılımını web server olarak tanımlayabiliriz. Web server programları kuruldukları işletim sistemine göre farklılık gösterebilir. Sözgelimi web server olarak unix işletim sistemini kullanan bilgisayarlar Apache ( Apache nin Windows işletim sistemlerinde de çalışan sürümleri vardır. ) kullanırken windows işletim sistemini ( server ) kullanan bilgisayarlar ise web server programı olarak IIS (Internet Information Server ) kullanabilir. 6.2. ASP Sayfalarını Çalıştırma ASP sayfalarının bir harici sunucuya ihtiyaç duyulmadan bir PC üzerinde çalıştırılabilmesi için Microsoft un geliştirdiği ürünlerden olan Personel Web Server (PWS) ya da Internet Information Server (IIS) kurulmalıdır. PWS i kurmak için en az Windows 95 ve IIS i kurmak için ise en az Windows NT işletim sistemi gerekir. 6.3. PHP Sayfalarını Çalıştırma PHP sayfalarının çalıştırılabilmesi için kodun çalıştığı bilgisayarda Apache web sunucu programının kurulu olması gerekir. PHP sayfalarının harici bir sunucuya ihtiyaç duymadan bir PC üzerinde çalışması için o PC üzerinde Apache web sunucusu ve PHP yorumlayıcısının kurulması gerekir. Ayrıca veri tabanı uygulamaları yapabilmek için PHP nin tam uyum gösterdiği MySQL veritabanı sunucusunun da kurulu olması gerekir. Günümüzde tüm bu programları bir arada tutan ve Windows platformunda çalışan programlar vardır. Deneyimizde Wamp Server (Windows Apache MySQL, PHP) programını kullanacağız. Wamp Server programını indirip kurmak için http://www.wampserver.com adresini ziyaret edebilirsiniz. 4. Deney Hazırlığı 1. Deneye gelmeden önce her öğrenci deney föyünü dikkatlice okumalı ve dinamik web programlama kavramını öğrenmelidir. 2. Deneye gelmeden önce HTML dili ile ilgili temel düzeyde bilgi sahibi olunmalıdır. 3. Web sayfaları arasında veri iletim metodları hakkında en az bir uygulama yazılmalıdır. 4. PHP web programlama dilini kullanarak temel düzeyde en az bir web uygulaması yazılmalıdır. 5. Deney Tasarımı ve Uygulaması 1. Deney föyü ile ilgili dinamik web programlama ilgili soruların sorulması ve cevaplanması. 2. www.wampserver.com adresinden web sunucu programını indirilmesi ve kurulması. 9

3. Uygulama 1 deki kodu yazarak sonucu http://ceng.ktu.edu.tr/~zafer/bil-sis/ adresindeki karşılığı ile karşılaştırma ve çalışma mantığının incelenmesi. 4. Uygulama 2 deki kodu yazarak sonucu http://ceng.ktu.edu.tr/~zafer/bil-sis/ adresindeki karşılığı ile karşılaştırma ve çalışma mantığının incelenmesi. 5. Uygulama 3 deki kodu yazarak sonucu http://ceng.ktu.edu.tr/~zafer/bil-sis/ adresindeki karşılığı ile karşılaştırma ve çalışma mantığının incelenmesi. 6. Uygulama 3 te kullanılan renk menüsüne yeni renklerin eklenmesi 7. Uygulama 3 te kullanılan seçim (select) elemanları yerine radio elemanlarının kullanılarak yeniden düzenlenmesi 8. Uygulama 3 te Select elemanı yerine bir text alanı ve bir buton yerleştirerek, bu alana girilen renk bilgisinin buton yardımıyla sunucuya gönderilmesini sağlama ve bu sayede arkaplan renginin ayarlanması. 6. Deney Soruları 1. Web sayfalarının kullanılan teknolojiye göre kaça ayrıldığını söyleyiniz. 2. İstemci taraflı scriptlere örnek veriniz. 3. Sunucu taraflı scriptlere örnek veriniz. 4. Sunucu taraflı scriptlerin çalışma mantığını söyleyiniz. 5. Web 2.0 ile Web 1.0 ı karşılaştırınız. 6. Web sayfalarında verilerin sunucuya iletilme biçimlerinin ne olduğunu söyleyiniz ve bu biçimleri birbirleri ile karşılaştırınız. 7. Web sunucu nedir ve ne işe yarar? 8. PHP sayfalarının çalıştırılması için neler gerekir? 7. Deney Raporu Deney raporu, deney esnasında yazılarak teslim edilecektir. Bu nedenle rapor şablon dosyasını buradan indirerek çıktısını alınız, gerekli alanları (öğrenci no, ad, soyad ) doldurunuz, hazırlık sorularını cevaplayarak el yazısı ile Deneye Hazırlık kısmına yazınız. Raporunuzun diğer alanları deney esnasında doldurulacaktır. Her öğrenci bireysel rapor hazırlayacaktır. Deneyin web sayfası : http://ceng2.ktu.edu.tr/~zafer/aglab/ 8. Kaynaklar [1] www.w3schools.com [2] www.hotscripts.com [3] www.php.net [4] www.phpbuilder.com [5] www.wampserver.com [6] www.csharpnedir.com [7] tr.wikipedia.org [8] www.programlamadili.net 10