PHP MySQL Bağlantısı

Soru: PHP ile MySQL bağlantısı yaparken kaç kez bağlantı açmak gerekiyor?

Cevap: Database sayısı kadar yani 1 database varsa 1 bağlantı üzerinden her işinizi görebilirsiniz.

Başkalarının kodlarını incelerken sıklıkla gördüğüm; fonksiyon içlerinde ya da ayri dosyalarda ne zaman bir database bağlantısına ihtiyaç olsa hemen mysql_connect fonksiyonun çağrılması ve database bağlantısı açılması. Evet, kesinlikle iş görüyor, fakat olması gereken bu mudur? Ne gibi sakıncaları vardır?

1. Konfigürasyonun zorlaşması: Scriptte bir değişlik yapmanız gerekiyor; farz edelim mysql username değişti, ne yapmalısınız? Bağlantı yaptığınız her yerde username’i değiştirmelisiniz. Bunun için bir fonksiyon yazdınız ise nispeten şanlısınız sadece fonksiyonun içinde değiştirmeniz sizi bundan kurtaracaktır ya da bağlantı parametrelerini değişkenlere yüklendiniz ise sadece bunları değiştireceksiniz.

2. Kaynakları boşa harcama: Diyelim ki fonksiyon yazdınız, fakat bunu her ihtiyacınız olduğunda çağırarak tekrar bağlantı açılmasına neden oluyorsunuz bu da size zaman ve kaynak kaybı olarak geri dönecektir. Yani bir bağlantı harcadığınızda 1ms geçiyorsa 10 bağlantı için 10 ms geçecektir. Neyse ki php coderlari bunu düşünmüş ve kazın ayağı tam olarak böyle değil, bağlantı açıldığında eğer daha önce aynı parametreler ile bir bağlantı açılmışsa php yeni bir bağlantı açmayacak ve var olan bağlantıyı kullanacaktır, fakat bu durumda da mysql_select_db icin halen bir kayıp söz konusu. Aynı zamanda mysql_close yapıyorsanız veya bağlantı açarken link_identifier belirti iseniz. php yeni bağlantılar açacaktır yani yukarda verdiğim 1’e 10’luk örnek geçerli olacaktır. Bu kayiplar ms’ler mertebelerinde olduğu için pek önemsenmez. Döngü içinde 10.000, 100.000, 1 milyon bağlantı açıyorsanız bu ms’ler önem kazanmaya başlar, tabiki bu durumda kod yazarlığınızdan şüphe etme vakti gelmiştir.

Kod yazarken olabildiğince kodu tek bir noktada toplamaya çalışmalısınız, mesela bir bağlantı fonksiyonu yazdınız, bu fonksiyonu header.php, init.php gibi tek bir dosyada bir kez çağırdınız. Bu sizi her scriptinizde find/replace yapmaktan kurtaracaktır aynı zamanda bir (1) kez çağırmış ve yazmış olacaksınız.

Gmail Sınırsız E-posta Adresi

Gmail e-posta hesabınız varsa, sınırsız sayıda e-posta adresine sahip olduğunuzu biliyor musunuz? İşi web ile ilgili olan çoğu kişi bunu şimdiye kadar öğrenmiştir, yani çoğu kişinin bildiği bir şey yazıyorum. Neyse önce konuyu anlatayım daha sonra ahkam keserim neden yazdığım ile ilgili.

Konu gmail adresinizin sonuna + ekleyerek sınırsız sayıda farklı e-posta adresi oluşturabilirsiniz. Mesela eposta adresinizin tarkan.tevetoglu@gmail.com olduğunu varsayar isek, tarkan.tevetoglu+fans@gmail.com eposta hesabına gönderilen maillerde tarkan.tevetoglu@gmail.com adresine teslim edilecektir. Sizin ayrıca birşey tanımlamanıza ya da yapmanıza gerek yok bu şekilde sınırsız adres kullanabilirsiniz. Okuduğum kadarı ile noktanın da benzer bir etkisi var fakat tam olarak bu şekilde kullanılamaz.

Gmail hesabınızda etiketler(label) oluşturarak bu mail adresine gönderilen iletilerin
otomatik olarak kategorilendirilmesini de sağlayabilirsiniz. Mesela farklı e-posta bültenlerine üye olduğunuzu varsayalim, tarkan.tevetoglu+hurriyet_haber@gmail.com diyerek hürriyet haber sitesi üyeliklerinden gelen, tarkan.tevetoglu+n11_alisveris@gmail.com diyerek de n11 alisveriş sitesinden gelen iletilerin otomatik olarak kategorilendirilmesini sağlayabilirsiniz.

Evet konu bu, bunu çok uzun zaman önce bir yerlerde okumuştum, şimdi neden yazmak ihtiyacı duyduğumu anlatayım. İşimiz yüzünden çok hızlı bir şekilde geziyoruz, okuyoruz. Bunu o kadar çok yapıyoruz ki artık okuduklarımızın kendi problemlerimizi çözebileceğini bile görmüyoruz. Çok uzun zaman önce okumuştum, iyi güzel kullanırız deyip geçmiştim.

Problemim agaclar.net’in kod yazarlarından biri olmam sebebi ile testler için farklı üyeliklere ihtiyacım olması idi. vbulletin.com/forum üye olurken verilen mail adreslerinin daha önceden tanımlı olup olmadığına bakıyor ve eğer bu mail adresi forumda tanımlı ise bir üyelik açılmasına izin vermiyordu. Sonuçta 2/3 tane mail adresim var, onları da kullanınca artık gidip oluşturduğum üyeliği silmek ya da başka birilerinden rica etmek gerekiyordu. Okunan bir bilgiyi başka bir yerde kullanmak aklımın ucundan neden geçmiyordu acaba? Sanırım tez zamanda etkin okuma kurslarına kaydımı yaptırmam gerekiyor.

Neyse fazla uzattım ki, sevdiğim bir şey değildir, artık sınırsız e-posta adresim var. Okuduğum yorumlar web sitelerinin email adresinde + işaretini kabul etmediğini söylüyor. biz agaclar.net’de kabul ediyoruz, sizi de bekleriz. Bu arada Tarkan hakkında bilgi arayanlardan özür dilerim, aşağıdaki linkler yardımcı olur umarım.

http://www.tarkan.com/
http://tr.wikipedia.org/wiki/Tarkan_Tevetoğlu
http://www.google.com/search?as_q=tarkan+teveto%C4%9Flu&hl=tr&rls=en&num=10

İlgili linkler
http://labnol.blogspot.com/2006/09/gmail-easter-eggs-dot-blindess-email.html
http://mail.google.com/support/bin/answer.py?ctx=%67mail&hl=en&answer=10313

PHP Versiyon 1 Duyurusu

Rasmus Lerdorf c ile yazdığı ilk php versiyonu 8 Haziran 1995 tarihinde comp.infosystems.www.authoring.cgi usenet haber listesinde duyurmuş.

php 1.0 özellikleri kısaca

. Log Dosyaları tutma/izleme
. Günlük ve toplam erişim sayaçları
. Bağlananları banlama
. Şifre korumalı sayfalar
. Erişimler izleme
. Server side include’lar, server desteklemese bile
. Web formları oluşturma

şeklinde. Rasmus Lerdorf php’yi GNU lisansı altında yayınlamasaydı, ben ne iş yapıyor olurdum diye merak ettim. Birilerinin verdiği karar, hayatımızı nasıl etkiliyor. Herhalde kendisi bu kadar büyüyeceğini, yayılacağını düşünmemiştir, sonradan katkıda bulunanların etkisi de en az onunki kadar büyük.

Aşağıda tam duyuru ve duyuruyu aldığım yerin linki bulunuyor.

These tools are a set of small tight cgi binaries written in C.
They perform a number of functions including:

. Logging accesses to your pages in your own private log files
. Real-time viewing of log information
. Providing a nice interface to this log information
. Displaying last access information right on your pages
. Full daily and total access counters
. Banning access to users based on their domain
. Password protecting pages based on users’ domains
. Tracking accesses ** based on users’ e-mail addresses **
. Tracking referring URL’s – HTTP_REFERER support
. Performing server-side includes without needing server support for it
. Ability to not log accesses from certain domains (ie. your own)
. Easily create and display forms
. Ability to use form information in following documents

Here is what you don’t need to use these tools:

. You do not need root access – install in your ~/public_html dir
. You do not need server-side includes enabled in your server
. You do not need access to Perl or Tcl or any other script interpreter
. You do not need access to the httpd log files

The only requirement for these tools to work is that you have
the ability to execute your own cgi programs. Ask your system
administrator if you are not sure what this means.

The tools also allow you to implement a guestbook or any other
form that needs to write information and display it to users
later in about 2 minutes.

The tools are in the public domain distributed under the GNU
Public License. Yes, that means they are free!

For a complete demonstration of these tools, point your browser
at: http://www.io.org/~rasmus


Rasmus Lerdorf
ras…@io.org
http://www.io.org/~rasmus

http://groups.google.com/group/comp.infosystems.www.authoring.cgi/msg/cc7d43454d64d133

Web Tasarımında Renk Araçları

Tasarımda kullanacağınız renkleri seçmekte zorlanıyorsanız veya benim gibi 2 rengi bir araya getiremeyen bir kod yazarı iseniz bu araçlar size yardımcı olabilir.

Normalde olması gereken kod yazarına tasarımların gelmesi ve onun kodları tasarımlara entegre etmesidir. Burada bir parantez açarak tasarımcılara hayran olduğumu söylemeliyim, nasıl oluyor da güzel ve birbiri ile uyumlu sayfalar hazırlayabiliyorlar aklım almıyor. Neyse, olması gerekenin dışında çoğu zaman kod yazarları da renk seçmek zorunda kalıyorlar. Özellikle yönetim panellerinin müşteriye güzel gözükmesi gerekiyor, aksi takdirde “şuraya resim koyalım”, “biraz daha canlı birşeyler yapsana”, “fazla basit olmuş” gibi sinir edici yorumlar gelebiliyor. Öte yandan çalışırken yönetim panelinin güzel gözükmesi çalışma şevkini arttırıyor.

Aşağıdaki yardımcı araçların çoğu tarayıcı üzerinden çalışıyor, bunları kaydedip kendi bilgisayarınızdan çalışabilirsiniz, bazılarlını indirip kurmanız gerekiyor. Bu araçlar size süper tasarımlar yaptırmayacak fakat 2 rengi güzel bir biçimde bir araya getirebileceksiniz.

Renk Seçiciler
Iconico ColorPic
Color Schemer Color Pix
ColorZilla Firefox eklentisi
Nattyware Pixie
Colorjack DHTML Color Picker

Uyumlu Renk Üreticiler
http://www.colorschemer.com
http://hlrnet.com/colormatch
http://www.wellstyled.com/tools/colorscheme2/index-en.html
http://www.dhtmlgoodies.com/scripts/color-schemer/color-schemer.html
http://www.rentadabo.nl/colorschemer.htm
http://www.colorjack.com
http://www.defencemechanism.com/color/
http://www.limov.com/colour/schemes.lml
http://dev.sessions.edu/ilu/ilu_1.html
http://www.easyrgb.com
http://www.themaninblue.com/experiment/Technicolor/

Karıştırıcılar
http://meyerweb.com/eric/tools/color-blend/
http://www.colormixers.com/mixers/cmr/
http://colorblender.com
http://www.telecable.es/personales/alberto9/color/index.htm

Renk Paletleri, Renk Sevici Web Siteleri
http://www.colourlovers.com
http://pourpre.com/colordb/
http://www.visibone.com/colorlab/
http://beta.dailycolorscheme.com
http://www.december.com/html/spec/colorshades.html
http://kuler.adobe.com
http://www.colorjack.com
http://slayeroffice.com/tools/color_palette/

Fotoğrafdan Renk Paleti Üreteçleri
http://www.degraeve.com/color-palette/index.php
http://jrm.cc/color-palette-generator/
http://www.colorhunter.com

Renkler Hakkında
Türkçe
http://tr.wikipedia.org/wiki/Web_renkleri
http://www.fotografya.gen.tr/cnd/index.php?id=225,0,0,1,0,0
http://www.gaxxi.com/buzz/yazi/renkler-1
İngilizce
http://www.d.umn.edu/itss/support/Training/Online/webdesign/color.html
http://en.wikipedia.org/wiki/Web_colors
http://en.wikipedia.org/wiki/List_of_colors
http://del.icio.us/tag/color

Kaynaklar
http://www.bildirgec.org/yazi/css-renk-paletleri
http://www.furilo.com/archivos/recursos-de-color/
http://ceyhunaksan.com/tasarimda-uyumlu-renk-kullanmak/

Türkü Algoritması

Programcı adam sıkılırsa türkü algoritması yazar herhalde, bir arkadaşım bana türkü algoritması linkini gönderdiğinde güldüm biraz.

Bugün aynısını Python ile yazayım dedim.

PHP


<?php

for ($i = 1; $i <= 14; $i++)
 {
   if (!(($i > 4) && ($i <14))) {
     printf("%d mumdur\n", $i);
   }
 }

printf("Bana bir bade doldur\n");
printf("Bu ne güzel düğündür, ");

for ($i = 1; $i <= 3; $i++)
 {
   printf("Ha ninnah ");
   if ($i != 2) printf("\n");
 }

?>

Python

-*- coding: utf-8 -*-

print "".join(["%s mumdur\n" % d for d in range(1,5)]+['14 mumdur'])
print "Bana bir bade doldur"
print "Bu ne güzel düğündür, Ha ninnah"
print "Ha ninnah " * 2

Not 1: Php algoritmasında basit bir hata vardı ya da yapılmak istenen başka bir şeydi...
Not 2: Python mu döver, PHP mi döver tartışmasına gireni kovalarım.

Forum Çöplüğü

İnternetin ilk zamanlarında kişisel sayfalar vardı. Bu işlere biraz yatkın olanlar ücretsiz alan sağlayan (geocities,freeservers,8m) sitelerde kişisel sayfalar açıyordu. Benim de böyle bir sayfam vardı geocities’de.

Aslında o yıllarda kişisel siteleride çöplük olarak değerlendirenler vardı ama ben seviyordum, çünkü insanlar ilgili oldukları konularda kendince birşeyler yapıp, fikirlerini paylaşabiliyorlardı ve özgürdüler (şu aralar geocities yasaklı 5 Eylül 2008). Geocities’de yaptığım sayfaya yorum geldiğinde yaptıklarım birilerine ulaştı diye ne kadar sevinmiştim. Neyse konunun özü insanlar birşeyler üretiyorlardı, bu yüzden şu an blogları daha çok seviyorum, bir yerde o kişisel sitelerin devamı benim için.

Şimdilerde bir şey arıyorum ve yüzlerce, binlerce birbirinin kopyası forum sitesi çıkıyor karşıma. Birileri altına hucum gibi forum sitesi açıp duruyor herhalde ve aynı içeriği siteden siteye kopyalıyor ya da bu içerikler biryerlerde hazır duruyor hepsi kendi sitesine koyuyor. İçeriğinde bir sürü reklam ve işe yaramaz linkler, hatta linki görebilmeniz için bir de üye olmanız gerekiyor. Altında paylaşım için sağol yazıları, ben mi birşeyler kaçırdım zaman içinde, paylaşım bunun neresinde. Bir başka sitedeki hazır yazıyı kopyalamanın ya da aynı içerikle yeni site açmanın adı ne zamandan beri paylaşım oldu?

Bu forum yazılımlarının çoğu vbulletin, yani ücretli bir forum yazılımı, 180$ para verip bu yazılımı satın aldıklarını sanmıyorum, o forum yazılımı da bir yerlerden araklama.

Google birşeyler yap kurtar beni bu çöplükten.