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

Tarih: 03/24/2010 | Yazan: Özgür Koca

‘nin Neden 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.




Delphi for PHP’de PageControl nesnesi sorunu

Tarih: 09/13/2009 | Yazan: Özgür Koca

sm phphello Delphi for PHPde PageControl nesnesi sorunu

Sıradaki ilk projemi (D4PHP) ile yapmaya karar vermiÅŸtim. Daha önce de söz ettiÄŸim bu ‘ı 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 ve d4php’nin 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.




e-Okul PHP Script’i ve Delphi Programı

Tarih: 08/31/2009 | Yazan: Özgür Koca

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.

e-Okul Güncelleyici Program

1.33 MB 246 kez indirildi.  

Bilsa Karma programının mdb biçimindeki veritabanlarından öğrencilerin not ve devamsızlık bilgilerini okuyarak script'e aktaran (MySQL veritabanına) program.

Programı derleyip çalıştırmayı deneyecekler için;

  1. Ana form üzerinde Ayarlar düğmesinden script’in bulunduÄŸu URL’yi yazın
  2. Kullanıcı adı olarak script’in config.php dosyasındaki DBUpdateUsername ve DBUpdatePassword deÄŸerlerini kullanın.
  3. Data dizinine okul veritabanlarının saklandığı “1″,”2″.. ismindeki klasörler ile OGRSIFRE.MDB ve STARTUP.MDB isimli veritabanlarını kopyalayın veya Gözat düğmesi ile Karma’nın yüklü olduÄŸu ana dizini gösterin.



tinyMy: small mysql console

Tarih: 08/17/2009 | Yazan: Özgür Koca

, 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 betikdir.

Genellikle web üzerinden MySQL veritabanlarını yönetmek için 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.

tinyMy ile veritabanındaki tabloların içeriğini ve yapısını görebilir, SQL çalıştırabilir ayrıca tablolarınızı dump edebilirsiniz. betiğini buradan indirebilirsiniz.

Technorati : , ,
Del.icio.us : , ,
Zooomr : , ,
Flickr : , ,




WordPress ile 404 hatalarını tespit etmek

Tarih: 07/17/2009 | Yazan: Özgür Koca

Benim gibi ‘dan wordpress’e göç etmiÅŸ bir blogcu iseniz yeni sitenizdeki bazı URL adreslerinin 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.




Google Summer of Code: PHP-Based Docbook renderer

Tarih: 06/06/2008 | Yazan: Özgür Koca

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 da indirebilirsiniz.




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

Tarih: 05/20/2008 | Yazan: Özgür Koca

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 ile garantili mail göndermek

Tarih: 02/05/2008 | Yazan: Özgür Koca

PHP’nin resmi sayfasında mail komutunun kullanımı hakkında ÅŸu bilgiler yer alıyor:

Kullanımı:

bool mail ( string $to  , string $subject  , string $message  [, string $additional_headers  [, string $additional_parameters  ]] )

Mail komutunda kullanılması zorunlu parametreler:

  • $to: PHP ile mail göndereceÄŸiniz kiÅŸinin adresi. Tipi string’dir.
  • $subject: Mail’in konusu. Tipi string’dir.
  • $message: Göndermek istediÄŸiniz mail’in içeriÄŸi. Tipi string’dir.

Not: String tipine Türkçe’mizde bazen katar bazen de karakter dizgesi adı verilmektedir.

Dördüncü ve beşinci parametrelerin kullanılması zorunlu olmamakla birlikte görevlerini kısaca söyle açıklayabiliriz.

  • $additional_headers: Bu kısımda, gönderen adresi, karbon kopya (CC) adresi ve gizli karbon kopya (BCC) adresi gibi adresler belirtilebilir. CC adresi, gönderilen mailin bir kopyasının da (karbon kopya) baÅŸka bir adrese gönderilmesini saÄŸlar. CC alıcısı gelen mail’in baÅŸlık bilgilerinden mail’in asıl alıcısının kim olduÄŸunu görebilir.  BCC, CC ye benzemekle birlikte, tek farkı, asıl alıcı ile CC alıcısının mail’in bir kopyasının da BCC adresine gönderildiÄŸini bilememesidir. Mail sunucusu baÅŸlık bilgilerine bu adresi dahil etmez. Bu kısımın da veri tipi String’dir.
  • $additional_parameters: SendMail yazılımına parametre yollamak için kullanılıyormuÅŸ. Ayrıntısını ÅŸimdilik bilemeyeceÄŸim.



Script çalışırken çıktı vermek

Tarih: 09/10/2007 | Yazan: Özgür Koca

Bir PHP script’inin çıktısı script’in çalışması tamamlandıktan sonra gönderilir. Scrip çalışmaya devam ederken sayfada/ekranda bir çıktı gözükmez. Script’in oluÅŸturduÄŸu tüm çıktılar Output Buffer (ob) adı verilen tamponda tutulur. Programcı isterse bu tamponu ob_ fonksiyonlarıyla kontrol edebilir. Tampondaki içeriÄŸi istenildiÄŸi anda çıktı vermek için için () komutu kullanılabilir. ob_flush caÄŸrıldığında o ana kadar çıktı tamponuna biriktirilen tüm içerik tarayıcıya bir header yardımıyla gönderilir ve görüntülenmiÅŸ olur.

Çıktının zamanlamasını ayarlayarak göze hoÅŸ gözüken sayfa yüklemeleri elde edilebilir. Yine ob_flush ile uzun bir iÅŸlemi yerine getiren script’in, kullanıcıyı  o anda yaÄŸtığı iÅŸ hakkında bilgilendirmesi için faydalıdır. GerektiÄŸinde bu özellik kullanılırsa ziyaretçinin sayfa izleme kalitesi artacaktır.

Aşağıdaki kodda  ob_imlicit_flush komutunun kullanımına örnek yer alıyor. Bu komut çıktı tamponunu devre dışı bırakır ve echo gibi her çıktı komutunun ardından çıktının anında tarayıcıya gönderilmesini sağlar. Aşağıdaki kodun çalışan halini buraya tıklayarak izleyebilirsiniz.

Dikkat edilmesi gereken bir nokta, ob_flush komutundan hemen sonra () komutunun da kullanılması gerektiğidir.

<?php
ob_implicit_flush(true);
for($i=0; $i<8; $i++)
{
  echo "<span style='width:8px; height:8px; background:blue'></span>&nbsp;";
  for($k = 0; $k < 10000; $k++)  echo ' ';
}
?>



PhpSecInfo

Tarih: 06/27/2007 | Yazan: Özgür Koca
th psi ss1 PhpSecInfo th psi ss2 PhpSecInfo
, phpinfo() fonksiyonuna benzer ÅŸekilde sunucudaki PHP ortamının güvenliÄŸini analiz ediyor ve güvenliÄŸi artırıcı önerilerde bulunuyor. bir projesi olan PhpSecInfo “New Free BSD” lisansı ile dağıtılıyor.



Echo ve Print arasındaki farklar

Tarih: 04/02/2007 | Yazan: Özgür Koca

Echo, Print’e göre iÅŸlemciyi daha verimli kullanır. AÅŸağıda örnek echo ve print‘in 100.000 kez parametresiz çalıştırılması sırasında geçen sürelerin ölçümünü gösteriyor.

Echoing 100000 of nothing
Execution time is 0.037015199661255 seconds.

Printing 100000 of nothing
Execution time is 0.040477991104126 seconds.




Cazibeli PHP/SWF web grafikleri

Tarih: 03/18/2007 | Yazan: Özgür Koca

, PHP kullanarak dinamik veri kaynağından basitçe, güçlü ve etkileyici grafikler sunmak için bir araç. Grafiği sunarken kullanılabilecek birçok flash tasarımı var. Örneğin aşağıdaki grafiği oluşturmak için şöyle bir kod kullanmak yetiyor;

<?php
include “charts.php”;

//the chart’s data
$chart [ 'chart_data' ] = array ( array ( “”,         “2001″, “2002″, “2003″, “2004″ ),
array ( “Region A”,     5,     10,     30,     63  ),
array ( “Region B”,   100,     20,     65,     55  ),
array ( “Region C”,    56,     21,      5,     90  )
);

//send the new data to charts.swf
SendChartData ( $chart );

?>

 Cazibeli PHP/SWF web grafikleri




Delphi 2007 for PHP

Tarih: 03/17/2007 | Yazan: Özgür Koca

sm phphello Delphi 2007 for PHPDelphi for PHP (DPHP), Delphi benzeri görsel uygulama geliÅŸtirme ortamı ile PHP’de web projesi gelistirme konusunda bir devrim yaratıyor. DPHP, PHP’de saÄŸlam web uygulamaları geliÅŸtirmek için hızlı ve kolay bir yol sunuyor.

Web geliÅŸtiricileri arasında PHP kullananların oranı oldukça fazla. Hatta ilk sırada diyebiliriz. PHP için yazılmış açık kaynak kodlu proje ve bileÅŸenleri de hesaba katarsak PHP’nin önemi iyice netleÅŸecektir. Ancak yaygın kullanımına ve popülaritesine raÄŸmen bu güne kadar aşırı geliÅŸmiÅŸ kod editörlerinin dışında ciddi bir RAD (Rapid Application Development) aracına sahip olamamış. Delphi for PHP, Delphi arayüzüne aÅŸina olanlara PHP’de hızlı bir geliÅŸtirme ortamı sunuyor.




Yarım kalmış bir PHP projesi: e-Okul

Tarih: 02/27/2007 | Yazan: Özgür Koca

eokul Yarım kalmış bir PHP projesi: e Okule-Okul, muazzam sayıda bit(irile)memiş projenin yer aldığı kod arşivimden bir e-devlet atraksiyonu. 2004 yılında nice umutlarla giriştiğim bu işin ömrü nedense pek fazla ol(a)madı. Ana fonksiyonlarının bir kısmı tamamlamış olmama rağmen düzeltilecek ve geliştirilecek çok yönü var. Temel olarak öğrenci ve ailelerinin şifreleri ile giriş yapıp not ve devamsızlık gibi bilgileri  öğrenebilmelerini sağlayan bir proje. Sanırım daha çok şey anlatır. Genel özellikleri ve kodları bu konuda çalışan arkadaşlara belki faydalı olur.


eOkul PHP Projesi

62.7 KB 480 kez indirildi.  

PHP Class mantığıyla yazılmış eOkul script'i.




CAPTCHA ile insan doÄŸrulama

Tarih: 02/17/2007 | Yazan: Özgür Koca

, insan olmayan sistemleri bir takım insancıl özellikleri kullanarak tespit etmek olarak tanımlanabilir. Son bir aydır siteye onlarca reklam/link içeren spam yorumlar eklenmeye başlandı. Bu iş yorum spamcıları (blogspam comment) olarak sınıflandırılan yazılımlar kullanılarak yapılıyor. Bu programlar web deki formları tarayor ve açık sitelere mesaj ve bağlantılar otomatik olarak bırakılıyor. Bu iz bırakma atraksiyonları tamamen otomatize edilmiş yazılımlarla, pagerank/hit artırmak amacıyla yapılıyor. Siteyi spam dan korunmak için yorum ekleme formuna CAPTCHA güvenlik resmi yerleştirdim. Resimdeki güvenlik kodu ilgili kutuya doğru olarak girilmedikçe eklenen yorum kabul edilmeyecek.






Pages: 1 2 İleri



  • Hakkında | İletiÅŸim | Wordpress.org | RSS | Abone Ol

  • (c) 2005-2009 Wordpress Tema: Tankado & Theme by Tankado.com