Tag slype adresinden ip belirleme

Codeigniter Default Controller ‘ ı Klasör içine Route Yapmak

Başlığa bakınca anlaşılması zor olabiliyor ama başlık konusunda aklıma daha iyi bir seçenek gelmedi . O yüzden ilk önce sorunu anlatayım.  Codeigniter‘ı indirdiğinizde default controller yani siteniz açıldığınızda ekrana gelecek controller ayarınız aşağıdaki gibidir.

Ben projem için daha düzenli bir yapı olması için controller dosyalarını frontend ve backend olarak ayırmaya karar vermiştim. Default controller dışında sorun olmamıştı. Ama aşağıdaki gibi kullanım yapınca codeigniter default controller dosyasını bulamıyor.

Bu sorun sadece default controller için oluyor diğer controller dosyalarında sorun yok. Şimdi ise çözüme geçelim . Codeigniter application/core klasörüne MY_Router.php adında bir dosya oluşturuyoruz ve içine aşağıdaki kodları yazıyoruz.


Nodejs Nodemailer ile Mail Gönderme

Bir sistemde olmazsa olmazlardan biride mail göndermektir. PHP‘de nasıl phpmailer varsa nodejs‘de de nodemailer var. Yani işimizi kolaylastıracak paketimizin adı nodemailer. İlk önce kurulumumuzu yapalım.

Şimdi aşağıya örnek bir kod bırakıyorum. Ben google yerine yandex’i tercih ediyorum smtp işleminde nedeni google’ın bende sorun çıkarması. Kodu kendim kenedim mail gayet sağlıklı şekilde karşıya ulaştı. Siz istediğiniz smtp adresine göre değiştirebilirsiniz.

Değiştirilmesi gereken yerler : 5-6 satıra smtp bilgilerinizi , 8 ve 15 inci satıra smtp mail adresiniz , 9.satıra ise şifrenizi yazın. 16.satıra gönderilecek mail adreslerini virgül ile ekleyerek yazabilirsiniz.


Codeigniter XSS Korumasını Aktifleştirme

Codeigniter bildiğiniz gibi bir framework . Yani bizim işimizi kolaylaştıracak bir çok özelliği var. Bunlardan biride güvenlik adına alınan önlemler. Cross site scripting (XSS) dediğimiz güvenlik açığını duymuştursunuz. İnternette biraz araştırma yapan birinin savunmasız bir sitede kullanabileceği bir açıktır. Pure PHP yazarken kendi önlemimizi kendimiz almamız gerekirdi ama codeigniter kullanırken hazırda güvenlik fonksiyonu var. Yani sadece hazır fonksiyonu kullanacağız.

XSS koruması için yapmanız gereken çok basit. Eğer sadece bazı isteklerde bunu kontrol etmek istiyorsanız aşağıdaki gibi kullanım işinizi görecektir.

Yukarıdaki kodda get methoduna yazdığımız ikinci parametreye true dedikten sonra başka işleme gerek kalmıyor. Sonuç nasıl olacak derseniz.

Yukarıdaki istekden gelen veriyi codeigniter aşağıdaki gibi algılayacaktır.

Kullanımı bu kadar kolay. Eğer bu işlem her seferinde otomatik olsun diyorsanız. ci/application/config/config.php dosyasının içindeki 435. satırda bulunan değeri aşağıdaki gibi true yapmalısınız.


Codeigniter MY_Controller Oluşturmak

Codeigniter kullanırken bazen controller’a constructor eklemek gerekebiliyor ama bunu direk constructor yazarak eklerseniz codeigniter hata verecektir.  Bu yüzden codeigniter’ın core klasöründe controller‘ımızı biraz değiştireceğiz. Benim kulanma amacım session kontrol içindi. Bütün controller’lara tek tek eklemek yerine core içine MY_Controller oluşturdum ve bu şekilde hem kod tekrarlamaktan hemde zamandan kazandım. Şimdi kısaca nasıl yapılacağını anlatalım.

İlk önce application/core/ dizinine girin ve MY_Controller.php adında bir php dosyası oluşturun.  Daha sonra oluşturduğumuz dosyayı açalım ve içine aşağıdaki kodu ekleyelim.

Kodu kısaca şöyle açıklayabiliriz. OOP nin miras kalma yani extend özelliğinden faydalanarak CI_Controller classını MY_Controller classına aktardık. Artık MY_Controller içine constructor yazabiliriz. İlk olarak parent’ın yanı CI_Controllerin constructor’ını çağırıyoruz. Artık altına istediğimiz kodları ekletebiliriz. Mesela session kontrol işlemini yapabilirsiniz. Bu sayfayla işimiz bittikten sonra ise kullanımı çok kolay.
Normal bir controller oluşturun ama bu sefer miras alacağınız class MY_Controller olmalıdır.

Artık kontroller için yazdığınız constructor istediğiniz her controllerda çalışacaktır. (Bunu bütün controllerlar için yapmanıza gerek yok sadece gerekli olanlar için kullanın.)

Not  :  Konuda yanlış anlatmışım , direk controller içine contructor yazabilirsiniz , tabi ki parent constructor’ını da çağırmanız gerek. MY_Controller bütün controllerlarda geçerli bir kod yazmak için kullanılıyor.


Click And Win – Nodejs – Socket.io Web Oyunu

Bir süre sessizliğin ardından tekrar merhaba. Bir süre önce blogumun içeriğini yazılım olarak doldurmaya karar vermiştim. Birkaç gün düzenli giden içeriklerimden sonra okul ve benzeri şeyler derken yine yazmayı bıraktım. Ama bu sürede tabiki boş durmadım. Nodejs’ye giriş yaptım ve güzel şekilde ilerledim. Yani artık içeriklere nodejs de dahil olacak. Ilk önce nodejs nedir onu anlatayım. Nodejs javascript için kullanılan backend framework’üdür.  PHP ‘de yaptığımız işlemleri hatta daha fazlasını javascript ile yapabiliyoruz. Nodejs’den önce PHP kodlayan biri olarak , Nodejs’yi çok sevdiğimi belirtmek istiyorum. Henüz başlamadıysanız başlamanızı öneririm. Şimdi yazı içeriğine giriş yapalım.

Nodejs‘de kullanabildiğimiz modüllerden biri de socket.io modülü. Socket.io client ile server arasında tcp bağlantısı oluşturarak anlık veri göndermemizi sağlıyor. Chat sistemleri de bu şekilde çalışıyor. Her işlem saniyesinde karşı tarafa iletiliyor.  Socket.io modülünü öğrendikten sonra pekiştirmek amacı ile küçük bir oyun yapma kararı aldım.  Biraz sınav zamanına denk geldi ama kısa sürede basit bir oyun hazırlayabildim.

Oyunun adı  Click and Win . Oyunun amacı rakibinizden daha hızlı sol click yaparak belirlenen tıklama sayısına ulaşabilmek.  Oyuna girdiğinizde ilk olarak oda oluşturuyorsunuz ve daha sonra arkadaşınız o odaya katılıyor.  Çok zor bir kodlama olmasada socket temelini iyi attım diye düşünüyorum.

Uygulamanın kodlarını, kurulumunu ve bulunan bugları github a koydum.

Oyuna Gitmek Için Tıklayın  |  Github Sayfasına Gitmek Için Tıklayın 

 


Codeigniter BaseUrl Kullanımı

Merhabalar. Bu yazı ile codeigniter’a giriş yapıyoruz. Codeigniter nedir kısaca açıklamamız gerekirse bizim daha düzenli ve daha hızlı kod yazmamıza yardım eden PHP framework‘udur. MVC ile frontend ve backend kodlarını ayırabiliyoruz en güzel tarafı da bu. Bununla birlikte birçok güvenlik sınıfı da içinde yer alıyor. Zamanla codeigniter hakkında daha fazla paylaşım gelecek. Şimdi en temel özelliklerden biri base url fonksiyonunu anlatalım.

Base_url() fonksiyonu bizim tanımladığımız bir url’yi her yerde kullanmamıza yarar. Siz localhost’da bir siteyi kodlarken url kısmını o anki dizinlere göre ayarlarsınız. Ama dosyaları sunucuya attığınızda dizin adresleri değişebilir. Bu yüzden codeigniterdaki base_url fonksiyonu ile sabit bir url adresi tanımlarız.

BaseUrl Çağırmak

Baseurl codeigniter’da bir helper yani yardımcı fonksiyondur. Kullanacağımız zaman bu helper’ı dahil etmemiz gerek.
İki yöntem var biri her seferinde helper’ı çağırarak kullanmak diğer ise autoload ile sürekli aktif yapmak.
Tek sefer çağırmak :

Autoload ederek her seferinde otomatik yüklemek
config > autoload.php 92. satıra url helper’ımızı ekliyoruz.

Eğer yukarıdaki gibi autoload yaparsak base url kullanmak için sadece normal fonksiyonu çağırmamız yeterlidir. Yani echo base_url() gibi.

Base Url Ayarı Yapmak

Codeigniter dosyalarımız > application > config > config.php  satır 26

Burda base_url’yi ayarlıyoruz. Base url fonksiyonunu yazdırdığınızda gözükecek değer budur. Tırnaklar arasına site adresinizi yazın.

Base_url Kullanımı

Sorularınızı yorum atarak sorabilirsiniz.