29
PHP’ ye Giriş Ali DELİCE Bircan ÇİÇEKDEŞ Mustafa İlker ALAGÖZ

PHP’ ye Giriş

Embed Size (px)

DESCRIPTION

PHP’ ye Giriş. Ali DELİCE Bircan ÇİÇEKDEŞ Mustafa İlker ALAGÖZ. PHP ilk kez Rasmus Lerdorf tarafından 1994 güzünde kendi özel işlerini görmek amacıyla bir dizi Perl Script (betik) ile yazılmış bir cgi wrapper olarak yaşama başlamıştır. - PowerPoint PPT Presentation

Citation preview

Page 1: PHP’ ye  Giriş

PHP’ ye Giriş

Ali DELİCE

Bircan ÇİÇEKDEŞ

Mustafa İlker ALAGÖZ

Page 2: PHP’ ye  Giriş

• PHP ilk kez Rasmus Lerdorf tarafından 1994 güzünde

kendi özel işlerini görmek amacıyla bir dizi Perl Script

(betik) ile yazılmış bir cgi wrapper olarak yaşama

başlamıştır.

• 1995’in başlangıcında diğer insanlar’ın yoğun ilgisi üzerine PHP özel olmaktan çıkmış ve tartışma listesi ve sıkça sorulan sorular ile bu sefer C ile yazılmış ilk paket (Personal Home Page Tool) çıkmıştır.

Page 3: PHP’ ye  Giriş

• 1995’in sonlarında birkaç özellik daha eklenerek PHP/FI Sürüm 2 olarak devam etmiştir. Bir grup yazılımcının dikkatini çekmiş ve bir API oluşturularak PHP3 ortaya çıkmıştır. Daha sonraları Zend motoru PHP4’ ü yaratmış ve PHP 4.3.4 gibi çeşitli sürümleri geliştirilmektedir.

PHP bütün Unix-türevi sistemler (örneğin Linux) ve Microsoft Windows sistemleri ile uyumludur. Birlikte çalışabileceği Web sunucu programları arasında Apache, IIS, FHTTP, Omni HTTPd, Xitami ve Windows 95/98 için PWS (Personal Web Server) vardır.

PHP Nedir? PHP Web sunucu tarafında işlenip HTML içine gömülen bir betik (script) dilidir.

Page 4: PHP’ ye  Giriş

PHP: HTML kodu içerisine gömülebilir,

Web Sunucu tarafından yorumlanır,

JavaScript, C, Perl dillerinden ilham alınarak yapılmıştır ve Taşınabilir.•PHP, Web tabanlı yazılımları geliştirmek için tasarlanmıştır.•Çalışma mantığı diğer web tabanlı programlama dilleri gibidir (sunucu taraflı).

Page 5: PHP’ ye  Giriş

Burada PHP, HTML kodu içerisinde “<?” ve “?>” etiketleri arasına gömülmüştür. “<?” ayracı ile PHP betiğine atlanacağı, “?>” ayracı ile de PHP betiğinin sonlanacağı belirtilmiştir.

<html> <head> <title>Example</title> </head> <body> <? echo ”Merhaba ben bir PHP betiğiyim"; ?> </body></html>

Page 6: PHP’ ye  Giriş

PHP’nin Çalışma Prensibi

DiskAPACHEWEB

SUNUCU

Yorumlanmış PHP betiğiİstem

İstenilen PHP betiği yükleniyor

mod_php PHP betiği aranıyor

Page 7: PHP’ ye  Giriş

PHP ile Neler Yapılabilir?

• Veritabanı bağlantılı uygulamalar• Dinamik olarak oluşan grafikler, Flash

animasyonları• Ziyaretçiye, tarayıcıya veya tarihe göre özel

durumlar veya içerikler• Anketler, tartışma forumları• Elektronik ticaret uygulamaları• Web tabanlı e-posta uygulamaları• XML verilerini yorumlama ve oluşturma• İçerik yönetimi,site içi veya dışı arama motorlarıAmacı Dışındaki Diğer Kullanım Alanları• PHP-CLI arabirimi ile komut satırı işlemleri• PHP-GTK eklentisi ile GTK (GNU'nun grafik arayuzlu

program yazma yardimcisi ) tabanlı grafik kullanıcı arayüzleri

Page 8: PHP’ ye  Giriş

Neden PHP?

• Web tabanlı programlama için tasarlanmış• Yazım kurallarının basit olması• Kaynak kodu açık ve ücretsiz• Sunucu hafızasını az kullanır• Birçok işletim sistemi üzerinde çalışabilir:

Linux Windows MacOS X Solaris

BSD UnixlerNetware Unix, Win32 QNX• Birçok web sunucusu yazılımına entegre

çalışabilir:Apache Microsoft IISMicrosoft PWS NetscapeiPlanet Xitami

• Birçok eklenti ve hazır kütüphanelerinin olması

Page 9: PHP’ ye  Giriş

•Yaygın veritabana desteği:

Oracle MySQL PostgreSQL Interbase

MS-SQL Sybase IBM DB2 Informix Adabas dBase Empress filePro

dbm ODBC Solid

Bir CGI programının veri toplama, dinamik sayfa içerikleri

yükleme, cookie alma, gönderme gibi yapabileceği

herşeyi yapar,

Network soketleri açabilir, diğer protokoller ile

etkileşimde bulunabilir.

Page 10: PHP’ ye  Giriş

PHP Artıları

•Ücretsiz, Kaynak kodu açık

•Birçok platform ve web sunucusu üzerinde çalışabilmesi

•Web sunucusu üzerinde az hafıza kullanması

•Yazım kuralları, öğrenimi kolay (C ve Perl dillerine benzer)

•Eklentileri ve yardımcı kütüphaneleri ücretsiz

PHP Eksileri

•Performans ve profesyonel destek için ücretlidir,•Windows işletim sistemi üzerinde güvenlik açıkları oluşabilmektedir.

Page 11: PHP’ ye  Giriş

PHP’nin Yetenekleri

• Apache Web Sunucuya özgü işlevler,

• Matematiksel işlevler,

• Tarih ve Zaman işlevleri,

• Sıkıştırmaya özgü işlevleri,

• Veri Kodlamaya özgü işlevleri,

• Kütük yapısı işlevleri,

• Grafik işlevleri,

Page 12: PHP’ ye  Giriş

• FTP,HTTP, URL, Mail işlevleri,

• IMAP,

• NIS,

• LDAP,

• SNMP,

• Semaforlara ve ayrılmış belleğe özgü işlevler,

• PDF işlevleri,

• Oturum yönetimine (Session Handling) özgü işlevler,

• Katar (String) işlevleri

PHP Performans Çözümleri : Zend Ürünleri

PHP betiklerinin yorumlanma hızını arttırıyor,ücretsiz olanlar var. Veritabanı ve web sunucusu üzerindeki yoğunluğu azaltıyor.

Page 13: PHP’ ye  Giriş

PHP İLE PROGRAMLAMAHTML kodu’nun içerisinde php’ye geçiş ayraçlarından birini kullanarak php moduna sonra da php’yi kapatma ayraçlarından birini kullanılarak tekrar HTML koduna dönülebilir: <HTML>

<BODY><?php echo “merhabalar”; ?>

</BODY></HTML>php’de açıklama satırları kabuk programlamadaki ‘#’, C dilindeki ‘//’ ya da ‘/*’ ve ‘*/’ kapatma etiketleri kullanılarak yapılabilir: <?php

echo “bu bir!\n”; /* 1. echo */

echo “bu iki!\n”; // 2. echo

echo “bu da üç!\n“ ; #3. echo

?>

Page 14: PHP’ ye  Giriş

PHP Dili• Veri Türleri

• Tamsayı (Integer)

• Alfanümerik (String)

• Mantıksal (Boolean)True/False

• Nesne (Object)

• Dizi (Array)

Page 15: PHP’ ye  Giriş

PHP Dili

Değişkenler değişken isminin önüne “$” işareti konularak tanımlanır.

$a= “isim”; Bir değişkenin önüne mantıksal koşulu sağlandıktan sonra bir “$” işareti daha konularak “değişken değişkenler” yapılır.

$a= “isim”;$isim = Ali;echo $$a;

Değişkenler ve Sabitler

Sabitlerin tanımı “define()” işlevi kullanılarak yapılabilir.

<?php define(“isim”,”Ali”); echo isim; ?>

Page 16: PHP’ ye  Giriş

PHP Dili

-Aritmetik Operatörler

-Atama Operatörleri

- Birleştirme Operatörleri

-Karşılaştırma Operatörleri

- Mantıksal Sınama

Operatörler (İşlemciler)

Page 17: PHP’ ye  Giriş

PHP Dili

PHP’nin Tarih ve zaman belirlemekte faydalanabileceğimiz başlıca fonksiyonu getdate() fonksiyonudur.

$saat_tarih = getdate()

Tarih ve Saat Verisi

Page 18: PHP’ ye  Giriş

- PHP programlarında veritabanından yararlanabilmek için programın önce Web sunucusu aracılığıyla veritabanı dosyası ile bağlantı kurması gerekir. -İki program arasındaki bu ilişkiyi PHP'nin mysql_connect() fonksiyonu yapar. -Bu fonksiyonun alabileceği üç parametre vardır:

mysql_connect ("localhost" , "root" , "parola" );

•"localhost" yerine MySQL programının parçası olarak çalıştığı sunucunun adı yazılır.• "root" bu MySQL sunucusunda açılacak oturumun kimin adına açılacağını belirter.•"parola" kelimesinin yerine de MySQL'i kurarken belirlediğimiz bir kullanıcı parolası varsa, onu yazarız.

PHP ve MySQL ilişkisi

Page 19: PHP’ ye  Giriş

PHP ve MySQL ilişkisi

•Bağlantı başarıyla kurulduktan sonra PHP programı, bu yoldan, veritabanı sunucusuna, hangi veritabanı dosyasından yararlanmak istediğini bildirmelidir.

•Buna veritabanı dosyası seçme işlemi denir ve mysql_select_db() fonksiyonu ile yapılır:

mysql_select_db( "veritabanın_adı" , $veri_yolu )

Page 20: PHP’ ye  Giriş

PHP ve MySQL ilişkisi <HTML><TITLE>PHP ile Veri Örnegi</TITLE><meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"><meta http-equiv="Content-type" content="text/html; charset=windows-1254"></HEAD><BODY><?php$veri_yolu = mysql_connect(“herhangi_biri", "root");if ( ! $veri_yolu ) die ("MySQL ile veri bağlantısı kurulamıyor!");mysql_select_db("veri" , $veri_yolu)

or die ("Veritabanına ulaşılamıyor!" . mysql_error() );$sonuc = mysql_query("SELECT * FROM calisanlar",$veri_yolu);

printf("Adı: %s<br>\n", mysql_result($sonuc,0,"adi"));printf("Soyadı: %s<br>\n", mysql_result($sonuc,0,"soyadi"));printf("Adresi: %s<br>\n", mysql_result($sonuc,0,"adres"));printf("Görevi: %s<br>\n", mysql_result($sonuc,0,"pozisyon"));

?></BODY></HTML>

Page 21: PHP’ ye  Giriş

PHP’de Güvenlik Açıkları

• Herhangi bir web sunucu üzerinde soket

açma, kütük açma-yazma gibi işlemler

güvenlik açıkları oluşturur.

• Php bunların hepsini yapabildiğinden dolayı

bu güvenlik açıklarını giderici bir takım

yapılandırma ayarlarının yapılması gerekir. (

Page 22: PHP’ ye  Giriş

PHP’de güvenlik sorunları PHP’nin Apache Web

Sunucu ile nasıl derlendiğine bağlıdır.

PHP Apache Web Sunucuya modül olarak

derlendiğinde doğrudan Apache Web Sunucunun

güvenlik sınırlamalarına bağımlıdır.

PHP Apache Web Sunucuya cgi arabirimi olarak

derlenmiş ise çeşitli güvenlik problemleri vardır.

Page 23: PHP’ ye  Giriş

PHP CGI Binary Güvenlik Açıkları

• PHP işletilebilir cgi olarak web sunucun cgi-bin dizininde

çalışması güvenlik açıkları oluşturur;

– “http://benim.sunucum/cgi-bin/php?/etc/passwd”

PHP bu türlü komut satırı parametre geçirilmesine

izin vermez.

– “http://benim.sunucum/cgi-bin/php/gizli/dosya”

Bu şekilde gizli dosyalara erişimde, web sunucu giriş

hakları üzerine denetim yapamamaktadır.

Page 24: PHP’ ye  Giriş

PHP derleme aşamasında --enable-force-cgi-redirect

seçeneği ile bu açık ortadan kaldırılabilir. Apache Web

Sunucu yapılandırma dosyasına;

Action php3-script /cgi-bin/php,

AddHandler php3-script .php3 eklenmeli.PHP betiklerinin web sunucu alt dizinlerinde kalması bir güvenlik açığı doğurur; web sunucu yapılandırma dosyasında;

DOC_ROOT ,

USER_DIR ya da PHP yapılandırma dosyasında;PHP_DOC_ROOT ile betikleriniz daha güvenli

dizinlere yerleştirilebilir.

Page 25: PHP’ ye  Giriş

PHP’nin cgi olarak en güvenli bir biçimde çalışabilmesi için işletilebilir PHP (PHP binary) yorumlayıcısının web sunucu alt dizininden daha farklı dizinlere yerleştirilmesi gerekmektedir.

/usr/local/bin/php,

/usr/local/sbin/php

Page 26: PHP’ ye  Giriş

PHP ile,Bir kuruş harcamadan, sadece vakit ve biraz emek harcayarak, tepeden tırnağa ;kimi portallara taş çıkartan bir site sahibi olabilirsiniz

Page 27: PHP’ ye  Giriş

ÖRNEK UYGULAMA

.................................

SAYI TAHMİNİ

Page 28: PHP’ ye  Giriş

• http://www.php.net / downloads.php

• http://php.bilkent.edu.tr,

• http://apache.bilkent.edu.tr,

• http://www.apache.org,

[email protected],

• www.linux-team.com / kitaplar/php

www.phpfreaks.com

KAYNAKÇA:

Page 29: PHP’ ye  Giriş

TEŞEKKÜRLER !