Kategori arşivi: Php

Php’de OOP (Nesne Yönelimli Programlama) ve class işlemleri

OOP denilince tüm programlama dillerinde olduğu gibi php’de de akla hiyerarşik yapı geliyor. Yani yazdığımız kodlar dümdüz tek bir sistemden oluşmak yerine, birbiri içinde iletişim kuran çeşitli sistemlerden oluşuyor.

Bunun çeşitli faydaları var. Öncelikle yazdığınız kodlar derli toplu oluyor, ve tabiki güvenlik olarak da gözle görülür bir fark yaratıyor. Yazdığınız fonksiyonları yetkilendirebiliyorsunuz, ister public yani heryerden erişilebilen, ister protected yani class ve türetilmiş diğer classlardan erişilen, isterseniz de private yani sadece o class içerisinden erişilen hale getiriyorsunuz. Ayrıca farklı classlar arasında da bir veri yalıtımı söz konusu, aynı isimde bir fonksiyon ya da değişkeni farklı classlarda tanımlarsanız, birbirini etkilemeden sorunsuz bir şekilde çalışıyor.

Öncelikle class oluşturmaya bir bakalım.

<?php

class turkacademy {

	function baslik(){
		return '<h1> Merhaba </h1>';
	}

	public function icerik(){
		return '<h2> turkacademy.com blog </h1>';
	}

	protected function yanmenu(){
		return 'yan menu içeriği';
	}

	private function baglan(){
                return 'veritabanı bağlantısı vs.';
	}

}

?>

Burada içerisinde bir kaç fonksiyon bulunan turkacademy isimli classımızı oluşturduk. Deneme amaçlı kodları kopyalayacaksanız aynı sayfa içerisine yazmanız gerekiyor, başka sayfada kullanacaksanız class kodlarınızın bulunduğu sayfayı diğer sayfaya include etmeniz gerekiyor. Şimdi bu classtan fonksiyon çağırmnaya bakalım.

<?php

$turkacademy = new turkacademy();
$turkacademy->baslik();

?>

Burada classı $turkadademy değişkenine atadım fakat siz başka isimde bir değişken de kullanabilirsiniz, class ile aynı isimde olması gerekmiyor bu değişkenin. Fonksiyonu çağırmak için örnekteki gibi ilkten bir değişkene new classismi(); şeklinde atıyoruz ondan sonra degiskenismi->fonksiyon ismi şeklinde çağırıyoruz.

Classlarda bir de extends özelliği var. Bu da oluşturulan classları bir nevi dallandırmaya yarıyor. Özelliği ne derseniz; extends kullanımı, ortak fonksiyonları barındıran birden fazla sayıda class oluşturabilmenize olanak sağlıyor. Yani bir class içerisinde bazı fonksiyonlar oluşturdunuz, ikinci oluşturduğunuz class’ın da aynı fonksiyonları içermesini istiyorsunuz. Kopyala yapıştır yaparak aynı fonksiyonları oraya aktarmak hem sizi yorar hem de sitenin yüklenme süresini artırır. Bunu engellemek için extends kullanıyoruz. Kullanımı şöyle:

class turkacademy extends bilgisayar {

	function baslik(){
		return '<h1> Merhaba </h1>';
	}

	public function icerik(){
		return '<h2> turkacademy.com blog </h1>';
	}

	protected function yanmenu(){
		return 'yan menu içeriği';
	}

	private function baglan(){
                return 'veritabanı bağlantısı vs.';
	}

}

Burada turkacademy class’ı daha önce oluşturduğumuz ve kodlarını include ettiğimiz veya aynı sayfada bulundurduğumuz bilgisayar classının kodlarını da kendisine dahil etmiş oldu. Yani artık turkacademy class’ı hem kendi fonksiyonlarını barındırıyor hem de bilgisayar classının fonksiyonlarını barındırıyor.

Bu yazıda oop programlama hakkında temel şeyleri anlatmaya çalıştım, oop programlama bir tekniktir ve daha ayrıntılı olarak ileride anlatabilirim ama oop hakkında bilgisi olmayan arkadaşlar bu anlattıklarımı kendileri de deneyerek çalışırlarsa daha sonraki derslerde veya kendi yapacakları uygulamalarda sorun yaşamazlar.

Php base64 ile veri şifreleme

Php’de base64 adında hazır bir şifreleme fonksiyonu bulunmakta. Bu fonksiyon zaman zaman yararlı olsa da herhangi bir anahtar kullanmadığı, tamamen geri döndürülebilir olduğu için şifrelemenin pek önemli olmadığı yerlerde kullanılır, yine de çok kullanışlı bir fonksiyon.

<?php

///Şifrelenecek veri
$veri = "Şifrelenecek metin.";
echo 'Şifrelenecek veri: ' . $veri . '<br />';

////Burada veriyi şifreliyoruz
$veri = base64_encode($veri);

///Burada şifrelemiş veriyi ekrana yazdırıyoruz
echo 'Şifreli metin: ' . $veri . '<br />';

///Burada şifreyi çözüyoruz
$veri = base64_decode($veri);

///Burada şifresi çözülmüş veriyi ekrana yazdırıyoruz.
echo 'Şifresi çözülmüş metin:' . $veri;

?>

Php mcrypt ile veri şifreleme


Aşağıda verdiğim kodda iki tane fonksiyon var, birincisi encrypt yani şifreleme, ikincisi de decrypt yani şifre çözme fonksiyonları. bu fonksiyonları kullanırken iki tane giriş değişkeniniz olacak. Birincisi str değişkeni yani şirelenecek veya şifresini çözeceğiniz içeriğiniz, ikincisi ise key değişkeni, bu da şifreleme anahtarınız, yani şifrenizin sizden başka biri tarafından çözülmemesini sağlayan anahtar. Key değişkeni yerine uzun bir rakam yazabilirsiniz, iki fonksiyonda da aynı key’i kullanmanız gerekiyor.

<?php
function encrypt($str, $key) {
$block = mcrypt_get_block_size('des', 'ecb');
$pad = $block - (strlen($str) % $block);
$str .= str_repeat(chr($pad), $pad);
return mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
}

function decrypt($str, $key) {
$str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
$block = mcrypt_get_block_size('des', 'ecb');
$pad = ord($str[($len = strlen($str)) - 1]);
return substr($str, 0, strlen($str) - $pad);
}
?>

Php ile veritabanı bağlantısı kurmak

php-session

db_host, db_username, db_password, db_name değişkenlerine veritabanı hostunuzu(genelde localhost olur), kullanıcı adınızı, şifrenizi ve kullanacağınız veritabanının adını yazın, bu kod parçasını veritabanı kullanacağınız sayfanın başına ekleyebilir, veya bundan bir tane oluşturup bütün sayfalara include edebilirsiniz. Php oop bilen arkadaşlar veritabanı class’ı oluşturup içine bağlan adında bir fonksiyon atayabilirler, en doğru yöntem budur fakat bu biraz daha orta seviyede bilgili programcılar içindir.

<?php

$db_host = "localhost";
$db_username = "kullanici";
$db_password = "sifre";
$db_name = "veritabaniadi";

$baglan = mysql_connect("$db_host", "$db_username", "$db_password") or die("baglanamadi.");
mysql_select_db("$db_name") or die("Veritabani secilemiyor!");

//Bu kısmı bağlantıyı test etmek için kullanabilirsiniz.
if ($baglan) {
    echo 'Veritabanı bağlantısı başarılı <br />';
} else {
    echo 'Veritabanı bağlantısında sorun var!';
}

?>

Php session(oturum) kaydı ve çıkışı

Genelde kullanıcı giriş çıkış işlemlerinde kullanılır. Session yani oturum işlemlerini kullanmadan önce sayfanın en üstünde şu fonksiyonun bulunması gerekir.

<?php

session_start();

?>

Bunu oturum kullanılacak sayfanın başına ekledikten sonra php ye o sayfada session yani oturum işlemlerini kullanmak istediğimizi belirtmiş olduk. Session işlemlerini kullanırken oturumumuzun adının ne olacağını ve bu oturuma hangi değeri atayacağımızı seçmemiz gerekiyor. Örnek kullanıcı isimli bir oturum oluşturup buna admin değerini atayabiliriz. Oturum ismi, bize farklı işlemler için session kullanmamızı sağlarken, bu isme atadığımız değer de kullanıcı tabanlı işlemlerde oluşturduğumuz sisteme bilgi vermemizi sağlayacak. Yani şöyle, kullanıcı giriş çıkış işlemleri için login isimli bir session oluşturduk ve buna bir değer atamamız gerekiyor, buna giriş yapan kullanıcının ismini atamak, daha kullanıcı sayfada işlemler yaparken, sistemin o kullanıcının hangi kullanıcı olduğunu tespit etmesine izin veriyor.

<?php

$_SESSION['kullanici'] = "admin";

?>

Session u yani oturumu kapatmak, iptal etmek istediğimizde de unset fonksiyonunu kullanıyoruz. kullanici oturumu için örnek kullanım:

<?php

unset($_SESSION['kullanici']);

?>

Garanti olması açısından unset yaptıktan sonra

<?php

session_destroy();

?>

fonksiyonu da kullanılabilir.