MySQLCevir Sınıfı

Date19 / Nisan / 2009 Author İsa Engiz    Category mysql, php     Tags Yorumlar2 Yorum Yapilmis.

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ı!

mysql-resim

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.

Devamını Oku »»

Yazılar Devam Edecek…

Date18 / Nisan / 2009 Author İsa Engiz    Category Genel     Tags YorumlarHenuz Yorum Yapilmamis.

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ı:

Devamını Oku »»

Linux (Pardus) Ortamında Web Geliştirme

Date08 / Şubat / 2009 Author İsa Engiz    Category Genel     Tags , , , , , , Yorumlar3 Yorum Yapilmis.

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.

linux-resim

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.)

Devamını Oku »»

Koodla | Blog yeni teması ile karşınızda!

Date05 / Şubat / 2009 Author İsa Engiz    Category Genel     Tags , Yorumlar1 Yorum Yapilmis.

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!

yeni koodla teması

Peki ya değişenler neler? Tek tek sayalım isterseniz…

Devamını Oku »»

MySQL’de CASE Kullanımı (CASE – WHEN – THEN – END)

Date04 / Şubat / 2009 Author İsa Engiz    Category mysql     Tags , Yorumlar5 Yorum Yapilmis.

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ış]

Date29 / Ocak / 2009 Author İsa Engiz    Category Genel     Tags , Yorumlar3 Yorum Yapilmis.

apache web server, htaccessYaklaşı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]

Date25 / Ocak / 2009 Author İsa Engiz    Category Genel     Tags , Yorumlar2 Yorum Yapilmis.

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]

Date25 / Ocak / 2009 Author İsa Engiz    Category Genel     Tags , Yorumlar3 Yorum Yapilmis.

“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)

Date25 / Ocak / 2009 Author İsa Engiz    Category Genel     Tags , Yorumlar6 Yorum Yapilmis.

İ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

Etiketler

404 ajax apache arama butonu as astrofizik açık kaynak banner blogger blogger/blogspot Blogger / Blogspot blogspot case chmod css date dosya yükleme editör etiket etkinlik favicon featured form ftp galeri Genel gimp hata sayfası header htaccess htpasswd ilişkisel veritabanı index innodb javascript join JQuery kategori koodla linux mysql opacity php resim url

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….

Sayfalar


Faydalı Bağlantılar