MySQLCevir Sınıfı
Mysql’de bulunan verileri farklı formatlara çevirmek veya farklı formatlardaki verileri mysql’e yüklemek istediğinizde artık elinizin altında kullanışlı bir sınıf bulunacak: mysqlcevir sınıfı!

Sınıfın özelliklerini kısaca şöyle sayabiliriz:
1- Mysqlden çektiğiniz veriyi xml’e çevirir.
2- Mysql’den çektiğiniz veriyi json formatına çevirir.
3- xml formatındaki veriyi Mysql’e geri yükler.
4- json formatındaki veriyi mysql’e geri yükler.
Yazılar Devam Edecek…
Uzun bir süredir Koodla Blog’a yazı yazmaya ara vermiş durumdayım. Ama şunu belirtmekte yarar var, yakında yeni yazılar ile devam edeceğim…
Bir yere ayrılmayın
8. Linux ve Özgür Yazılım Şenliği
8. Linux ve özgür yazılım şenliği bu sene İstanbul Bilgi Üniversitesinde düzenleniyor.
2 gün sürecek etkinliğin programı henüz tam kesinleşmemiş, ama belirlenen etkinlikler şu şekilde:
- Basitçe Django (Can Burak Çilingir)
- Özgür Yazılımlar ile VoIP Denetimi (Faruk Özavcı)
- Özgür Robotik (Gürer Özen)
Ve etkinlik sitesinden bir alıntı:
Linux (Pardus) Ortamında Web Geliştirme
Web yazılım geliştirmeye Windows ortamında başladıysanız, Linux’a taşınmak biraz daha meşakkatli olur sizin için. Alıştığınız programları Linux tabanlı bir dağıtımda ilk bakışta bulamayabilirsiniz, Ancak ihtiyaçlarınızı karşılayacak hemen hemen bütün yazılımlar mevcuttur.

Bugün burada KDE tabanlı Pardus için bir yazılımlar önereceğim, ancak aynı yazılımları ve işlevleri başka dağıtımlar üzerinde de bulabilirsiniz. (KDE programlarını GTK tabanlı dağıtımlarb[Ubuntu] üzerinde de kullanabilirsiniz.)
Koodla | Blog yeni teması ile karşınızda!
Blogun temasını ne zamandır değiştirmek istiyordum, dün bu işin altından da başarıyla kalkma fırsatı yakaladım!

Peki ya değişenler neler? Tek tek sayalım isterseniz…
MySQL’de CASE Kullanımı (CASE – WHEN – THEN – END)
Uzun zamandır MySQL hakkında yazı yazmaya fırsatım olmadı, ama şimdi güzel bir yazı ile kaldığımız yerden devam edelim.
Genellikle bir programlama dili öğretilirken “Merhaba Dünya” yazdırmak ile başlanılır. Bunun aslında programlama ile pek alakası yoktur, dile giriş açısından bir önem taşımaktadır sadece. Algoritma oluşturmanın ilk tadını aldığımız yer if-else cümlelerini oluşturmaya başladığımız yerdir. Bir program yazmanın ilk tadı bu noktada anlaşılmaya başlar.

MySQL’de de buna benzer şekilde if-else cümleleri oluşturabilir, sorgumuzu, dönen sonuçlara göre daha farklı şekillendirebiliriz.
CASE kullanımı
MySQL’de CASE kullanım kuralı oldukça basittir. Şu şekilde gösterebiliriz:
SELECT alan1, alan2, CASE alan3 WHEN 'deger1' THEN 'deger1a' END FROM tablo
Bu basit kodun yaptığı iş oldukça okunabilir olması rağmen, CASE bloğunun ifade ettiğini PHP “if” ile şu şekilde gösterebiliriz:
if(alan3 == 'deger1') { echo 'deger1a'; }
Süslü parantezler yerine WHEN ve THEN kullanıyoruz.
Yukarıdaki örneği biraz daha geliştirebiliriz:
SELECT alan1, alan2, CASE alan3 WHEN 'deger1' THEN 'deger1a' WHEN 'deger2' THEN 'deger2a' WHEN 'deger3' THEN 'deger3a' ELSE 'ön tanımlı değer' END FROM tablo
Burada fazladan iki tane WHEN – THEN bloğu ve bir ELSE bloğu ekledik. Buradaki WHEN -ELSE kullanımı da PHP nin if-elseif-else bloğuna benzemektedir.
Bu örneklerden bir şey anlamak oldukça zor, zaten ben de sadece kullanım şeklini göstermek istedim
Bir sonraki başlık altında gerçek dünyaya dalıyoruz!
CASE kullanımı – Örnekler
Bir tablo üzerinde CASE kullanımına örnek verirsek daha iyi anlayabiliriz. kitaplar isimli tablomuz aşağıdaki gibi olsun:
| id | isim | yazar | yayınevi | stok | popularite |
| 1 | komplo teorileri | erol mütercimler | alfa | 120 | 7 |
| 2 | değişen dünya değişen dil | macit gökberk | yky | 45 | 3 |
| 3 | leyleklerin uçuşu | grange | doğan kitap | 10 | 8 |
| 4 | einstein evreninde zaman yolculuğu | richard gott | arkadaş | 45 | 5 |
| 5 | metal fırtına 3 | burak turna | profil | 300 | 7 |
| 6 | raslantı ve kaos | david ruelle | tübitak | 250 | 5 |
Tablonun son alanı kitapların popülaritesini göstermekte. (Tabii ki bana göre!) Bu kitap tablosunu sorgulayıp kullanıcıya kitapların popülaritesini gösteren bir program yazmış olalım. Sorgumuz bu şekilde olacaktır:
SELECT isim, popularite FROM kitaplar
Bu sorgu kitap ismi ve popülaritesini geri döndürecektir. Bu popülarite değerini daha sonra uygulamamızda kullanıyor olduğumuz varsayalım. Kullanıcıya sadece 5, 6, 7 gibi popülarite değerleri göstermek istemezsek PHP ile gelen değeri değiştireceğiz:
if($sorgu['popularite'] == 10) { $pop = 'Çok çok çok seviliyor'; } elseif ($sorgu['popularite'] == 9) { $pop = 'Herkes beğeniyor' } ... ... ...
Bunu MySQL’den dönen veriye uygulasak ne güzel olur değil mi?
İmdadımıza CASE yetişiyor:
SELECT isim, CASE popularite WHEN 10 THEN 'çok çok popüler' WHEN 9 THEN 'herkes beğeniyor' WHEN 8 THEN 'pek çok kişi okudu' WHEN 7 THEN 'Okuyan pek çok kişi beğendi' WHEN 6 THEN 'Belirli bir kitle gerçekten beğendi' WHEN 5 THEN 'Okumaya değer' ELSE 'Gözden kaçmış, okunmayı bekleyen bir kitap' END AS pop FROM kitaplar
Burada çok basit bir if-elseif-else benzeri bir blok kullandık. Biraz farklı gelebilecek bir nokta ise END kelimesinden sonra kullandığımız AS olabilir, bunu da daha önceki MySQL yazılarımızda anlatmıştık, MySQL kategorisindeki yazıları gözden geçirebilirsiniz…
Her bir durumu tek tek tanımlamak zor olabilir, bunun yerine karşılaştırma yapabiliriz, popülaritesi 8den büyükse popüler, 8-5 arasıysa okunmalı, 5den küçükse gözden kaçmış kitap diyebiliriz:
SELECT isim, popularite, CASE WHEN popularite >= 8 THEN 'Oldukça Popüler' WHEN popularite < 8 AND popularite >= 5 THEN 'Okunmalı' ELSE 'gözden kaçmış...' END AS pop FROM kitaplar
Bu sorguda iki önemli nota var: 1: CASE kelimesi alan isminden sora yazılır, karşılaştırma yaparken kullanabilmek için, yani “SELECT isim CASE popularite” değil de “SELECT isim, popularite CASE …” dedik.
2: Karşılaştırma yaparken aralık belirtmek için AND kullandık.
İç içe bloklar
PHP if-else çümlelerinde olduğu gibi iç içe CASE cümleleri kullanabiliriz. Aşağıdaki sorgu buna örnek olabilir:
SELECT isim, stok, popularite, CASE WHEN popularite >= 7 THEN CASE WHEN stok < 100 THEN 'Popüler bir kitap, her an bitebilir' ELSE 'Bir süre daha stoklarda bulunur...' END WHEN popularite < 5 THEN CASE WHEN stok > 100 THEN 'Elimizde kalmış, %90 indirim ile alabilirsiniz!' ELSE 'Uzun bir süre stoklarda bulunacaktır muhtemelen...' END END AS durum FROM kitaplar
Bu sorgudaki CASE bloğunun sonucu ‘durum’ sütunu olarak sonuç tablosuna eklenecektir.
Sonuç
Aslında CASE kullanımını öğrenmenin en iyi yolu deneme yanılmadır. En çok yapılan yanlışlar virgül koyma hatası veya karşılaştırma yapılacak tablonun CASE kelimesinden önce belirtilmemesidir. Bunlar da ancak deneme yanılma ile aşılabilecek hatalardır.
Bir sonraki MySQL yazısında görüşmek üzere…
.htaccess konuları [Kapanış]
Yaklaşık 1 aydır süren “.htaccess konuları” yazı dizimizin sonuna geldik. Bu yazı dizisinde pek çok şeyden detaylıca bahsetme fırsatına sahip olduk. .htaccess dosyalarını nasıl oluşturabileceğimizden, sunucuya nasıl yükleyebileceğimizden başladık, sitemize gelen ziyaretçileri nasıl engelleriz’e kadar geldik
Bu kapanış yazısında da isterseniz yazıları bir daha hatırlayalım:
– .htaccess konuları [Giriş]
– .htaccess konuları [Hataları Yönlendirme]
– .htaccess konuları [IP Engelleme]
– .htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]
– .htaccess konuları [Parola korumalı dizinler ve dosyalar]
– .htaccess konuları [Yönlendirme]
– .htaccess konuları [Dinamik bağlandı (hotlink) engelleme]
– .htaccess konuları [kötü örümcekleri engelleme]
– .htaccess konuları [İşaretçi siteye göre engelleme]
.htaccess dosyaları ile yapılabileceklerin sayısı bunlardan elbetteki çok daha fazla ama en sık kullanılan ve gereken yöntemler bunlar. Daha ileri seviye methodları da zaman bulabilirsek bir süre sonra burada değinebiliriz.
Yazılardan en iyi şekilde yararlanabilmeniz dileğiyle.
İyi okumalar
.htaccess konuları [işaretçi siteye göre engelleme]
htaccess dosyası ile yapılabileceklerden biri de ziyaretçiyi, geldiği yere göre engellemek.
Son bir kaç yazıdır .htaccess dosyası ile hep engellemelerden bahsediyoruz aslında, içeriğe erişilmesini bu kadar çok istemiyorsak neden içeriği internette yayınlıyoruz o halde diye sorabilirsiniz. Bir anlamda yerinde bir sorudur bu, ancak bazen işaretçi siteye göre ziyaretçilerin sitenizi ziyaret etmesini engellemek isteyebilirsiniz.
Örneğin hurriyet.com.tr adresindeki bir bağlantıya tıklayıp gelen ziyaretçi kabul etmeyebilirsiniz, bunu yapmanızın tek sebebi oradan gelen ziyaretçiler sizin trafiğinizi aşırı şekilde tükettiler ve paylaşımlı sunucuda yer alan sizin sitenize uyarı geldi sistem kaynaklarını çok tükettiğiniz için siteniz askıya alınacaktır diye. Bu durumda sitenizin askıya alınmasını engellemenin yolu .htaccess dosyasından geçer!
İçeriği aşağıdaki gibi olan bir .htaccess dosyası işinizi görebilir:
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} hurriyet\.com\.tr [NC]
RewriteRule .* - [F]Ya da sadece engellemek yerine başka bir sayfaya yönlendirmek isteyebilirsiniz:
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} hurriyet\.com\.tr [NC,OR]
RewriteCond %{HTTP_REFERER} google\.com
RewriteRule .* - [F]hurriyet.com.tr adresinden gelen ziyaretçileri google.com adresine yönlendirdik, artık bu ziyaretçiler google.com sunucundan trafik tüketecekler ve böylece bizim sitemiz de askıya alınmaktan kurtulmuş olacak!
Bir sonraki .htaccess yazısında görüşmek üzere!
Bütün .htaccess Yazıları
– .htaccess konuları [Giriş]
– .htaccess konuları [Hataları Yönlendirme]
– .htaccess konuları [IP Engelleme]
– .htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]
– .htaccess konuları [Parola korumalı dizinler ve dosyalar]
– .htaccess konuları [Yönlendirme]
– .htaccess konuları [Dinamik bağlandı (hotlink) engelleme]
– .htaccess konuları [kötü örümcekleri engelleme]
– .htaccess konuları [İşaretçi siteye göre engelleme]
– .htaccess konuları [Kapanış]
Bütün .htaccess Yazıları
– .htaccess konuları [Giriş]
– .htaccess konuları [Hataları Yönlendirme]
– .htaccess konuları [IP Engelleme]
– .htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]
– .htaccess konuları [Parola korumalı dizinler ve dosyalar]
– .htaccess konuları [Yönlendirme]
– .htaccess konuları [Dinamik bağlandı (hotlink) engelleme]
– .htaccess konuları [kötü örümcekleri engelleme]
– .htaccess konuları [İşaretçi siteye göre engelleme]
– .htaccess konuları [Kapanış]
.htaccess konuları [kötü örümcekleri engelleme]
“Kötü örümcekler” diye tanımlayabileceğimiz örümcekler sizin sitenizin bütün içeriğini, resimlerinizi yazılarınızı alırlar. Bu işlemin amacı, kullanıcıya çevrimdışıyken gezinme şansı vermesidir. Ama sizin trafiğiniz önemli ölçüde tüketilmiş olur.
Bir de daha kötü örümcekler vardır, bunlar sizin sitenizde güvenlik açıkları ararlar. Bunları engellemek ise içeriği aşağıdaki gibi olan bir .htaccess dosyası mümkündür:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]Bu listede sık karşılaşılan kötü örümcekler yer almaktadır ve .htaccess dosyasının yapacağı iş ise bu örümceklerin sitenin içeriğini tüketmesine izin vermemektir.
Bir sonraki .htaccess yazısında görüşmek üzere!
Bütün .htaccess Yazıları
– .htaccess konuları [Giriş]
– .htaccess konuları [Hataları Yönlendirme]
– .htaccess konuları [IP Engelleme]
– .htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]
– .htaccess konuları [Parola korumalı dizinler ve dosyalar]
– .htaccess konuları [Yönlendirme]
– .htaccess konuları [Dinamik bağlandı (hotlink) engelleme]
– .htaccess konuları [kötü örümcekleri engelleme]
– .htaccess konuları [İşaretçi siteye göre engelleme]
– .htaccess konuları [Kapanış]
.htaccess konuları (dinamik bağlantı [hot link] engelleme)
İnternette içeriğin çalınmasına çok sık rastlıyoruz. Google’da kısa bir aramadan sonra bu sitenin içeriğini başka sitelerde, özellikle forumlarda bulmak mümkün.
İçerik hırsızlığıyla beraber bir de resim hırsızlığı var ve bu, sanılanın aksine daha sık yapılan bir iş. Bir sitede gördüğünüz resmi geri bağlantı vermeden içeriklerinize ekleyebiliyorsunuz. Ama bundan daha da kötü bir durum var, dinamik bağlantılar!
Dinamik bağlantıların özelliği şudur, başka birisi hem sizin resminizi kullanır, hem de o resmi kendi sunucusunda barındırmaz, sizin sunucunuzdan çeker! Yani hem resminizi alır, hem trafiğinizi tüketir!
Bu, pek istenmeyen bir durumdur, bunu aşmak ise basit bir .htaccess dosyası ile mümkündür.
Teknik
Bu konudaki teknik oldukça basittir, sitenizin ana dizinine, içeriği aşağıdaki gibi olan bir .htaccess dosyası yerleştiririz:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?site.com/.*$ [NC]
RewriteRule \.(gifjpgpng)$ - [F] Bu kodun yaptığı iş kısaca şöyle, resme istekte bulunan sunucu site.com isminde değilse, gif, jpg ve png uzantılı dosyaların çağrılmasını engeller, böylece başkaları sizin trafiğinizi tüketmemiş olacaklar.
Dinamik bağlantı resmini değiştirme
Resmi engellemek yerine resmi değiştirebilirsiniz, bunun için:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?site.com/.*$ [NC]
RewriteRule \.(gifjpg)$ http://www.site.com/dinamik-baglanti-uyari.jpg [R,L] Böylece bir başkası sizin resminize dinamik bağlantı verdiğinde, o resmin yerini dinamik-baglanti-uyari.jpg resmi alacak. Bu işlem sizin trafiğinizi tüketmeye devam eder ancak karşı tarafta uyarı resmi çıkacağı için hem dinamik bağlantıyı kaldırmak zorunda kalacaktır, hem de siz kısa süreliğine de olsa kendi reklamınızı yapabileceksiniz
İleri seviye teknikler
Eğer sitenizde bol resim yayınlıyorsanız ve google’dan gelen ziyaretçi sayısı her geçen gün artıyorsa, resmilerinize dinamik bağlantı verilmesi kaçınılmaz bir durumdur. Bu dinamik bağlantıları engellemek, yukarıda bahsettiğimiz gibi basit bir .htaccess dosyası ile mümkündür. Ama basitçe bu bağlantıları engellemek yerine, mevcut gerçeği lehimize de kullanmayı deneyebiliriz
Bunlardan birincisi, yukarıda da bahsettiğimiz gibi kendi reklamımızı yapmaktır. 1 ay boyunca bizim sunucumuzda bulunan dosyalara dinamik bağlantı verilmesine izin veririz, sonraki bir ay ise resimlerin yerine kendi reklam resmimizi gösteririz
Üstelik bunu 1 aylık periyodlarda yapmak yerine rastgele zamanlarda yaparsak, hem karşı taraf kazanmış olur, hem de biz! tükettiğin trafiğe karşılık reklam yap!
Reklam tekniğini beğenmediiyseniz ve sizin resimlerinizin alınmasına ve trafiğinizin tüketilmesine çok kızdıysanız, başka bir teknik daha kullanabilirsiniz, javascirpt! Madem sizin kendi sunucusu dışından bir dosya çağırıyor, o halde kendi elleriyle bir güvenlik açığı oluşturuyor demektir. dinamik-baglanti-uyari.jpg dosyasının içeriği resim olmayabilir, teoride bu dosyanın içeriğine basit bir javascirpt kodu, alert(‘bu sayfadaki resimler www.site.com adresine aittir!’), yerleştirilebilir. Ya da sonsuz bir döngü! Ama bu tekniği dikkatli kullanmak gerekir, çünkü sonsuz bir döngü kodunun kimi cezalandırdığı tartışmalıdır, (ziyaretçi mi, site sahibi mi?) bu unsura dikkat etmek gerekir.
Şimdilik bu kadar, bir sonraki .htaccess yazısında görüşmek üzere!
Bütün .htaccess Yazıları
– .htaccess konuları [Giriş]
– .htaccess konuları [Hataları Yönlendirme]
– .htaccess konuları [IP Engelleme]
– .htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]
– .htaccess konuları [Parola korumalı dizinler ve dosyalar]
– .htaccess konuları [Yönlendirme]
– .htaccess konuları [Dinamik bağlandı (hotlink) engelleme]
– .htaccess konuları [kötü örümcekleri engelleme]
– .htaccess konuları [İşaretçi siteye göre engelleme]
– .htaccess konuları [Kapanış]
Arama
E-Posta Aboneliği
RSS Aboneliği
En Çok Yorumlanan Yazılar
- Ajax ile dinamik listeleme (22)
- Blogger’da “devamını oku” bağlantısı (21)
- MySQL’de Transaction ve PHP ile kullanımı (16)
- PHP ile sınırsız alt kategori mantığı (16)
- MySQL’de “join” kullanımı (13)
- Kullanıcı dostu url hazırlamak (12)
- PHP’nin (muhtemelen) az bilinen 10 özelliği (12)
- Kullandığınız programlama dili ne kadar popüler? (12)
- .htaccess konuları [Giriş] (11)
- Blogger’da arama kutusu ekleme (10)
Etiketler
Son Yorumlar
- Fatih: Açıkçası sitenizi yeni keşfettim ve gerçekten beğendim. Kaynak ve tutorial ihtiyacı olduğunda yabancı blog...
- beyo: emeğine sağlık, temiz bir anlatım olmuş
- gokhan: güzel bir anlatım yapmışsın.. devamını bekleriz.. kolay gelsin
- web yazılım şirketi: google blog araması ile .net üzerinden hizmet veren web yazılım şirketi ararken tesadüfen bu web...
- Codderol: çok teşekkürler bu çalışma bana çok yardımcı oldu….
19 / Nisan / 2009
