Php hakkında doğru bilinen 10 yanlış

  1. PHP derlenen bir programlama dili değildir.
  2. PHP bellek erişimi, donanım kontrolü vb. alışılmadık kontroller yapamaz.
  3. PHP X programlama dilinin yaptıklarını yapamaz.
  4. PHP sadece web geliştirmek için kullanılır.
  5. PHP sadece bir şirket tarafından kontrol edilir. (zend)
  6. PHP dökümantasyonu kötü ve yetersizdir.
  7. PHP projeleri yeniden kullanılabilir değildir çünkü nesne tabanlı değildirler.
  8. PHP Ruby On Rails, Python Django, vs. den daha kötüdür.
  9. PHP yüksek performanslı ve ölçeklenebilir web siteleri ve uygulamalar için uygun değildir.
  10. PHP geliştiricileri ucuzdur çünkü nitelikli değildir.

PHP ile MAC<->IP<->HostName dönüşümü yapmak

PHP uygulamasının yalnızca belli bilgisayarlar tarafından kullanılmasını sağlamak için MAC (ethernet adresi) adresi kontrolü yapabilirsiniz. Benzer kontrol IP adresi ve Hostname kontrolü ile de gerçekleştirilebilir. Ancak güvenlik açısından kritik bir uygulamaya erişim sağlatıyorsanız söz konusu kontrollerin tamamen yetersiz olduğunu bilmek gerekir.Çünkü MAC, IP ve Hostname gibi adresler kullanıcı tarafından kolayca değiştirilebilir. Ancak bu kontrolleri kullanıcıyı rahatsız etmeden mevcut kimlik doğrulama prosedürüne  ekleyebilirsiniz. Ayrıca MAC adresi sadece yerel ağlarda geçerli olan bir parametredir, internet ortamında var olmadığını ve kontrol edemeyeceğinizi hatırlamalısınız.

Okumaya devam et “PHP ile MAC<->IP<->HostName dönüşümü yapmak”

Windows XP’ye Apache & PHP Kurulumu Yapmak

Windows XP işletim sistemine Apache & PHP kurulumunu ve temel yapılandırma ayarlarını anlattığım bir eğitim filmi kaydettim. Film en güncel Apache ve PHP sürümlerinin sitelerinden indirilmesiyle başlıyor, kurulumun ardından httpd.conf ve php.ini dosyalarında gerekli ayarların yapılıp, sunucunun test edilmesi ile sonlanıyor. Umarım yararlı olur. Değerli eleştiri ve önerilerinizi esirgemeyeceğinize eminim.

PHP ile Flashget’e download uyartımı göndermek

Flashget indirme yöneticisi olarak çokça tercih edilen bir program. Flashget sistem tepsisinde (system tray) beklerken aynı zamanda web tarayıcınızı da indirme görevleri için izler. Flashget bu sayede bir dosyayı indirmeye başlamadan önce ekranda belirerek indirmeyi Flashget ile yapmak isteyip istemediğinizi sorar. Bu özellik bazı durumlarda çalışmayabiliyor.  Yani, flashget tarayıcıdan bir download gerçekleştiği halde olaya müdahil olmayabiliyor. Çözüm için PHP tarafından göndereceğiniz header satırları ile  Flashget’e tetiklenmesi için uyartım gönderebilirsiniz.

Dosya ismini vermeden download adresi oluşturmak

Download sistemleriyle ilgilenenler için faydalı olacağını düşündüğüm bir uygulama.

http://site.com/download.php?id=4 dedik, dosya inmeye başladı ama, kaynağına baktığımızda dosyanın nerede olduğu ve dosya ismi yazıyor. Belki de biz bunu göstermek istemiyoruz. :) Basit uygulamalarda download.php sayfasında şu kod kullanılıyor;

Ama biz bunu yapmayacağız. Çünkü dosya ismini linkte göstermek istemiyoruz.

Fazla gevezelik etmeden uygulamaya geçeyim…

İşte bu kadar. Bu kodları download.php olarak kaydedin. download.php?id=1 dediğinizde 1 numaralı verinin dosya ismini alır, files klasöründen bulur ve kullanıcının indirmesine izin verir. Dosyanızın ismi hiçbir şekilde görünmez. Geliştirmek ve güzelleştirmek size kalmış arkadaşlar. Kolay gelsin.

Kaynak: http://www.ilhankaraoglu.com/dosya-ismini-vermeden-download-sayfasi-olusturmak

Metinden Anahtar Kelime (keyword) Üretme

Aşağıdaki get_keywords fonksiyonu verilen metinde ençok geçen kelimeleri bulup sonucu meta keyword olarak geri döndürüyor. İkinci parametreye verilen değer kaç keyword’ün geriye döndürüleceğini belirliyor.

PHP için Güvenlik Kontrol Listesi

sk89q.com daha önce burada yayınladığı php güvenlik kontrol listesinin yazdırılabilir bir sürümünü PDF cheatsheet olarak yayınlamış. Sitede daha önce de bazı cheaatsheet‘ler yayınlamıştım.

[Yükleme bulunamadı.]

E-Dergi: phpdergi

phpdergi okuyucularına web uygulamaları geliştirirken yardımcı olmayı hedefliyor. Sadece PHP değil, web uygulaması geliştirirken ihtiyaç duyduğunuz birçok alanda yazılar bulabileceksiniz dergide. JavaScript’ten sistem yönetimine, web sunucu kurulumundan CSS’e kadar hem basit hem ileri seviye birçok yazı okuyacaksınız dergide.

Elinizin altında internet adı verilen hemen her şeyi bulabileceğiniz bir kaynak var. Derginin farkı ise hiçbir yerde olmayan konular ya da fikirler içermesi olacak. Özellikle yukarıda belirttiğimiz gibi deneyimlerle kazanılan bilgiler, ipuçları ve web uygulamalarının güvenliği üzerine yazılara sık sık rastlayacaksınız.

http://www.phpdergi.com/

PHP ile TC Kimlik Numarasını Doğrulamak

Kullanıcıdan web form aracılığıyla bazı bilgiler almak gerektiğinde bilgileri doğrulama yoluna gideriz. TC kimlik numarasının formulize edilidğini daha önce söylemiştim. TC Kimlik numarasının son 2 hanesi ilk 9 hanesini doğrulamakta kullanılan bir tür güvenlik kodudur. Aşağıda güvenlik kodunu üreterek TC kimlik numarasını yazım yanlışlıklarına karşı doğrulayan is_valid_tckn() adında bir PHP fonksiyonu yer alıyor. Ayrıca C# ve VB fonksiyonlarını da sayfanın devamında bulabilirsiniz.

PHP TC Kimlik Numarası Doğrulama Fonksiyonu

Okumaya devam et “PHP ile TC Kimlik Numarasını Doğrulamak”

WordPress – WP Simple Cache Plugin

WP Simple Cache, wordpress kullanan sitelerin cevap süresini azami derece azaltan bir eklenti. Benzer birkaç eklenti varken neden böyle bir eklenti yazmaya giriştim derseniz, daha hızlı ve kullanımı kolay olan bir eklenti hazırlamak istedim. Bunda kullandığım diğer cache eklentilerinin yükleme ve performanslarında yaşadığım sorunlar etkili oldu. Ayrıca bu eklenti ile wordpress deneyimimi artırma şansı buldum. WP Simple Cache wordpress camiasına hediye ettiğim iikinci eklentim oldu. İlk göz ağırım WP Onlywire Auto Poster eklentisini buradan inceleyebilirsiniz.

Okumaya devam et “WordPress – WP Simple Cache Plugin”

PHP: Aslında CGI Antremanı Yapmalıyız

LKD‘nin Linux-programlama listesindeNeden Cannot modify header information – headers already sent by” hatası alıyorum sorulduktan sonra, Sn. Barış Çuhadır’ın cevaben verdiği bilgiler işin özünü yansıtması açısından çok güzeldi. Paylaşmak istedim.

CGI programları istenilen programlama dili ile yazılabilir. Örneğin ben şu anda C ile kendi cgi kütüphanemi oluşturmaktayım. C ile yazılan bir cgi programı, ayrı bir işlem olarak yaratılmayıp apache cgi modülü ile kullanıldığında, ortalama bir masaüstü bilgisayarda bile saniyede ortalama 800-1200 talebe yanıt verebiliyor.

Hele ki yazdığınız program işlemciyi yoğun olarak kullanan bir program ise, ör. C ile yazılmış, apache üstünde mod-cgi ile çalışan bir cgi programı yine apache üstünde mod-php ile çalışan aynı programdan 5-10 kat daha hızlı çalışmaktadır.
Okumaya devam et “PHP: Aslında CGI Antremanı Yapmalıyız”

Delphi for PHP’de PageControl nesnesi sorunu

sm_phphello.png

Sıradaki ilk projemi Delphi for PHP (D4PHP) ile yapmaya karar vermiştim. Daha önce de söz ettiğim bu RAD‘ı geliştiriciler arasında sevenlerin sayısı çok. Hem bu düşünceye özgür iradem ile hak vermek hem de fazla bilgi göz çıkartmaz düşüncesiyle D4PHP’nin 2.1.0 sürümünü kurup kurcalamaya başladım.

İnternetteki eğitim videolarını ve d4php’nin samples klasöründeki örnekleri görünce işlerin nekadar kolaylaştığını anlayabiliyorsunuz fakat grafik ve flash yoğunluklu site tasarımlarında d4php ile nasıl entegre çalışılabilir, kod yapısına nasıl müdahale edilir gibi soru işaretleri de hafiften beyninizde belirmeye başlıyor. Macromedia’nın sunduğu studio ortamı kadar konfor yaşayabilirmiyiz yoksa d4php daha farklı projeler için mi daha uygun olur emin değilim.

Yalnız d4php ile advanced nesneler ve ajax’ı kullanarak yerel uyglama (native application) kıvamında, web tabanlı projeleri rahatlıkla ve kısa sürelerde hazırlayabilirsiniz. Zaten böyle bir proje yapacaksanız kesinlikle d4php kullanmanızı öneririm. Henuz d4php deneyimim az ve şimdilik düşüncelerim böyle.

Okumaya devam et “Delphi for PHP’de PageControl nesnesi sorunu”

e-Okul PHP Script’i ve Delphi Programı

Daha önce PHP’de yazdığım yarım kalmış bir e-okul projesinden bahsetmiş ve kodlarını paylaşmıştım. Paylaşımın delphi ayağına ait programı henuz bulabildim. Onuda buradan paylaşacağım. Program kısca; Bilsa Karma programının mdb biçimindeki veritabanlarından not ve devamsızlık bilgilerini alarak script’in kullanabileceği MySQL veribanına aktarıyor. Program temel görevleri yerine getiriyor fakat üzerinden bir hayli zaman geçtiği için eksiklikleri/hataları nelerdi konusunu hatırlayamıyorum.

Okumaya devam et “e-Okul PHP Script’i ve Delphi Programı”

tinyMy ve DBKiss: single PHP file db browser

tinyMy, MySQL veritabanlarını yönetmek için hazırlanmış küçük bir PHP betiğidir. tinyMy tek bir PHP dosyasından oluşan çok küçük ve basit bir betik.

Genellikle web üzerinden MySQL veritabanlarını yönetmek için phpMyAdmin kullanılsada bazı durumlarda phpMyAdmin biraz fazla gelebilmekte. phpMyAdmin birçok özelliği bünyesinde barındırıyor, çok fazla dosyadan oluşuyor ve bazen bu dosyaların boyutu ve kodların çokluğu sunucu başarımı açısından sorun teşkil edebiliyor. Ayrıca dial-up gibi düşük bir bağlantı söz konusu olduğunda biraz konfor kaybı olabiliyor. Çok fazla beklentiniz yoksa tinyMy size göre.

Okumaya devam et “tinyMy ve DBKiss: single PHP file db browser”

WordPress ile 404 hatalarını tespit etmek

Benim gibi dotclear‘dan wordpress’e göç etmiş bir blogcu iseniz yeni sitenizdeki bazı URL adreslerinin 404 hatası vermemesi neredeyse mümkün değil. Arama motorlarının indekslemiş olduğu URL adresleri sitenizde karşılık bulmuyorsa başınız biraz dertte demektir. Arama motorları bu adresleri periyodik olarak ziyaret ettikleri için sürekli 404 hataları ile karşılaşacakdır. 404’lerin ele geçirdiği bir site arama motorlarının gözünde değer kaybeder.

WordPress altyapısını kullanan sitenizin derinliklerindeki geçersiz URL adresleri haberiniz olmayan birçok 404 hatasını üretmektedir. Şahsen uzunca bir süre farkında olmadığım ve aslında kolayca tespit de edilemeyecek bu durumu düzeltmek biraz zamanımı aldı doğrusu. Bu sorunu gidermek çin aşağıdaki PHP kodlarını yazdım.

Kodları wordpress temanıza ekleyerek siz de kullanabilirsiniz. Kodlar sitenizde var olmayan bir adres talep edildiğinde, ilgili adresi ve isteğin kimden geldiği gibi bilgileri eposta adresinize göndererek raporlayacaktır. Bundan sonra iş gelen raporlara göre kırık bağlantıları onarmaya geliyor. Bir hafta içerisinde posta kutumda 2000’e yakın rapor birikti. Okumaya devam et “WordPress ile 404 hatalarını tespit etmek”

Google Summer of Code: PHP-Based Docbook renderer

Burada PhD adındaki,  Docbook formatlı dökümanları chm ve pdf gibi daha taşınabilir ve yaygın formatlara çeviren bir proje yer alıyor. Şimdiden PHP için oldukça kapsamlı bir başvuru klavuzu chm formatına çevrilmiş ve indirilmeye hazır. PHP programcılarının mutlaka elinin altında hazır olması gereken bir klavuz. Siteden indirirken sorun olursa buradan da indirebilirsiniz.

max_user_connections hatası almak için güzel bir yol söyleyebilirim

PHP kodlarken veritabanı sorgularında kolaylık sağlasın diye SQL cümlemizi alıp sorgu sonucunu döndüren execSQL, execQuery vs gibi fonksiyonlar tanımlayıp kullanırız.  Böylece her seferinde sunucu bağlantısı ve veritabanı seçimi ile uğraşmaktan kurtulmuş oluruz. Tabi kurallara uyan tertipli her programcı gibi fonksiyonun sonunda da mysql_close ile açtığımız bağlantıyı sonlandırmayı unutmayız. Aslında bazen unutmalıyız. Peki neden?

PHP kodlarken veritabanı sorgularında kolaylık sağlasın diye SQL cümlemizi alıp sorgu sonucunu döndüren execSQL, execQuery vs gibi fonksiyonlar tanımlayıp kullanırız.  Böylece her seferinde sunucu bağlantısı ve veritabanı seçimi ile uğraşmaktan kurtulmuş oluruz. Tabi kurallara uyan tertipli her programcı gibi fonksiyonun sonunda da mysql_close ile açtığımız bağlantıyı sonlandırmayı unutmayız. Aslında bazen unutmalıyız. Peki neden?
Okumaya devam et “max_user_connections hatası almak için güzel bir yol söyleyebilirim”