PHP ile garantili mail göndermek

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.

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.

Okumaya devam et “PHP ile garantili mail göndermek”

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

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 ob_flush() 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 flush() komutunun da kullanılması gerektiğidir.

Echo ve Print arasındaki farklar

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.

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.

Okumaya devam et “Echo ve Print arasındaki farklar”

Cazibeli PHP/SWF web grafikleri

PHP/SWF Charts, 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 );

?>

Delphi 2007 for PHP

Delphi 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.

Delphi 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.

Okumaya devam et “Delphi 2007 for PHP”

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

e-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 ekran görüntüleri daha çok şey anlatır. Genel özellikleri ve kodları bu konuda çalışan arkadaşlara belki faydalı olur.

CAPTCHA ile insan doğrulama

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

CAPTCHA, 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.
Okumaya devam et “CAPTCHA ile insan doğrulama”

NetServer:Yeni bir WAMP paketi

NetServer Windows (NT/2000/2003/XP) için hazırlanmış ve sistem tepsisinde çalışan bir arabirim tarafından kolayca konfigüre ve kontrol edilebilien bir sunucu paketidir. Paketin içerisinde Apache+PHP, MySql, Filezilla FTP Server, hMailServer and PHP scriptleri yer alıyor.

NetServer Windows (NT/2000/2003/XP) için hazırlanmış ve sistem tepsisinde çalışan bir arabirim tarafından kolayca konfigüre ve kontrol edilebilien bir sunucu paketidir. Paketin içerisinde Apache+PHP, MySql, Filezilla FTP Server, hMailServer and PHP scriptleri yer alıyor.
Okumaya devam et “NetServer:Yeni bir WAMP paketi”

WinBinder: The native Windows binding for PHP

WinBinder açık kaynak kodlu bir PHP eklentisidir. PHP programcılarının kolayca 32 bitlik yerel Windows uygulamaları oluşturmalarını sağlar. PHP’nin esnek yapısı sayesinde çok az kod satırı ile fonksiyonel programlar hazırlanabiliyor.

WinBinder’in yapısı hakkında:
WinBinder esas avantajını resmi olarak PHP  4.3 ile tanıtılmış olan CLI SAPI (Command Line Interface / Server Application Programming Interface)’den almaktadır. 3. parti DLL (Windows Kütüphanesi)’ler PHP’yi Wİndows geliştirme ortamı olarak kullanmak için yetenekli hale getiriyorlar. Bu kütüphaneler pencereleri, kontrolleri, mesajları, zamanlayıcıları, windows kayıt defterini, GDI (Windows’ Graphic Device Interface) ve daha fazlasını yönetmek için kodlar içeriyor.Bir grup düşük seviyeli (low-level) fonksiyon, programcının istediği Windows fonksiyonuna erişmesine, yapılar tanımlamasına ve belleğe doğrudan erişmesine izin veriyor.

Kontroller doğrudan WinBinder fonksiyonuları çağrılarak veya 3. parti form tasarım yazılımların oluşturduğu RC dosyaları (Resource) ile oluşturulabilir. Bu kaynak dosyalar fazladan bir derleme aşamasına gerek bırakmadan doğrudan (RC) çalışma anında parselleniyor.

Aşağıdaki diyagram WinBinder’ın Windows uygulamalarını oluştururken kullandığı mekanizmayı anlatıyor.

Daha fazla bilgi için tıklayın.

Çeşitli WinBinder uygulamaları:

WinBinder Release Maker,
WinBinder TrueType Data Reader,
WinBinder Clock ,
WinBinder To Do ,
LightsOut,

WinBinder ile yapılabilecekler için güzel bir örnek:
Sample WinBinder

PHP, MySQL, Javascript, CSS Cheat Sheets

Cheat Sheet dediği şey belli bir konuyla alakalı çok sık kullanılan ve genelde ezberlenmesine gerek olmayan hatta hatırlatma amacıyla da kullanılabilen çizelgelerdir. Tam olarak Türkçe karşılığının olmaması (ya da benim bulamamam) üzücü. Aşağıda PHP, Javascript, MySQL, CSS, ActionScript, Apache mod_rewrite ve Renk çizelgeleri yer alıyor.

Cheat Sheet dediği şey belli bir konuyla alakalı çok sık kullanılan ve genelde ezberlenmesine gerek olmayan hatta hatırlatma amacıyla da kullanılabilen çizelgelerdir. Tam olarak Türkçe karşılığının olmaması (ya da benim bulamamam) üzücü. Aşağıda PHP, Javascript, MySQL, CSS, ActionScript, Apache mod_rewrite ve Renk çizelgeleri yer alıyor.

Okumaya devam et “PHP, MySQL, Javascript, CSS Cheat Sheets”

Dosya yöneticileri

PHP ile sunucu tarafındaki dosya ve dizinleri düzenlemeye yarayan script’ler.

http://www.litoweb.net/pfn2/
http://pfn.sourceforge.net/?lg=ing
http://www.phpxplorer.org/phpXplorer/webIndex.php
http://ecosmear.com/relay/demo/relay.html
http://ecosmear.com/relay/
http://www.eblah.com/e-dir/
http://cjgexplorerpro.com.ar//cjgexplorerpro/
http://www.szewo.com/php/commander/eng/
http://www.blueshoes.org/examples/fileManager/index.php
http://fsguide.sourceforge.net/
http://sweetphp.com/nuke/modules.php?name=Script_Preview&script=7
http://www.josh.ch/joshch/php-tools/phpmywebmin,overview.html
http://www.bitfolge.de/snif-en.html
http://www.siteeditplus.com/index.php?page=demo
http://www.bmitt.com/index.php?PageID=44&dir=webauthoring/php

phpMySQLAutoBackup – Otomatik yedekleme

phpMySQLAutoBackup MySQL veritabanlarının yedeklenmesini otomatik hale getiriyor. PHP script’i veritabanını okuyor (verileri ve yapıları), gzip biçiminde sıkıştırıyor ve belirttiğiniz e-posta adresine gönderiyor. Veritabanı kullanan ve verilerin güncelliğinin önemli olduğu web siteleri için mutlaka bir acil durum planı yapılmalıdır.

Okumaya devam et “phpMySQLAutoBackup – Otomatik yedekleme”

Problem: PhpMyAdmin ile veri yükleme

Büyük sql dosyalarını veritabanı sunucusuna yüklemek bazen sıkıntılı olabiliyor. Benzer sorunu başkalarının da yaşama ihtimalini düşünerek  sorunun çözümü hakkında bilgi vermek istiyorum. Kullandığım hosting firması (site dosyalarını bilgisayarında barındıran firma) MySQL veritabanı sunucusuna doğrudan erişim vermemiş. Yani işlem yapmak için doğrudan veritabanı sunucusuna bağlanamıyorum.Servislere dışarıdan doğrudan erişiminin kapatılması (servisi izin verdiği standart arayüze) sunucu güvenliği açısından çok tercih edilen bir yöntem. Dışarıya nekadar az servis açık olursa güvenlik de o denli yüksek tutulmuş olur.

Büyük sql dosyalarını veritabanı sunucusuna yüklemek bazen sıkıntılı olabiliyor. Benzer sorunu başkalarının da yaşama ihtimalini düşünerek  sorunun çözümü hakkında bilgi vermek istiyorum. Kullandığım hosting firması (site dosyalarını bilgisayarında barındıran firma) MySQL veritabanı sunucusuna doğrudan erişim vermemiş. Yani işlem yapmak için doğrudan veritabanı sunucusuna bağlanamıyorum.Servislere dışarıdan doğrudan erişiminin kapatılması (servisi izin verdiği standart arayüze) sunucu güvenliği açısından çok tercih edilen bir yöntem. Dışarıya nekadar az servis açık olursa güvenlik de o denli yüksek tutulmuş olur.

Okumaya devam et “Problem: PhpMyAdmin ile veri yükleme”

LAMP, WAMP, MAMP geliştirme paketleri

Dinamik web siteleri geliştirenlerin işine yarayacağını düşündüğüm bazı yazılımlardan haber vermek istiyorum. Aslında yazılım paketleri desek daha doğru olur. Konu PHP tabanlı web uygulamaları geliştirmeyle ilgili. PHP tabanlı web uygulamaları geliştirirken, web tarayıcı programını saymazsak (FireFox,Netscape,IE) olmazsa olmaz üç programa ihtiyacımız vardır. Bir web sunucu, PHP yorumlayıcısı ve bilgilerin sorgulanması için de bir adet veri tabanı sunucusu (Mysql,Postgresql,Firebird,Oracle vb.)

Dinamik web siteleri geliştirenlerin işine yarayacağını düşündüğüm bazı yazılımlardan haber vermek istiyorum. Aslında yazılım paketleri desek daha doğru olur. Konu PHP tabanlı web uygulamaları geliştirmeyle ilgili. PHP tabanlı web uygulamaları geliştirirken, web tarayıcı programını saymazsak (FireFox,Netscape,IE) olmazsa olmaz üç programa ihtiyacımız vardır. Bir web sunucu, PHP yorumlayıcısı ve bilgilerin sorgulanması için de bir adet veri tabanı sunucusu (Mysql,Postgresql,Firebird,Oracle vb.)
Okumaya devam et “LAMP, WAMP, MAMP geliştirme paketleri”

The Uniform Server

 Uniform Texzone BBS‘den Elico‘nun uyandırmasıyla haberim olan nacizane bir yazılım paketi. İçerisinde PHP, Perl, MySQL, Apache ve PHPMyAdmin ‘nin son sürümlerini bulunduruyor. Kurulum gerektirmeden doğrudan çalışmaya hazır. Flash belleğimizde rahatlıkla gezdirebileceğimiz özellikte. Linux’un hız ve stabilitesinden vazgeçemeyen web tasarımcılar/programcıları  için çok iyi bir çözüm.

Uniform Texzone BBS‘den Elico‘nun uyandırmasıyla haberim olan nacizane bir yazılım paketi. İçerisinde PHP, Perl, MySQL, Apache ve PHPMyAdmin ‘nin son sürümlerini bulunduruyor. Kurulum gerektirmeden doğrudan çalışmaya hazır. Flash belleğimizde rahatlıkla gezdirebileceğimiz özellikte. Linux’un hız ve stabilitesinden vazgeçemeyen web tasarımcılar/programcıları  için çok iyi bir çözüm.

Okumaya devam et “The Uniform Server”