Samet Özden http://www.sametozden.com Samet Özden kişisel web site tr Copyright &copy; 2009, http://www.sametozden.com. http://www.sametozden.com <![CDATA[PHP ve Javascript İle Listelenen Verileri Sayfalama]]> Merhaba, bu yazıda genelde haber sitelerinde karşılaştığımız metin başlıklarını sayfalama sisteminden bahsedeceğim. Örneğin, aynı kategoriye ait onlarca haberi aynı anda göstermek yerine belli sayıda gruplayarak göstermek daha hoş olabilir. Bunu, hem Javascript hem de PHP kullanarak yapacağız. Öncelikle kullanacağımız Javascript kodunu paylaşmak istiyorum ; <script type="text/javascript"> function goster(baslangic,bitis,tum){ var i; var iz; for(i=1; i ]]> <![CDATA[Formlarda $_SERVER['PHP_SELF'] kullanımındaki tehlike]]> Merhaba, bu yazımda form oluştururken action kısmında kullandığımız $_SERVER['PHP_SELF'] yerleşik değişkeninin oluşturduğu açıktan bahsedeceğim. Bu kullanımın oluşturduğu açık XSS açığıdır. Saldırgan bu açıktan faydalanıp sitemize zarar verebilir. Bu makalede nasıl zarar verilir ? sorusundan çok nasıl korunulur ? sorusuna cevap vermeye çalışacağım. Öncelikle, bu açığı nasıl kaparız sorusuna cevap vereyim; <form method="post" a ]]> <![CDATA[Windows Server'da FLV videolarını çalışmasını sağlamak]]> IIS 6 kurulu bir Windows 2003 sunucunuz varsa ve hiç bir ayar yapılmamışsa bu sunucu üzerinde bulunan bir sitede .flv videolarını açamayabilirsiniz. Başıma gelmiş bu can sıkıcı saçma sorunun çözümünü uzun uğraş sonucunda buldum ve paylaşmak istiyorum. IIS 6 'yı açıp "web siteleri" ağacına sağ tıklayıp özellikler dedikten sonra HTTP Üstbilgisi sekmesine gelip  MIME eşleşmesi bölümünden dosya t&uum ]]> <![CDATA[Sanal kart ile PayPal hesabı doğrulama]]> Diğer bankalarda durum nasıl bilmiyorum ama Garanti bankasında vadesiz bir hesabınız varsa ve onaylanmayı bekleyen bir PayPal hesabınız varsa sağda solda kredi kartı aramanıza hiç gerek yok. Paypal hesabınızı onaylatmak için öncelikle Garanti Bankası internet şubesine giriş yapmanız gerekiyor. Giriş yaptıktan sonra sol menüden Kart İşlemleri menüsü altından Sanal Kartlarım menüsüne erişiyoruz ve burada kendimize bir kart oluşturuyoruz. Bu karta da t ]]> <![CDATA[GenerateImage.com]]> Bir süredir üzerinde uğraştığım ve sonunda hayata geçirdiğim bir diğer projemi sizinle paylaşmak istiyorum. www.generateimage.com adresinde yayına devam eden bu projenin ana konusu resim üzerine belli sayıdaki (150-200) fontlarla istediğiniz renkte, boyutta, açıda ve transparanlıkta yazı yazmanızı sağlayan veya bir başka logo eklemenizi sağlamaktır. Genellikle haber, e-ticaret ve benzeri sitelerin kullandığı kendilerine özel resimler değerlidir. Profesyonel &cce ]]> <![CDATA[PHP ile otomatik resim boyutlandırma]]> Sitemize eklediğimiz makale veya ürün resimlerinin boyutları her zaman birbirini tutmuyor. Durum böyle olunca önizleme esnasında da resim boyutlarını standart belirlediğimizde kalte bozuklukları çıkabiliyor.  Aslında resim boyutu ne olursa olsun belirttiğimiz ölçüler dışına taşmadan kendini otomatik boyutlandıran bir fonksiyon olsa güzel olurdu.  Böyle bir fonksiyon yazdım. Aslında küçük bir araştırmadan sonra bu iş ]]> <![CDATA[PHP ve CSRF açığı]]> Açılımı Cross-site request forgery olan bu açık sayesinde açığı barındıran site üzerinde kullanıcı girişi yapmış kişilere farkında olmadan makale sildirtebilir, ekletebilir, sahte form gönderileri yaptırabiliriz. Tabii iş bunlarla sınırlı değil, gerisi hayal gücü ve kurnazlığınıza kalmış. Bilgilendirme kısmını geçerek teknik anlatım bölümüne geçebiliriz.   AÇIĞIN KULLANIM BİÇİMİ Örnekteki kurban ]]> <![CDATA[Resimin boyutlarında Javascript pencere açılması]]> İlk olarak bu sorunun cevabını aradığımda sitelerde uzun uzun javascript kodları görmüştüm. PHP'nin getimagesize() fonksiyonu ile çok kısa kodlarla bu işlem yapılabilir. Örnek koda geçmeden önce getimagesize fonksiyonunu anlatmakta fayda var. getimagesize fonksiyonu ile resimin eni, yüksekliği ve mime tipi alınabilir. Mime tipi demişken, siz siz olun sakın ama sakın resim yüklemelerinde yüklenen resimin mime tipini sadece bu fonksiyonu kulla ]]> <![CDATA[PHP 5.2.7'de ki magic_quotes_gpc açığı]]> Güvenliğiniz için verilerinizi filtrelerken sadece php.ini deki magic_quotes_gpc ayarına güveniyorsanız güvendiğiniz sistemlere hackerlar, lamerlar doluşabilir. Şöyle ki; PHP 5.2.7 sürümünde bu yapılandırma "on" değerinde olsa dahi ' karakterine \ koymuyor. Yani siz verilerinizi güvenle filtrelediğini düşünürken aslında o veriler veritabanınıza tehlikeli biçimde kayıt ediliyor. Detaylı bilgi Bu sorundan sonra php.net ]]> <![CDATA[IIS'de PHP Kodlarını Çalışır Hale Getirmek]]> IIs'de php kodlarını çalışır hale getirmek kolay bir işlemdir. İlk önce denetim masası -> yönetimsel araçlar -> IIS bölümünü açalım. Ardından sol taraftaki ağaç yapıdan varsayılan web sitesine sağ tıklayıp özellikleri açalım. Yukarıdan giriş dizini sekmesinde bulunan yapılandırma butonuna tıklayalım. Açılan küçük pencerede resimdeki gibi php5isapi.dll dosyasını bulup uzantı kısmına da .php ya ]]> <![CDATA[PHP ile RSS oluşturma]]> RSS teknolojisinin önemi günümüzde çok daha önemli bir duruma geldi. Web sitelerinde düzenli içerik sağlayanlar için bu teknolojiyi kullanmak büyük bir kazançtır.  Bu teknolojinin kullanıcı tarafına faydası, RSS okuyucu programlara içeriğini takip ettiğiniz sitenin RSS servis bağlantısını göstererek yeni içeriklere hızlıca erişmenizdir. Güzel bir RSS okuyucu programını bu bağlantıdan indirebilirsiniz ]]> <![CDATA[Samet Özden]]> 2006 yılında bilgisayar ciddi anlamda tanıştım. 2007 kışında da format atmayı öğrendim diyebilirim. Bilgisayarla olan bu geç tanışıklığım sürekli dezavantaj olarak karşıma çıktı. Bilgisayarı eğlence makinası olarak göremeden kendimi kodların arasında buldum. html ile bir süre uğraştıktan sonra hedefimi büyütmeye karar verdim ve php ile uğraşmaya başladım. Bu süre içerisinde sistem uzmanlığı eğitimi aldım ve MCP sertifikasına sahibim. Her ne ]]> <![CDATA[Php ve Nesne Yönelimli Programlama -3]]> PHP ve nesne yönelimli programla seri konusunun son ve 3. bölümünde nitelikleri devre dışı bırakma yöntemine, final anahtar sözcüğüne, çoklu kalıtım konularına ve unutulmaması gereken önemli ayrıntılara değineceğiz. Devre dışı bırakmak ( overriding )     Aynı niteliklere farklı değer vererek işlevselliği arttırmamıza yarayan bu özellikle beraber alt sınıfta bulunan bir niteliği üst sınıftaki nitelikten ayırabiliriz. B ]]> <![CDATA[Php ve Nesne Yönelimli Programlama -2]]>      PHP ve nesne yönelimli programla seri konusunun 2. bölümünde yapılandırıcılara, kalıtıma ve erişim kontrollerine değineceğiz. Yapılandırıcılar Yapılandırıcılar nesneye anlamlı bir başlangıç değeri vermek için kullanılır. PHP4'te yapılandırıcılar sınıf adı ile aynı olurdu fakat PHP5'te __construct() kelimesi kullanılıyor. Geriye uyumluluk için sınıf içinde önce __construct kelimesi aranır yoksa sınıf adı ile aynı ya ]]> <![CDATA[Php ve Nesne Yönelimli Programlama -1]]>      Nesne yönelimli programlamanın genel tanım ve mantığına kısaca değindikten sonra "PHP ile nesne yönelimli programlama" isimli seri konuya başlayabilir ve konuyu örneklerle anlatarak daha anlaşılabilir hale getirebiliriz... Nesne Yönelimli Programlama      Nesne yönelimli programlama bir programı nesne adı verilen veriler ve bunların arabirimleri kümesi olarak tasarlanmasıdır. Nesne yönelimli programlama pren ]]> <![CDATA[Kuark7]]> 2008'in yaz aylarında basit içerik yönetim sistemi olarak düşündüğüm bu sistem gün geçtikçe eklemeler ile bu güne geldi. Her geçen gün eklemelere devam ediyorum. Adını fiziki bir terim olan Kuark'tan alan bu sistemi tamamiyle kendim yazdım. Kuark : Evrendeki kütlenin büyük bir kısmını oluşturan madde kuarklardan inşa edilmiştir. Kuarklar 6 değişik şekildedir. Kuarklar diğer parçacıklara benzemekten hoşla ]]> <![CDATA[Eğitim projem]]>     Bilgisayar teknolojisi ile yeni samimi olduğum zamanda yani 2007'nin ilk aylarında bir eğitim kurumunda sistem uzmanlığı eğitimi aldığım sırada yaptığım bir proje. Projeyi o zaman ki eğitmenim çok beğenmişti. Bir kaç forum sitesinde de paylaştım. Paylaşmak gerek bilgiyi, önem kazansın.    Proje sonunda çıkan maliyet gerçeği ne kadar yansıtır bilemem ama resimli anlatımların işinize yarayacağı kanaatindeyim.   Proje erişim bağ ]]> <![CDATA[Apache ile sanal dizin oluşturma]]> Sanal dizin nedir ?      Diyelim ki yerel bilgisayarda çalıştığımız kök dizin "C:/wamp/www" dizini olsun. Tüm çalışmalarımızı bu klasör içinde tuttuğumuzu varsayalım. Ancak tarayıcımızın adres satırına "http://localhost/sanaldizin" yazdığımızda C değilde başka bir sürücüde ki dosyalara erişmek istediğimiz vakitte "ne var ki ?  dosyaları C'ye taşırız olur biter" demek kolaya ka&cc ]]> <![CDATA[PhpMyAdmin'de root kullanıcısına şifre atama]]> Bazı server kurulumlarında ( örneğin wamp server ) mysql'de root kullanıcısı şifresiz olarak gelir. Yani phpmyadmin'de kulanıcı adı "root" yazıp şifreyi boş bıraktığımızda direkt panele girdiğimizi görürürüz. Bu güvenlik açığına sebebiyet vermektedir. İnternette bir çok makale vardır. Komut arayüzünden root kullanıcısına şifre atanabileceği gibi phpmyadmin arayüzünden de atanabilir. - ki bu yöntemi kullanıyorum. Da ]]> <![CDATA[Apache ve IIS'yi aynı anda kullanmak]]> IIS( internet information services ) ve Apache'yi aynı anda ilk kez kullanmayı denediyseniz mutlaka birinin bozulduğunu göreceksiniz... Bunun sebebi ikisininde 80. portu kullanmaya çalışmasıdır...  Sorunu düzeltmek için Apache veya IIS'nin port numarasını değiştirmemiz gerek. Önce Apache ile başlayalım ; Apache'nin kurulu olduğu dizin içerisinde httpd.conf dosyası bulunmaktadır. Apache'nin yapılandırma dosyası. Bu dosyayı metin belgesi ile açarak ]]>