msn-emails Virüsünü Temizleme Yöntemi

Bir önceki yazımda bahsettiğim virüsü (Buna virüs denebilir mi tam olarak da bilmiyorum ama genel yapı itibarı ile virüs diyebiliriz sanırım) temizlemek için gerekli adımlar aşağıda. Bu aşamadan sonra uygulayacağınız adımları kendi sorumluluğunuzda uygulayın. Ben bu adımları denemiş ve bir problemle karşılaşmamış olmama rağmen sorumluluk kabul etmem. Eğer kendinizi bu adımları uygulayacak yeterlilikte görmüyorsanız bir bilene danışmanızda büyük fayda var. Okumaya devam et msn-emails Virüsünü Temizleme Yöntemi

JavaScript için queryString fonksiyonu

Bugün ofisteki bir arkadaşıma lazım oldu. Ben de şöyle bir şey yazdım.

 function queryString() {
	var qs = location.search.substring(1,location.search.length).replace(/(%20|\+)/g," ");
	if(arguments.length == 0 || qs == "") return qs; else qs = "&" + qs + "&";
	return qs.substring(qs.indexOf("=", qs.indexOf("&" + arguments[0] + "=") + 1) + 1, qs.indexOf("&", qs.indexOf("&" + arguments[0] + "=") + 1));
}

Örnek Kullanım:

// http://www.site.com/index.php?str1=Merhaba+Dunya&str2=Test
// Şeklindeki bir adresten str1 ya da str2 bölümünü almak için
var str1 = queryString('str1');
var str2 = queryString('str2');
// Adresteki QueryString'in tamamını almak için
var qStr = queryString();

Google’da JavaScript ve QueryString kelimelerini arattığınızda da bir çok sonuç karşınıza çıkıyor. Problemin çözümü için bir çok farklı yol var. Temel olarak Regular Expressions kullanılarak oluşturulmuş bu fonksiyon ya da Split kullanılarak hazırlanmış bu fonksiyon gibi bir çok örneğe ulaşabilirsiniz.

JavaScript – parseInt() başınızı ağrıtmasın

JavaScript parseInt() fonksiyonunu nasıl bilirdiniz? Parametre olarak aldığı değerden bir tam sayı ortaya çıkartmaya çalışan güzide bir JavaScript fonksiyonu olan parseInt() geçen gün beni hayretler içerisinde bıraktı. Buyrun başıma geleni kendiniz görün. (Firebug kullananlar direkt console’da kodları çalıştırabilirler.)

parseInt('06');
// 6
parseInt('07');
// 7
parseInt('08');
// 0
parseInt('09');
// 0

Okumaya devam et JavaScript – parseInt() başınızı ağrıtmasın

WordPress eklentileri yerelleştirme çalışmaları

6 adet WordPress eklentisini Türkçe’ye çevirdim ve geliştiricisine dil dosyalarını gönderdim. Eklentilerin hepsi aynı geliştiriciye ait. Chan Hong Wei Lester, nam-ı diğer GaMerZ. www.lesterchan.net adresindeki sitesinde kendisi ile ilgili daha detaylı bilgi bulabilirsiniz. Gelelim eklentilere.

  • WP-Polls 2.20 Yazılarınıza ve/veya sayfalarınıza kolayca anketler ekleyebilmenize olanak sağlayan bir eklenti(o-kahn‘ın şurada paylaştığı Türkçe dil dosyalarına 2.20 sürümündeki değişiklikleri tercüme ederek ekledim.)
  • WP-PostRatings 1.11 Yazılarınızı ve/veya sayfalarınıza ziyaretçileriniz puan versin.
  • WP-PostViews 1.11 Bir yazının ve/veya sayfanın kaç kere görüntülendiğini ziyaretçilerinizle paylaşın.
  • WP-Print 2.11 Yazılarınızın/sayfalarınızın yazıcı dostu çıktılarını üretmek için bir eklenti.
  • WP-RelativeDate 1.11 yakın tarihleri içinde bulunduğunuz ana göre formatlayan bir eklenti. Dün, geçen hafta vb ifadeler ile daha samimi bir ortam yaratabilirsiniz
  • WP-Stats 2.11 Çok çeşitli istatistikler için bir eklenti.

Tüm eklentiler bir zip dosyası halinde yaklaşık 42 kb tutuyor. Geliştiricisi eklentileri paketlere ekleyebilir de eklemeyebilir de. Ben garanti olsun diye zip dosyasını ekliyorum. Güle güle kullanın.

wp-plugins.zip

PHP ile uygulama geliştirmek – Bölüm 2’ye Ek

Bu makale < ?PHP echo “Merhaba Türkiye”; ?> gruplarında yazmaya başladığım PHP ile uygulama geliştirmek yazı dizisinin ikinci bölümüdür. Halen gelecek vaat etmeyebileceği konusunda ısrarcıyım. Taslaktır, geliştirilebilir.

Araya baya uzunca bir süre girdi ama bu yazı dizisine devam etmeye kararlıyım. Kaldığımız yerden devam edelim. Bir önceki yazımın sonunda da belirttiğim gibi önceki yazıda constantlardan da bahsetmeyi planlamış fakat unutmuştum. Bir önceki yazıyı güncellemek yerine yeni bir yazı yazarak constantları daha derinlemesine incelemeye karar verdim. Yazının geri kalanında constant kelimesi yerine sabit kelimesini kullanacağım.

Şimdi düşününce önceki yazıda sabitlerden bahsetmemek isabet olmuş. Neden diye soracak olursanız, değişkenlerden, değişken değişkenlerden bahsederken sabitlerden bahsetmek kafa karıştırabilirdi. Neyse lafı fazla uzatmadan konuya girelim.

Değişkenlerle karşılaştırıldığında çok daha az özelliğe sahip olan sabitlerin en önemli özelliği global tanımlayıcılar olmalarıdır. Bir kere tanımladıktan sonra isterseniz fonksiyon içinde isterseniz sınıf içinde rahatça kullanabilirsiniz. Sabitlerde saklayabileceğiniz veri tipleri sınırlıdır(metin(string), tamsayı(integer), mantıksal(boolean) ve ). Global olmaları ve sınırlı veri tipi gibi sebeplerden genellikle uygulamaların ayar bilgilerini saklamak için kullanılır ve bu işte oldukça iyidirler.

Sabitleri tanımlamak değişkenlere nazaran oldukça farklılık gösterir. Sadece define() fonksiyonu ile tanımlanabilirler ve bir kere tanımlandıktan sonra içeriği değiştirilemez ya da yok edilemez (Sihirli sabitler (Magic Constants) haricinde (ki onlar da aslında sabit sayılmazlar)). Değişkenleri tanımlarken değişken isminin başına konan $ işareti sabitlerde kullanılmaz. İsimlendirme konusunda değişkenlerle hemen hemen aynı kurallara tabidir. Büyük/Küçük harf duyarlıdırlar ama bir zorunluluk olmasa da sabit isimleri genelde tamamıyla büyük harflerden oluşur. Geçerli bir sabit ismi bir harf ya da alt çizgi ile başlar ve devamında istenildiği kadar harf, sayı ya da alt çizgi kullanılabilir.

< ?php
// Geçerli sabit tanımlamaları
define("MEYVA", "Elma");
define("SEBZE3", "Patlıcan");
define("_ARABA", "Şahin");

// Geçersiz sabit tanımlamaları
define("3SEBZE", "Patlıcan");
define("SEBZE-3", "Patlıcan");
?>

Ufak bir uyarı; aşağıdaki kullanım doğru ve geçerli olmakla beraber kullanılmaması tavsiye edilir. PHP gelecekte sizin verdiğiniz isimle aynı isimde bir sihirli sabit tanımlarsa uygulamanızda problemler ortaya çıkabilir.

< ?php 
define("__SEBZE__", "Patlıcan");
?> 

PHP’de önceden tanımlanmış bir çok sabit vardır. Bunları Öntanımlı Sabitler(Predefined Constants) başlığı altında PHP Manual‘da bulabilirsiniz. (PHP_OS, PHP_VERSION vb.) Bir çok öntanımlı sabit bulunmasına rağmen her zaman bunların hepsini kullanamayabilirsiniz. Bazı öntanımlı sabitler belli uzantıların (extension) yüklü olmasını gerektirir. (PEAR_INSTALL_DIR vb.) Değişken yaratırken ve kullanırken bunları aklınızdan çıkarmayın.

Gelelim yazıda da bir kaç kez adı geçen sihirli sabitlere. Şu an için 5 adet olan bu sabitlerin isimleri sabit olsa da belirli durumlarda değerleri değişebilir.

İsim Açıklama
__LINE__ O an PHP derleyicisi tarafından İşlenen satır numarası
__FILE__ Çalışmakta olan sayfanın tam adresi
__FUNCTION__ İşletilmekte olan fonksiyonun ismi
__CLASS__ İşletilmekte olan sınıfın ismi
__METHOD__ Sınıfa ait metodun ismi

Evet, bir bölümün (daha doğrusu ara bölümün) daha sonuna geldik. Önceki yazıda bahsettiğim gibi, gelecek yazıda veri tipleri ve operatörler hakkında karalayacağım.

Mutlu kodlamalar!