Kategoriler
Amo-Seo-PR Kişisel makaleler Web Site Tanıtımları Webmaster yardım

Dmoz karmaşaşı, belirsizlikler ve telif hakları kuralı

dmozBu makale gercekligi yitirmistir. konuyu arastirarak, yanlis dusuncelerimizi duzeltmemizi saglayan kuaza.Ca isimli yazarimiza cok tesekkur ediyoruz. bunun yaninda Dmoz destek sitesin de ilgili konuya cevaplarini yazarak konunun yanlis anlasilma oldugunu ortaya cikaran: ilyasBat ve Anov isimli editor arkadaslara cok tesekkur ediyoruz.

Dmoz ve o konu: http://www.resource-zone.com/forum/showthread.php?t=53189

xxxxxxxx Asagidaki yazi Gercekciligini yitirmistir; Dikkate almayiniz. xxxxxxxx

Arkadalar bir cok kisinin bildigi gibi bu siteyi hayata gecirenler’in bir onceki projesi Ressim.net ‘dir.  daha oncelerden Ressim.net icin dmoz bir anlam ifade etmiyordu, buna seo, reklam falanda eklenebilir.  Ancak son zamanlarda projemizi ve kullanilabilirligi cok iyi olan kuaza.com’i bir cok kullaniciya ulastirmak icin atak yaptik ve bir kac seo cu arkadasla anlasma yaptik, neyse onlar isini yapsin, yetkililerden selcuk kilic yani ben dmoz sistemine sitemizi diger resim yukleme servisleri gibi kayit ettirmek icin basvuru formunu doldurdum, ve her sey tamam sira geldi formu gondermeye ama gozlerime takilan bir kac kural dmoz hizmetinin gonulluluk cercevesinden ciktigini, gonullu (Open Source) arkadaslarimizinda kullanilarak bir cok sitenin, bu tabiki kayit olan sitelerin telif haklarini ucretsiz olarak aldigini gordum :(

bu ne demek isde kayit olan sitelerin ve site kayit ederken kabul ettikleri bu kural :

başvurumun kullanılması, yayınlanması, kopyalanması, düzenlenmesi, değiştirilmesi veya onu temel alan başka çalışmalar üretilmesi için Netscape Communications Şirketi’ne telif ücretsiz izin veriyorum.

Alin size resim: buyuk hali icin uzerine tikla

dikkat ederseniz kalin harflerle vurguladigim alanda site sahipleri, kendi sitelerinin aynini yapabilmeleri icin telif haklarini Netscape Communications Şirketi‘ne ucretsiz olarak vermis sayiliyor,

sanirim okuma yazma bilen bir cok kisi bu maddenin ne anlama geldigini bilir, bu ne demek:

Bu Netscape Communications Şirketi’nin ilerki zamanlarda sizin sitenizin aynini yapabilecegini ve sizin hic bir sekilde bir hak talep edemeyeceginiz anlama gelir.

ilerde diyebilirsinizki ben kaydetmedim sitemi baskasi yapmis, ii de sizin sitenizle alakali bir mail adresi gerekli kayit icin :)

Dmoz Nedir, bilmeyenler icin: Açık Dizin Projesi Web’deki en büyük ve en kapsamlı, insanlar tarafından düzenlenen dizindir. Dünyanın her tarafından katılımda bulunan geniş bir gönüllü editörler topluluğu tarafından inşa edilmiştir ve varlığı onlar tarafından sürdürülmektedir.

Bir cok sitede dmoz u ovucu sozler vardir, bir kac siteden ornek ekliyorum:

internetdevri.com

Yazımızın konusu DMOZ. İnternet tasarımına el atan arkadaşları pek alakadar etmeyen bir kelime ancak googlede bir yerlere gelmek isteyen herkesin başvurması gereken bir sitedir.

extradestek.org

Bilinen, önemli arama motorlarının, sitenizi indexlemesi istiyorsanız, sitenizi internet ortamında daha çok kişiye ulaştırmayı hedefliyorsanız, atlamamanız gereken bir kaynaktır DMOZ
DMOZ’un diğer bir bilinen adı da Open Directory Project (ODP Projesi) dir. DMOZ’u Türkçe tanımlayacak olursak, “Web’deki insanlar tarafından düzenlenen en büyük dizin” açıklaması uygun olur.

Gordugunuz gibi bir cok site ve sahipleri dmoz sistemini son derece onemli goruyor, aslinda oyledir, bende onemli oldugu gusuncesindeyim, ancak yukarida anlattigim kurali okuduktan sonra ben sitemi bu sisteme ekletmeyi uygun gormedim, gerekirse arama motorlarinda da cikmasin, onemli olan bizim nasil bilindigimizdir, ve secici kullanicilarimizdir, 1-2 dakka sitede takilmak icin gelen kullanici icin sitemizin telif haklarinda feragat edecek degilir heralde :)

ornek aldigim yazilarin sahipleri bulunan siteler rastgele secilmistir..

Tamam dmoz.org sitesi cok faydali olabilir ama ben bu siteye sitemi eklemeyi uygun gormedim ve eklemedimde, cekindim, ilerde cikacak bir sorunla karsilasmak istemedim, gerisi sizin dusuncenize kalmis artik, ben paylasmak istedim :)

bu konu tartisilmaya aciktir arkadaslar, yanlislarim olabilir goruslerinizi paylasirsaniz cok memnun kalirim..

NOT : yazida turkce karakterler kullanamadim, cunku klavyem tr karakterler icermiyor malesef, en kisa zamanda tr klavyeye gececegim insallah :)

Kategoriler
Webmaster yardım

.htaccess Kullanımı, detayları ve İpuçları

.htaccess dosyasında birkaç değişiklik yaparak Apache üzerindeki sitenizde gizli klasörler oluşturabileceğinizi, hotlinking’i engelleyebileceğinizi, hatta zararlı bot’lardan korunabileceğinizi biliyor muydunuz?

Bu yazı Apache .htaccess tweaking tutorial

makalesinin Türkçe çevirisi olup bazı eklemeler ve değişiklikler içerebilir.

Not: .htaccess (Hypertext Access), Apache’nin klasör düzeyinde ayarlara izin veren, genel ayar dosyasındaki direktifleri özelleştirebilen dosyadır.

1. Klasörlere Erişim

Bir klasöre tüm erişimi engellemek istiyorsanız (mesela program kaynak kodlarınızı barındıran bir klasörünüz olabilir; bu durumda klasöre internetten değil, yalnızca dosya sisteminden erişmeyi isteyebilirsiniz) klasörün içinde .htaccess dosyası oluşturup içine

#deny all access
deny from all

yazmanız yeterli. Eğer bu klasöre yalnızca belirlediğiniz ip adresiyle veya ip bloğu tarafından erişilmesini istiyorsanız

#deny all access
deny from all
allow from 10.0.0.1 # tek ip adresi
allow from 192.168.0.0/24 # ip bloğu

yazmanız yeterli. Tek bir dosya için erişimi engellemek için ise yazmanız gereken şu:

<Files private.html>
Order allow,deny
Deny from all
</Files>

2. Klasör Listelemek

Bir klasördeki dosyaların listelenmesini istiyorsanız .htaccess dosyasına şunları yazmanız gerekiyor:

Options +Indexes +MultiViews +FollowSymlinks
<ifmodule mod_autoindex.c>
IndexOptions FancyIndexing
</ifmodule>

Bunun için sunucunuzda autoindex modülünün yüklü olması gerekiyor. Klasördeki öntanımlı listelemeyi iptal etmek için ise şu satır yeterli:

IndexIgnore *

3. Sıkıştırma

Sitenizin bant genişliğini (bandwidth) korumak için bir php özelliği olan veri sıkıştırmayı kullanabilirsiniz. .htaccess dosyasına şunu eklemelisiniz:

<ifModule mod_php4.c>
php_value zlib.output_compression 16386
</ifModule>

4. Dosyaları Gizlemek

Belirli dosyalara erişimi engellemek için Files direktifiyle birlikte Regular Expression kullanabilirsiniz. Örnek olarak konfigürasyon dosyalarına, robot.txt’e veya log’lara erişimi engellemek isteyebilirsiniz. Aşağıdaki örnek klasördeki .ht ile başlayan dosyalara erişimi engellemektedir.

<Files ~ “^\.ht”>
Order allow,deny
Deny from all
Satisfy All
</Files>

5. Özel HTTP 404 Hata Sayfası

Ziyaretçileriniz “404: Sayfa Bulunamadı” hatasıyla karşılaşacaklarında sizin istediğiniz bir dosyaya yönlenmelerini sağlamak için şu kodu kullanın:

ErrorDocument 404 /errors/notfound.html

Bu şekilde diğer hata kodlarını da özelleştirebilirsiniz. Dikkat! Internet Explorer 512 bayttan küçük hata sayfalarıyla karşılaştığında, MSN search gibi bağlantıların bulunduğu kendi hata sayfasını kullanıcıya göstermektedir. Belirttiğiniz hata sayfasının 512B’tan büyük olduğuna emin olun.

6. Hotlinking’i Engellemek

Hotlinking basitçe sizin sitenizdeki bir resmi, videoyu başka bir sitenin göstermesine denir. Bu durumda olan sizin bandwidth’inize olur. Örnek olarak sitenizin dışında kullanılan bazı dosyalara erişimi engelleyip nohotlink.gif adında bir resim dosyası gönderen şu koda bakalım:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+\.)?siteniz\.com[NC]
RewriteRule .*\.(zip|mp3|avi|wmv|mpg|mpeg)$ http://www.siteniz.com/img/nohotlink.gif [R,NC,L]
</ifModule>

Kod basitçe siteniz.com dışından çağırılan zip, mp3 ve bazı video dosyaları yerine nohotlink.gif dosyasını gösteriyor. Dikkat! Eğer resim hotlink’lerini engellerseniz site dışından istenen tüm resimleri engelleyeceksiniz. Bu durumda mesela feedburner gibi bir hizmet kullanıyorsanız bu hizmet için kodunuzu değiştirmeniz gerekecektir.

7. Kötü Bot’ları Engellemek

Sitenizi kullanan veya tamamen indirmek isteyen bot’lara karşı .htaccess dosyasını kullanabilirsiniz:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:[email protected] [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]
</ifModule>

8. no-www Desteği

Siz de sitelerde www subdomain’inin kullanılmasına karşıysanız bu kod işinizi görecektir:

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www\.example\.com[nc]
RewriteRule ^(.*)$ http://example.com/$1 [r=301,nc]
</ifModule>

9. Hangi Dili Kullandığınızı Saklamak

Dosyalarınızın uzantılarını değiştirip .htaccess dosyasına bir kural ekleyerek hangi dili kullandığınızı ziyaretçilerinizden saklayabilirsiniz. Aşağıdaki örnek sayesinde .133t uzantılı dosyalar PHP dosyaları gibi işlenecektir.

# Make PHP code look like unknown types
AddType application/x-httpd-php .133t

10. Değişik İpuçları

  • .htaccess dosyasını olabildiğince küçük tutun. Çünkü her dosya isteğinde sunucu tarafından kontrol edilirler.
  • .htaccess dosyasını düzenli tutun. Kurallar arttıkça dosyayı anlaması zorlaşacaktır. # kullanarak her bölüme açıklama yazın.
  • URL’i yeniden tanımladığınız, bir önceki sayfaya yönlenen kurallarda (Nohotlink örneği gibi) [L] özelliğini ekleyin. Bu sunucuya, başka bir kuralı uygulamamasını belirtir.
  • .htaccess kurallarının alt klasörlerde de geçerli olduğunu, alt klasördeki .htaccess kuralının ise üzerindeki kuralları değiştirebileceğini düşünün.

11. .htpasswd ile Şifre Koruması

İstediğiniz dosya veya klasörlere şifre eklemek için şu adımları takip edin:

  • Şifrelemek istediğiniz klasörde .htpasswd dosyası oluşturun.
  • Dosya içeriği kullanıcıadı:şifre tarzındadır. Kullanıcı adı düz metindir. Şifrenin ise şifrelenmiş olması gerekir. Şifrenizi almak için şu adresi kullanabilirsiniz.
  • Dosyayı kendi bilgisayarınızda oluşturup sunucuya upload ettiyseniz ASCII mode kullandığınızdan emin olun.

Şimdi .htaccess dosyanızı düzenleyin. Kural, düzenlediğiniz dosyanın bulunduğu klasörde ve alt klasörlerinde geçerli olacaktır:

AuthUserFile /home/pathto/.htpasswd
AuthType Basic
AuthName “My Secret Folder”

<LIMIT GET POST>
require valid-user
</LIMIT>

Kuralı tek dosya için oluşturmak istiyorsanız kodu direktifi içinde kullanmalısınız.

 

.htaccess dosyanızın erişilebilir olmadığına emin olun. (bkz. 1. başlık)

12. Öntanımlı Sayfayı Değiştirmek

Öntanımlı sayfa bilgisini aşağıdaki şekilde, sıraya dikkat ederek değiştirebilirsiniz:

DirectoryIndex home.html index.htm index.html index.php

Kaynaklar

 

Kategoriler
Bilgisayar Kullanım

Track CD to MP3: CD’lerdeki Ses Dosyalarını MP3′e Çevirin

portable-cd-player-conceptAldığınız CD’lerin içindeki müzikler Track şeklindedir. İşte bu trackları bilgisayarınıza elinizle atmaya kalktığınızda kısayolunu atar ve cd çıkarıldığında hiçbir işe yaramaz.. Zaten cd’nin boyutuna baktığınızda KB ile ifade eder. Bir kaç yöntemle bu işi halledeceğiz..

1. Windows Media Player’da Kopyalama: Windows Media Player’in Kopyala menüsü bu iş için idealdir. Ancak bazı ses cd’lerine kopyalama koruması ekleniyor. O zaman bu yöntem devre dışı kalıyor.

2. Nero 6,7 ile: Nero 6 veya 7 kullanıyorsanız fazladan bir programa ihtiyacınız olmayacak. Ama bir cd yazıcı ve cd okuyucunuzun olması lazım. Gerekli ayarlar yapılarak bir CD’ye MP3 olarak kopyalanabilir.




3. CDex Programı İle: Bu program sayesinde Track parçaları MP3 olarak bilgisayarınıza kaydedebilirsiniz..

Kategoriler
Html yazıları tagları

DIV yerleşimleri hakkinda detayli anlatim, örnekler, resimler

layout-general-overviewYıllardır TABLE kullanımına alıştıktan sonra DIV ile karşımıza çıkan yeni yapıya önce yabancılık çeksek de biraz ciddi bir çabayla tarayıcımız tarafından nasıl yorumlanacağını anlayama başlıyoruz. Şimdi birkaç değişik örnekle, basit yapılardan başlayarak daha karmaşık yapılara doğru DIV’lerimizin farklı yerleştirme şekillerini örneklerle inceleyelim. Burada her ihtimali örnekleyerek anlatmam mümkün olmadığı için aklıma gelenleri paylaşmakla yetineceğim. Farklı yerleşimler yapmak istiyorsanız ve sorunla karşılaşıyorsanız lütfen bana ulaşın. Bu çalışmayı yaparken DIV’lerimizi birbirinden ayırabilmek için artalan renkleri ve numaralandırma kullanacağız.

* YAN YANA YERLEŞİM

DIV’lerimizi sola ya da sağa yaslı halde sıralamamızda çok fazla fark yoktur. Dikkat etmemiz gereken en önemli konu sıralama olacaktır.

1.a – SOLA YASLI

sola_yasli_div 

1.b – SAĞA YASLI

DIV’lerimizin yerleşiminde bazı senaryolarda kodlama sıralaması ile ekrana yansıyan görüntü arasında farklılıklarla karşılaşacağız. Bunun ilk örneğini sağa yaslı kullanımda görebilirsiniz. Ekrandaki yerleşim DIV1, DIV2, DIV3 sıralamasıyla olduğu halde kodlamada tam ters bir sıralama yapacağız. saga_yasli_div 

* ALT ALTA YERLEŞİM

Yan yana yerleşimi son derece rahat bir şekilde uyguladıktan sonra alt alta yerleşime geçebiliriz. Burada üç durum söz konusu olabilir. Uygulamasında sorun çıkabileceği için bu üç durumu da örnek olarak göstereceğiz.

2.a – SOLA YASLI

alt-alta-sola-yasli-div

2.b – ORTALI

alt-alta-ortali-div

 

2.c – SAĞA YASLI

alt-alta-saga-yasli-div

Dikkat ettiyseniz burada sadece MARGIN özelliğinin değerlerini değiştirerek DIV’lerimizi istediğimiz şekilde yerleştirmeyi başardık.

Aynı sonuca CLEAR özelliğini kullanarak şu şekilde ulaşabiliriz

Arkadaslar konunun tam anlatimi buradadir: Kaynak: Ali Çınkı, cinki.com

yukaridaki linke giderek resimlerde gordugunuz yerlesimler icin gerekli olan kodlari alabilirsiniz..

Kategoriler
Amo-Seo-PR Webmaster yardım

AJAX Kodlu Siteleri Arama Motoru Optimizasyonu (SEO) Dostu Yapmak

ajax_seo-197x300Günümüzde doğrudan Web 2.0 teknolojisiyle ağırlıkla bloglarda AJAX dili de yer alamaya başladı. Flash yapılarında olduğu gibi arama motoru optimizasyonu, AJAX’ın tam düşmanı olarak gösterilmekte. Ancak bu soruna çare bulacak bazı anahtar çözümler var.

Bir web 2.0 tasarımcısı/yazılımcısına sorduğunuz da AJAX, çabuk iş yapabilmek ve etkili tasarım interaktif çalışmalar için biçilmiş kaftan. Ancak iş arama motoru optimizasyonu kısmına gelince durumlar biraz değişiyor. Öncelikle AJAX yapısında çalışan site sahipleri arama motoru kısmında hangi tür sorunlarla karşılaşıyor bunlara bir bakalım.

AJAX Nedir?

Asenkron JavaScript ve XML terimi ilk kez 2005 yılında “Jesse James Garrett” tarafından kullanılmıştır.

Ajax web uygulamaları yaratmak amaçlı kullanılan web geliştirme tekniğidir. Düşük kapasitedeki verilerin etkili bir interaktif görünümü sağlamasında kullanılır.

Ana tema web sayfalarının daha etkili, kolay kullanılabilir ve kullanıcı tabanlı olabilmesini sağlamaktır. En önemlisi ise hamleler sırasında sayfanın tekrar yüklenmesi gerekmemektedir. Sadece bu özellik bile sayfanın hızı, özellikleri ve kullanılabilirliliğini doğrudan etkilemektedir.

Ancak tüm olumlu yanları olmasına rağmen arama motoru optimizasyonu kısmında bazı problemlerle karşılaşılmaktadır.

Kategoriler
Visual Basic Programlama

Bilgisayardaki bir txt dosyasını programa okutturma – VB8, VB9

vb60uk2oncelikle forma 1 RichTextBox ekleyin sonrasinda formda bos bir yere 2 kere tiklayarak kod ekranini acin , alttaki kodlari oraya girin: Kod Bu Konunun Devaminda… NOT : olay tamamdir, simdi vb6-vb8 kullananlar icin diyorum burada programin calisabilmesi icin ana dizinde yani programin calistigi dizine merhaba_kuaza.txt olusturmaniz gerek icerisi dolu olsun, sonrasinda calisacaktir, ornek resimdeki gibi :) Kullanmaniz Gereken Kodlar

RichTextBox1.LoadFile(Application.StartupPath & "/merhaba_kuaza.txt", RichTextBoxStreamType.PlainText)

vb8 de ise yariyor, programlama yaparken calistirmak isterseniz, merhaba_kuaza.txt dosyasinin : Projects\text calismam\text calismam\bin\Debug yolunda olmasi gereke, artik proje isminiz ne ise ona gore atarsiniz :) kodu inceleyerek gelistirebilirsiniz, ben internetteki bir text dosyasini icerisine okutmayi denedim beceremedim, bilen duyan varsa cozerse haber versin.. öRnek Resim:

vb8 programa text okutturma

 

Kategoriler
Php ve mysql

Upload edilen resmi Veritabanına kaydettirmek

code1. Adım : Sunucuya dosya göndermek
Sunucuya dosya gönderebilmek için gerekli input tipi file dır. yani,

<input type=”file” name=”dosya”>

yazdığımız anda, bize göz at penceresi sunacaktır. Ancak dosyanın sunucuya ulaşabilmesi için, form tagına – enctype=”multipart/form-data” – eklenmelidir. yani örnek bir form oluşturacak olursak;

<form name=”yuklemeformu” method=”post”  action=”yukleme.php” enctype=”multipart/form-data”>
<input type=”file” name=”dosya”>
<br>
<input type=”submit” name=”Gönder”>
</form>

işte sadece html kullanarak yaptığımız form ve doğru bir action adresi, sunucuya dosya yollamamız için yeterlidir. artık formu dolurduğunuzda, istediğiniz dosya, ekstra bir işleme gerek kalmadan sunucunuzn geçici klasörüne atılacaktır.

Kategoriler
Php ve mysql

php mysql islemleri – ekleme, silme, duzenleme, listeleme !!

php2ek5arkadaslar bunu uzun zamandir yapmak istiyordum php konusunda

kendini gelistirmek isteyen arkadaslar icin guzel bir dokuman olacak eminim.. oncelikle dokuman su ana kadarki son sistemlerde denenmistir ve sorun gorulmemistir, (php 5 …), kullandigim vista sisteminde de denedim, localde yani.. dokuman gelistirilmeye acik, sorun olursa konu altinda yorum yazarak yardim alabilirsiniz.

aragida anlatilan kodlar kullanilarak gelistirilmeye baslanan bir veb sitesi ve temasi demosu:
Demo silinmistir :s
Yukaridaki demo’nun Kaynak dosyalari download:
http://www.kuaza.com/kuaza-tema-arsivi-f193/php-islemlerini-yapabilen-yeni-tema-50-bitti-t2244.html

yukaridaki link kuaza tema arsivi icin hazirlanan bir iceriktir, gelistirilmeye devam edilmektedir..
gorus ve onerilerinizi yazabilirsiniz..

simdi gel gelelim okumanimizin baslangicina oncelikle kendimize bir veritabani olusturuyoruz ve asagidaki bilgileri veri tabanindan olusturdugumuz veritabanina yukluyoruz..


CREATE TABLE `not_defteri` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `baslik` varchar(255) NOT NULL,
  `aciklama` varchar(255) NOT NULL,
  `resim` varchar(255) NOT NULL,
  `ekleyen` varchar(255) NOT NULL,
  `tarih` varchar(255) NOT NULL,
  `k_site` varchar(255) NOT NULL,
  `k_url` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=67 ;


— Tablo döküm verisi `not_defteri`

INSERT INTO `not_defteri` (`id`, `baslik`, `aciklama`, `resim`, `ekleyen`, `tarih`, `k_site`, `k_url`) VALUES
(1, ‘maffay’, ‘maffay hakkinda hersey :)’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 1’, ‘kuaza.com’),
(2, ‘baba nerdesin soyle’, ‘Bu site paylaşılan dosyaları içerisinde barındırmamaktadır,
dosyalar farklı kaynaklardan derlenip paylasılmaktadır ve sorumlulukları
tamamen kaynaklarına aittir.Hak sahibinin talebi durumunda paylasımlar
derhal sitemizden kaldırılacaktır.
Sitede verilen lin’, ‘http://www.kuaza.com/out/i45812_kk.jpg ‘, ‘pala’, ‘2009’,
‘bir kuaza olusumudur :)’, ‘kuaza.com’),
(3, ‘Baslik 3’, ‘Modern Kristallitler’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 3’, ‘kuaza.com’),
(4, ‘Baslik 4’, ‘Masa Lambalari’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 4’, ‘kuaza.com’),
(5, ‘Baslik 5’, ‘Aplikler’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 5’, ‘kuaza.com’),
(48, ‘ne basligi’, ‘dfgdfgdfgdfgdfg’, ‘sdfsdfsd’, ‘fsdf’, ‘sdfsd’, ‘fsdf’, ‘sdfsd’),
(47, ‘kuaza.net php dersleri’, ‘aciklama icin zaman yok be guzelim’,
‘http://www.kuaza.com/out/i45657_image0011hk3rq3fb2iswp2.jpg’, ‘maffay61’,
’11-2-2008′, ‘ucretsiz resim yukleyin’, ‘kuaza.com’),
(66, ‘Sonuçları şşüü’, ‘Sonuçları şşüü’, ‘Sonuçları şşüü’, ‘Sonuçları şşüü’,
‘Sonuçları şşüü’, ‘Sonuçları şşüü’,
‘Sonuçları şşüü’);

 

sonrasinda baglanti bilgilerimizi iceren sayfamizi hazirlayalim…

baglan.php


<?PHP

$conn mysql_connect("localhost""root""");

if (!$conn) {
    echo 
"Unable to connect to DB: " mysql_error();
    exit;
}
  
if (!
mysql_select_db("deneme")) {
    echo 
"Unable to select mydbname: " mysql_error();
    exit;
}
mysql_query ("SET NAMES ‘latin5’ ");
?>

 

bu yukaidaki bilgileri kendinize gore gerekli yerlerini duzenleyin.. veri tabanina baglantimiz basarili olacaktir, sonrasinda ilk sayfamiz listeleme sayfamiz olsun, index sayfasinda veritabanimizdan gelen bilgileri listeleyelim..

k_index.php


<?PHP
require_once(‘baglan.php’);
?>
<table width="800px">
<tr>
<td bgcolor="gray">Sira</td>
<td bgcolor="gray">baslik</td>
<td bgcolor="gray">aciklama</td>
<td bgcolor="gray">resim</td>
<td bgcolor="gray">ekleyen</td>
<td bgcolor="gray">tarih</td>
<td bgcolor="gray">Site</td>
</tr>
<?php

$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    WHERE  id"
;

$result mysql_query($sql);

if (!$result) {
    echo 
"Could not successfully run query ($sql) from DB: " mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo 
"No rows found, nothing to print so am exiting";
    exit;
}

// While a row of data exists, put that row in $row as an associative array
// Note: If you’re expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you’ll
//    then create $userid, $fullname, and $userstatus

while ($row mysql_fetch_assoc($result)) {
    

$id=$row[‘id’];
$baslik=$row[‘baslik’];
$aciklama=$row[‘aciklama’];
$resim=$row[‘resim’];
$ekleyen=$row[‘ekleyen’];
$tarih=$row[‘tarih’];
$k_site=$row[‘k_site’];
$k_url=$row[‘k_url’];

?>

<tr><td><?php echo "$id"?></td>
<td> <?php echo "$baslik"?></td>

<td> <?php echo "$aciklama"?></td>
<td> <a href="<?php echo "$resim"?>" /> Resmi gormek icin tiklayin</a></td>
<td> <?php echo "$ekleyen"?></td>
<td> <?php echo "$tarih"?></td>
<td> <a href="http://<?php echo "$k_url"?>"><?php echo "$k_site"?></a></td>

<?php 

}

mysql_free_result($result);
?>
</tr>
</table>

 

yukaridaki listeleme sayfasina dikkat ederseniz oncelikle baglan.php sayfasini sayfamiza cagirdik sonrasinda gelen bilgileri degiskenlere atadik, ve alt tarafindaki tablolara yansittik..

simdide ekleme silme ve duzenleme sayfamizi yapalim..

k_islem.php


<style type="text/css">
<!–
.style1 {
    color: #FF8040;
    font-weight: bold;
}
–>
</style>
<form action="k_ekle.php" method="POST">
<table width="439" border="0">
  <tr>
    <td width="53" height="32"><span class="style1">Bolumler</span></td>
    <td width="370">&nbsp;<span class="style1">Doldurulmasi Zorunlu Alanlar</span></td>
  </tr>
  <tr>
    <td>Baslik</td>
    <td><input name="baslik" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>aciklama</td>
    <td><textarea name="aciklama" rows="10" cols="45"></textarea></td>
  </tr>
  <tr>
    <td>Resim</td>
    <td><input name="resim" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Ekleyen</td>
    <td><input name="ekleyen" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Tarih</td>
    <td><input name="tarih" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site ismi</td>
    <td><input name="k_site" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site url</td>
    <td><input name="k_url" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Ekle"/></td>
  </tr>
</table>
</form>
<table width="0">
<tr>
<td bgcolor="gray">Sira</td>
<td bgcolor="gray">baslik</td>
<td bgcolor="gray">aciklama</td>
<td bgcolor="gray">resim</td>
<td bgcolor="gray">ekleyen</td>
<td bgcolor="gray">tarih</td>
<td bgcolor="gray">Site</td>
<td colspan="2" bgcolor="gray">islem</td>
</tr>

<?PHP
require_once(‘baglan.php’);

$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    WHERE  id"
;

$result mysql_query($sql);

if (!$result) {
    echo 
"Could not successfully run query ($sql) from DB: " mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo 
"No rows found, nothing to print so am exiting";
    exit;
}

while ($row mysql_fetch_assoc($result)) {
    

$id=$row[‘id’];
$baslik=$row[‘baslik’];
$aciklama=$row[‘aciklama’];
$resim=$row[‘resim’];
$ekleyen=$row[‘ekleyen’];
$tarih=$row[‘tarih’];
$k_site=$row[‘k_site’];
$k_url=$row[‘k_url’];

?>

<tr><td><?php echo "$id"?></td>
<td> <?php echo "$baslik"?></td>

<td> <?php echo "$aciklama"?></td>
<td> <a href="<?php echo "$resim"?>" /> Resmi gormek icin tiklayin</a></td>
<td> <?php echo "$ekleyen"?></td>
<td> <?php echo "$tarih"?></td>
<td> <a href="http://<?php echo "$k_url"?>"><?php echo "$k_site"?></a></td>
<td> <a href="k_duzenle.php?id=<?php echo "$id"?>">Duzenle</a></td>
<td> <a href="k_sil.php?id=<?php echo "$id"?>">Sil</a></td>
<?php 

}

mysql_free_result($result);
?>
</tr>
</table>

 

yukaridaki islem sayfamizda da oncelikle ekleme bolumu yaptik ve hemen altinada veritabanindaki bilgileri listeleyerek duzenleme ve silme alanlari ekledik, bu sekilde listelenen bilgileri duzenleme ve silme linklerini kullanarak islem yapabilecegiz..

———-
Listelemeyi Sondan Baslayarak yapmak icin asagidakileri uygulamaniz yeterlidir:

Bunu

butun

kodlarinizda,

k_index.php

icin ve

k_islem.php

icinde kullanabilirsiniz.

 

listeleme islemini sondan baslayarak yapmak icin bu komutu kullanacagiz:

ORDER by id DESC

yani listeleme sayfamiz olan

k_islem.php

, sizinkini bilmiyorum herneyse, bu sekildeki kodlari:


$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    WHERE  id"
;     

bu sekilde degistirecegiz:

$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    ORDER by id DESC"
;     

yani sorgu sonundaki

WHERE id

degerine bununla degistirdigimizde :

ORDER by id DESC

Siralamayi sondan baslatarak yaptirmis oluyoruz…

——–

ama once eklemek istedigimiz bilgilerin gidecegi ve veritabanina eklenmesini saglayan sayfamizi olusturmaya..

k_ekle.php


<?PHP
require_once(‘baglan.php’);
?>

<?php

# güvenli form ç?kt?lar?
$baslik  strip_tags(htmlspecialchars(mysql_real_escape_string

($_POST["baslik"])));
$aciklama strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["aciklama"])));
$resim  strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["resim"])));
$ekleyen strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["ekleyen"])));
$tarih strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["tarih"])));
$k_site strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["k_site"])));
$k_url strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["k_url"])));

if(($baslik=="") or ($aciklama=="") or ($resim=="") or ($ekleyen=="") or ($tarih=="") or
 (
$k_site=="") or ($k_url=="")){
echo 
"Lutfen bos alan birakmayiniz<br />
<a href=’k_islem.php’>Tekrar Denemek icin geri donebilirsiniz</a>"
;
}else{

# kay?t sorgusu
$query mysql_query("INSERT INTO not_defteri 
(baslik,aciklama,resim,ekleyen,tarih,k_site,k_url) 
VALUES (‘$baslik’,’$aciklama’,’$resim’,’$ekleyen’,’$tarih’,’$k_site’,’$k_url’)"
);

# kontrol ediliyor
if($query) {
echo 
"kayit tamam";
echo 
"<br /><a href=’k_islem.php’>
geriye donerek islemlere devam edebilirsiniz</a>"
;
} else {
echo 
"kayit tamamlanamadi <br />
<a href=’k_islem.php’>Tekrar Denemek icin geri donebilirsiniz</a>"
;

}
}
?>

 

gordugunuz gibi ilk basta gelen verinin guvenirliligini kontrol ettik, ve ilerde gelebilecek aciklaara karsi veritabanina eklenen bilgileri sinadik..

 

sira geldi duzenleme sayfamizin yapimina gelen veriyi duzenlemek icin yukaridaki sayfada(k_islem.php) listeledigimiz veritabani id lerine duzenle linki eklemistirk, bu duzenle linkine tikladiktan sonra duzenleme yapacagimiz sayfayi olusturalim..

k_duzenle.php


<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
</head><?PHP
require_once(‘baglan.php’);
?>

   <?php 

# Once bilgileri al
$id=(int)$_GET[‘id’];

$sorgu=mysql_query("select * from not_defteri where id=’$id’");
$bilgi mysql_fetch_array($sorgu); 

echo ‘<form method="POST" action="k_baglan_duzenle.php">
<table width="439" border="0">
  <tr>
    <td width="53" height="32"><span class="style1">Bolumler</span></td>
    <td width="370">&nbsp;<span class="style1">Doldurulmasi Zorunlu Alanlar</span></td>
  </tr>
<input type="hidden" name="id" value="’
.$id.‘">
  <tr>
    <td>Baslik</td>
    <td><input name="baslik" value="’
.$bilgi[baslik].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>aciklama</td>
    <td><textarea name="aciklama" rows="10" cols="45">’
.$bilgi[aciklama].

</textarea></td>
  </tr>
  <tr>
    <td>Resim</td>
    <td><input name="resim" value="’
.$bilgi[resim].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Ekleyen</td>
    <td><input name="ekleyen" value="’
.$bilgi[ekleyen].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Tarih</td>
    <td><input name="tarih" value="’
.$bilgi[tarih].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site ismi</td>
    <td><input name="k_site" value="’
.$bilgi[k_site].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site url</td>
    <td><input name="k_url" value="’
.$bilgi[k_url].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Ekle"/></td>
  </tr>
</table>
</form>’
;  ?> 
</html>

 

en basa yazdigimiz html karakter seti komutu veritabanindan gelen tr karakterli bilgilerin bozuk cikmamasini saglamak ;;

sonrasinda k_islem.php sayfasindan gelen id yi get metoduyla aldik ve o id deki bilgileri listeledik..

listeleme isleminden sonra yaptigimiz degisikliklerin veritabanina kaydedilmesi icin bize bir de bu bilgilerin yollandigi update sayfasi lazim, gelin simdi bunu yapalim..

k_baglan_duzenle.php


  <?PHP
require_once(‘baglan.php’);
?>
<?php
$id
=$_POST["id"];
$baslik=$_POST["baslik"];
$aciklama=$_POST["aciklama"];
$ekleyen=$_POST["ekleyen"];
$resim=$_POST["resim"];
$tarih=$_POST["tarih"];
$k_site=$_POST["k_site"];
$k_url=$_POST["k_url"];

$guncelle=mysql_query("update not_defteri SET 

baslik=’$baslik’,aciklama=’$aciklama’,
ekleyen=’$ekleyen’,resim=’$resim’,tarih=’$tarih’,k_site=’$k_site’,
k_url=’$k_url’ where id=’$id’");

if($guncelle) {

echo "guncelleme basarili oldu<br />
<a href=’k_islem.php’>geriye donerek islemlere devam edebilirsiniz</a>"
;
}else{
echo 
"guncelleme basarisiz oldu";
}
?>

bir ocneki sayfamizdan k_duzenle.php sayfamizdan yani gelen bilgileri degiskenlere atadik, ve sonrasinda update komutunu kullanarak veritabanina eklettirdik..

duzenleme sayfamizda bitmistir simdi gelelim silme sayfamiza..

daha once k_islem.php sayfasindan sil linki eklemistik, buna tiklayarak sil komutunu yapmamiz icin bize gerekli olan son sayfada,

 

k_sil.php


<?php
require_once(‘baglan.php’);

$id=$_GET["id"];
echo 
"$id";
$sil=mysql_query("delete from not_defteri where id=’$id’");
if(
$sil){
echo 
"silme islemi basarili";
}else{
echo 
"silme islemi basarisiz";
}
?>

yukaridaki komutlada get metoduyla gelen id yi degiskene atadik ve degiskeni delete kodu kullanarak veritabanindan sildik..

islem bu kadar arkadaslar, sorulariniz olursa cekinmeyin sorun..

vista kullaniyorum localhostta sorunsuz bir sekilde calisiyor, sizde denemelerini yapmak icin yukaridaki dokumanlari kullanabilirsiniz..

 

Kategoriler
Webmaster yardım

robots.txt analiz aracı, robots.txt dosyasını Googlebot’un okuduğu gibi okur.

google-logo-halloween-d-miprobots.txt analiz aracı, robots.txt dosyasını Googlebot’un okuduğu gibi okur. Araç bir satırda söz dizimi hatası belirlerse Googlebot söz konusu satırı tanımayacak demektir. Araç bir URL’ye izin verildiğini gösterirse, Googlebot da o URL’yi izin verilmiş olarak tanıyacaktır.

Bu araç yalnızca Google user-agent’ları (Googlebot gibi) sonuçlarını sunar. Diğer botlar ise robots.txt dosyasını aynı şekilde tanımayabilir. Örneğin, Googlebot standart tanımın genişletilmiş bir biçimini destekler. Allow: yönergelerinin yanı sıra bazı şablon eşlemelerini de tanır. Dolayısıyla araç bu uzantıları tanındığı gibi içeren satırları gösterirken, bunun yalnızca Googlebot için geçerli olduğunu ve varsa sitenizi tarayan diğer botlar için geçerli olmayabileceğini unutmayın.

Bir robots.txt dosyası ana makinenin kök dizininde bulunuyorsa, bu araç Google’ın dosya hakkında edindiği aşağıdaki bilgileri listeler:

Kategoriler
Webmaster yardım

Google Web Yöneticisi Kuralları, bu kurallara uymayan yandi :)

google11google11Bu kurallara uymanız, Google’ın sitenizi bulmasına, dizine eklemesine ve sıralamasına yardımcı olur. Bu önerilerden hiçbirini uygulamasanız bile bir sitenin Google dizininden tamamen kaldırılmasına veya başka şekilde cezalandırılmasına yol açabilecek hatalı uygulamalardan bazılarını ortaya koyan “Kalite Yönergeleri”ni dikkatle incelemenizi öneririz. Bir site cezalandırıldıysa, artık Google.com.tr’deki sonuçlarda veya Google’ın ortak sitelerinden herhangi birinde gösterilmez.

Siteniz hazır olduğunda:

* Sitenizi, http://www.google.com/addurl.html adresinden Google’a gönderin.
* Google Web Yöneticisi Araçları’nı kullanarak bir Site Haritası gönderin. Google, sitenizin yapısı hakkında bilgi edinmek ve web sayfalarınızın kapsamını genişletmek için Site Haritanızı kullanır.