Sorun: Video izlediğiniz zaman takılmalar oluyorsa, youtube videolarında sorun oluyorsa, kısaca Google Chrome Flash’ta sıkıntı yaşıyorsanız çözüme bir göz atın.
Sorun: AppServ mCrypt modülü php.ini dosyasından aktif edilse dahi çalışmayabiliyor. Peki bunun çözümü nedir?
Çözüm: AppServ kurulu olduğu klasöre gelip, php5 klasöründen libmcrypt.dll dosyasını kopyalayıp Apache2.2\bin klasörüne yapıştırın. Sonra Apache servisini yeniden başlatın. Sorununuz çözülecektir.
Bir sınıfı türettirmeden önce __autoload($sinif_isim) fonksiyonu tetiklenir. Bu yöntem her defasında sınıfın olduğu sayfayı entegre etmememizi sağlar. Yani otomatik olarak dahil edilir.
class klasöründe cls.ogr.php dosyasında ogr isminde sınıfımız olsun.
//dizin: /class/cls.ogr.php
class ogr
{
public function __construct()
{
echo 'ogr sınıfı türetildi...<br />';
}
}
//dizin: /index.php
$ogr = new ogr();
Bu şekilde ogr sınıfını türettirdiğimiz zaman hata meydana gelir. Çünkü sınıfımız class/cls.ogr.php içinde olduğu için. Onu sayfaya dahil etmemiz gerekir. Bu işlemleri include, include_once, require, require_once komutlarıyla sayfayı dahil ederiz. Ama biz burada __autoload metodunu kullanacağız.
//dizin: /index.php
function __autoload($sinif_isim)
{
echo 'cls.' . $sinif_isim . '.php sayfası dahil ediliyor...<br />';
require_once 'class/cls.' . $sinif_isim . '.php';
}
$ogr = new ogr();
ogr sınıfı türetilmeden önce __autoload metodu çalışır. require_once ‘class/cls.ogr.php’ dosyasını dahil eder. Sonra ogr sınıfı türetilir.
Sınıf türetilirken hata meydana gelebilir. Hatayı yakalamak için try catch bloklarını kullanabiliriz. Bu özellik PHP 5.3.0 dan beri vardır. Önceki sürümlerde çalışmaz.
//dizin: /index.php
function __autoload($sinif_isim)
{
echo "cls.$sinif_isim.php sayfası dahil ediliyor...<br />";
if(file_exists("class/cls.$sinif_isim.php"))
require_once "class/cls.$sinif_isim.php";
else
throw new Exception("cls.$sinif_isim.php isminde bir dosya bulunamadı.");
}
try
{
$ogr = new ogr1();
}
catch (Exception $e)
{
echo $e->getMessage();
}
ogr1 sınıfı olmadığı için catch bloğu çalıştırılacaktır.
Hayırlı günler, sağlıcakla kalın.
Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.
__call()
Tanımlanmayan bir metod çağırıldığı zaman tetiklenir. İki parametre alır. Çağırılan metod ismi ve metoda gönderilen parametre-ler.
class ogr
{
public $ad;
public function __call($f_isim, $parametreler)
{
echo $f_isim . " isimli bir metod tanımlı değildir. " . implode(', ', $parametreler) . " değer-ler atanamaz.";
}
}
$ogr = new ogr();
$ogr->adgetir("paramdeger");
//Ekran çıktısı: adgetir isimli bir metod tanımlı değildir. paramdeger değer-ler atanamaz.
__callStatic()
PHP 5.3.0 sürümünde eklenmiştir. Tanımlı olmayan bir static metodu çağırdığımızda tetiklenir. Parametre olarak çağırılan metod ismi ve parametre-leri alır.
class ogr
{
public $ad;
public function __callStatic($f_isim, $parametreler)
{
echo "static" . $f_isim . " isimli bir metod tanımlı değildir. " . implode(', ', $parametreler) . " değer-ler atanamaz.";
}
}
$ogr = new ogr();
ogr::adgetir("paramdeger");
__get($degiskenisim)
Bir değişkeni çağırdığınızda o değişken sınıfta yoksa __get($degiskenisim) metodu tetiklenir. Parametre olarak değişken ismini verir.
class ogr
{
public $ad;
public function __get($d_isim)
{
echo $d_isim . " isimli değişken tanımlı değildir.";
}
}
$ogr = new ogr();
echo $ogr->ad1;
//Ekran çıktısı: ad1 isimli değişken tanımlı değildir.
ad1 değişkeni ogr sınıfında tanımlı olmadığı için __get metodu tetiklenir.
__set($degiskenisim, $degiskendeger)
Tanımlı olmayan bir değişkene değer atanmaya çalışıldığında tetiklenir. Parametre olarak iki tane parametre alır. Değişken ismi ve değişken değer.
class ogr
{
public $ad;
public function __set($d_isim, $d_deger)
{
echo $d_isim . " isimli değişken tanımlı değildir. " . $d_deger . " değerini atayamazsınız.";
}
}
$ogr = new ogr();
$ogr->ad1="Veli";
//Ekran çıktısı: ad1 isimli değişken tanımlı değildir. Veli değerini atayamazsınız.
ad1 degişkeni tanımlı olmadığı ve değer atamaya çalıştığımız zaman __set metodu tetiklenir.
__invoke()
Bu özellik PHP 5.3.0’dan beri eklenmiştir. Sınıfa bir parametre gönderdiğimiz zaman tetiklenir. Kullanımı şu şekildedir.
class ogr
{
public $ad;
public function __invoke($param)
{
echo implode(", ", $param) . " parametre-ler gönderilmiş bir __invoke() metoduyum.";
}
}
$ogr = new ogr();
$ogr("param-deger");
__tostring()
Sınıf ekrana çıktılandığında çalışır. Yani türettiğimiz bir sınıfa echo, print uygularsak __tostring() metodu tetiklenir. Geriye yazılacak bir nesne göndermelidir.
class ogr
{
public function __tostring()
{
return get_class($this) . " sınıfının __tostring() metoduyum.";
}
}
$ogr = new ogr();
echo $ogr;
//Ekran çıktısı: ogr sınıfının __tostring() metoduyum.
echo $ogr komutuyla __tostring() metodu tetiklendi ve return’le dönen kayıt çıktı olarak yazıldı.
__clone()
Bir değişkende bulunan sınıfı başka bir değişkene klonladığımızda __clone() metodu tetiklenir.
class ogr
{
public function __clone()
{
echo get_class($this) . " sınıfının __clone() metoduyum.";
}
}
$ogr = new ogr();
$tmpogr = clone $ogr;
//Ekran çıktısı: ogr sınıfının __clone() metoduyum.
Hayırlı günler, sağlıcakla kalın.
Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.
PHP’de sınıf (class) tanımlaması şu şekilde yapılır:
class isim
{
}
Oluşturduğumuz sınıfı kullanabilmemiz için onun görüntüsünü (instance) oluşturmamız gerekir. Görüntüsünü oluşturmak için new kodunu kullanırız.
$degisken = new isim();
$değisken adındaki bir değişkene (variable) sınıfımızın görüntüsü atadık.
Sınıfımızda değişken tanımlamak istersek eğer bir erişim sağlayıcısıyla (public, private, protected) beraber yazmamız gerekir. Yoksa PHP’de hata meydana gelir.
class isim
{
public $degisken;
}
Fonksiyon (Function)
PHP’de fonksiyonlar (function) iki türlüdür. Geriye değer döndüren veya döndürmeyen.
Eğer geriye değer döndüreceksek return komutunu kullanırız.
function fonkisim
{
//Kodlar
return "değer";
}
Fonksiyonun alt program olarak kullanımı:
function fonkisim
{
echo "Bu bir Alt programdır.";
}
Bir fonksiyona dışarıdan parametre yollarak kullanılması:
function fonkisim($param)
{
//Kodlar
}
Bir fonksiyondan sınıfımıza ait bir değişkene veya metoda erişmemiz için $this kodunu kullanırız.
class isim
{
public $degisken;
function degiskendegerata($deger)
{
$this->degisken = $deger;
}
}
$isim = new isim();
$isim->degiskendegerata("deger");
Yapıcı (__construct) Metod
Sınıf türetildiği zaman ilk tetiklenecek metoddur. Geriye değer döndüremez.
class isim
{
function __construct()
{
echo "Ben ilk çalışan metodum...";
}
}
Yıkıcı (__destruct) Metod
Sınıf türetildikten sonra, en son tetiklenir. Sınıf kapatılırken yok edildiği anda çalışan metoddur. Sınıfta Exit() metoduyla sonlarılsa dahi bu metod çalışır.
class isim
{
function __destruct()
{
echo get_class($this) . " sınıfı yokediliyor...";
}
}
static Anahtar Sözcüğü
static olarak tanımlanmış, sınıf özelliklerine veya yöntemlerine türettirmeden ulaşabiliriz. Normal olarak türetilmiş bir sınıftan static olan nesneye erişilemez. isim::$staticnesneisim olarak erişilebilir. Sınıfta oluşturulmuş bir static nesneye sınıftan self::$staticnesneisim olarak erişilir.
class isim
{
public static $degisken;
function __construct()
{
self::$degisken= "deger";
}
}
$isim=new isim();
echo isim::$degisken;
Hayırlı günler, sağlıcakla kalın.
Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.
Sorun: Windows 7 64 bit işletim sistemlerinde görülebiliyor. phpMyAdmin’e giriş yapmaya çalıştığınız zaman panel gelmiyor. Boş bir ekranla baş başa kalıyorsunuz. Bunun sebebi localhost dns’iyi tanımaması yüzünden kaynaklanıyor.
Çözüm: phpMyAdmin klasörünü açın. config.inc.php dosyasını bir metin editöründe açın.
$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP address
$cfg['Servers'][$i]['host'] = '127.0.0.1'; // MySQL hostname or IP address
$cfg[‘Servers’][$i][‘host’] = ‘localhost’; satırını bulun ve localhost yazan yeri 127.0.0.1 olarak değiştirin.
Videoları açtığımız zaman videodan ses gelmeyebiliyor. Bunun için arşiv dosyasını indirip içindeki regedit dosyasını çalıştırın. Çıkan pencerede regedit’e eklensin mi sorusuna eveti tıklayın.
Bilmiyorum nerdeyim, ne haldeyim, ben kimim
Ayrılırken kimliğim, adresim sende kalmış.
Tebessümü yüzüme çok görüyor matemim
Güldüğümü gösteren tek resim sende kalmış.
Akların kaybolduğu, rengin ahenk bulduğu
Toprağın kadehine ab-ı hayat dolduğu
Bir gül için, bülbülün saçlarını yolduğu
Aşkın harman olduğu o mevsim, sende kalmış.
Ayıplama, kınama, kahveye gidiyorsam,
Avunabilmek için bir tavla atıyorsam,
Garson çay uzatırken ben aklımda diyorsam,
Sende kalmış demektir, ladesim sende kalmış.
Dostlar da muhabbeti kestiler, lüzum da yok.
Zaten senden ziyade sohbetim, sözüm de yok.
Sen dönmeden kimseye bakacak yüzüm de yok.
Aynalarda kendimi göresim sende kalmış.
Sende kalmış umudum, saadet çağım sende,
Sende kalmış huzurum, tüten ocağım sende,
Sende hayat kaynağım, duygu membağım sende,
Can diyorum sana, can kafesim sende kalmış.
Allah’ ım düşmanımı düşürmesin bu zaafa,
Sanki her noksanımı mecburum itirafa,
Hangi şarkıya girsem, notalar do re mi fa
Sol diyorum sana sol, la sesim sende kalmış.
Gel Tanrıya borcunu teslim etsin bu yürek,
Tez gel ki enkazımı kapatsın kazma kürek,
Kelime-i şahadet getirmem için gerek,
Son diyorum sana, son nefesim sende kalmış.
1960’lı yıllardı. Paris’te doktora öğrencisiydim. O zamanlar Paris’te bir tek cami olduğundan (Mosquée de Paris, Rue Monge) Cumaları Müslümanlar bu camiye gider, Cuma namazlarını kılardı. Bu, aynı zamanda değişik coğrafyalardan Müslümanların bu camide buluşma günüydü de. Biz Türkiye’den gidenler de öğrenci olsun, işçi olsun, bir araya gelir, caminin hemen bitişiğinde bulunan Kuzey Afrika tarzında dizayn edilmiş bir çayevinde hem yeşil çay içer, hem de sohbet ederdik.
İşte böyle bir sohbet günümüzde Sultan II. Abdulhamid üzerine çalıştığımı öğrenen bir işçi vatandaşımız bana Paris’te Osmanlılardan bir zatın bulunduğunu, kendisinin de zaman zaman hizmet etmek için evine gittiğini, istersem beni onunla tanıştırabileceğini söyledi. Ben de bu teklifi memnuniyetle kabul edip randevu talebinde bulundum. Talebimiz kabul edilince ben ve şimdi adını unuttuğum bir vatandaşımız, o Osmanlı’yı görmeye gittik.
Paris’i bilenler için söylüyorum; Eyfel Kulesi’nin karşısında, Sen Nehri’nin diğer yakasında, Türk Büyükelçiliği’ne yakın bir sokakta bulunan mütevazi bir evin beşinci katına çıkıyoruz. Asansör yoktu, merdivenler de ahşaptı. O merdivenlerden çıkınca yıllanmış tahtaların çıkarttığı gıcırtı hâlâ kulağımda…
Beni götüren arkadaş kapının zilini çalarken kalbim heyecandan küt küt atıyordu: Bir Osmanlı görecektim!
Derken kapı açıldı ve uzun boylu, oldukça yaşlı ama yakışıklı bir zatla karşılaştık. Bizler selam verdikten sonra söylediği sözü hiçbir zaman unutmadım: “Buyurun vatandaşlarım!”
Onun “vatandaşlarım” tabiri o kadar tuhafıma gitmişti ki, “Bu zat vatanı pek çok özlemiş olmalı ki, bize ‘vatandaşım’ diyerek, vatan hasretini gideriyor” demiştim kendi kendime.
Saygıyla elini öptükten sonra sohbete daldık.
Benim bir şeyler sormama mahal bırakmadan, sanki neler soracağımı biliyormuş gibi konuşuyor, arada bir”ah”lar çekip hatıralarını anlatıyordu. Adı, Hüseyin Nakib Turhan’dı. Bundan sonra o söyledi, biz dinledik:
“Evlatlarım! Ben, son Halife Abdülmecid Efendi’nin Özel Kalem Müdürü’yüm Bildiğiniz gibi bizi vatanımızdan sürgüne göndermelerinden sonra büyük sıkıntılar çekerek nihayetinde Paris’e geldik. Ben İstanbul Hukuk Mektebi (Hukuk Fakültesi) mezunuyum, yani hukukçuyum. Rahmetli Halifemiz de bendenizi Özel Kalem Müdürü olarak yanına almıştı. Onunla beraber bizleri de sürgün ettiler. Burada da hizmetine devam ediyordum.
Almanların 2. Cihan Harbi’nde Paris’i işgal ettikleri 14 Haziran 1940’ta Halifemiz vefat etti. Vasiyeti gereği bana teslim ettiği zarfı açtım. Şunlar yazılıydı: ‘Dâr-ı bekâya göçtüğümde milletimden bir tek arzum vardır: Beni İstanbul’a defnedin!’
Kâğıtta başka bir şey yoktu. Ben de bu vasiyeti yerine getirmek için zamanın Reisicumhuru İsmet Paşa’ya bir telgraf göndererek durumu bildirdim. Menfi cevap geldi. Halife’nin bu isteğini üç defa İsmet Paşa’dan talep ettim; ancak her seferinde red cevabı geldi. Ne yapacağımı şaşırmıştım. Bütün Müslümanların Halife’si vefat etmiş; onu defnedecek bir yer bulamıyorduk.
Nihayet birkaç Müslümanla birlikte Halife’nin cenazesini Rue Monge’daki camiye götürdük. Savaş hali olduğundan Halife’yi yıkayacak adam da bulamıyorduk. Aaah oğlum aaah! Çaresiz, Halifemizin cenazesini ben yıkadım ve onu caminin iç avlusunun yanında bulunan bahçeye defnettik.
Aradan seneler geçti, Türkiye’de Demokrat Parti iktidara geldi. Bu sefer Halife’nin vasiyetini Celal Bayar ve Adnan Menderes’e bildirdim. Maalesef onlar da menfi cevap verdiler. Yapılacak bir şey kalmamıştı. Halife’nin kemiklerini mezardan çıkartıp bir torbaya koyduk ve defnedilmek üzere Medine’ye gönderdik. Kemikleri Cennetu’l-Baki mezarlığına defnedildi. İşte Müslümanlar kendi Halifelerine böyle bir muameleyi reva gördüler. Allah bu zulüm ve cürmü işleyenleri affeder mi?
Rahmetli Hüseyin Nakip Turhan Efendi’yle başka şeyler de konuştuktan sonra elini öperek yanından ayrıldık.
Aaaah bu karanlık tarihimizde daha neler var neler?