24 Eylül 2013 Salı

PHP session hatası

"Cannot send session cache limiter" hatası localhost üzerinde çalışırken (kısmen uzak sunucu üzerinde) çoğumuzun başına gelmiştir.

Öncelikle, BOM UTF-8 dil seçeneği uygulanmaya başladığında ortaya çıkmış ve sayfa dili kodlamasının UTF-8 olduğunu gösteren bir işarettir.

BOM işareti sayfanın en üstünde yer alan şöyle bir işaretlerden oluşur:  ï»¿.
PHP de session kullanıldığında sayfanın başında BOM işaretlerini algılar ve bu işaretlerden dolayı "Cannot send session cache limiter" hatası verir.

Bu hatanın birçok çeşidi var ve fakat ben çeşitleri üzerine değil nasıl çözeceğimiz üzerine yaptığımı yazacağım.

1) öncelikle kodlama ayarlarını düzenleyen bir metin editörü bulup indirmeniz gerekir, birçok ücretsiz metin editörleri bu ayarı kullanır. Ben Notepad++ kullanıyorum ve tavsiye ederim. İndirmek için URL (programı severseniz yardımda bulunmayı unutmayın)

2) hata veren uygulama sayfanızı Notepad++ üzerinde açın

3) kodlama menüsünden UTF-8 kodlama (BOM'suz) komutu verin ardından sayfanızı kaydedin
hepsi bu kadar.

17 Eylül 2013 Salı

Javascrip : String.substr() metodu


String.substr(start, length)

Javascript kullanımında  substring() metodu.
substr() iki değişken değer alır:
start: başlangıç değeri, eksi (-) değerlerde içerebilir.
length: karakter sayısının uzunluk değişkeni. (bu değer dizinin başlangıç değerinden sonuna kadar olan sayıdan fazla olamaz, olduğunda başlangıç değerinden son karakter sayısına kadar olan karakter dönüşü olacaktır, boş bırakıldığında başlangıç değerinden sonuna kadar olan karakterleri döndürür)
Aşağıdaki örneklere bakarak metodun nasıl çalıştığını görebilirsiniz
var string = "1234567890";  
Length değeri olmaksızın
string.substr(7); // sonuç 890  
İlk karakter ve uzunluk değer içerdiğinde
string.substr(0, 2); // sonuç 12  
İstenen değerin eksi (-) ile elde edilme metodu
string.substr(-2); // sonuç 90
Başlangıç ve uzunluk değer içerdiğinde
string.substr(3, 4); // sonuç 4567
Uzunluk abartılı verildiğinde ( toplam sayıdan fazla olduğunda), örnekte göründüğü gibi sonuç sadece kalan karakter yani 4 karakter uzunluğunda geri döner
string.substr(6, 20); // sonuç 7890
Başlangıç değeri eksi (-) değer içerdiğinde
string.substr(-4, 2); // sonuç 78