yeni web sitem ve php sınıfım: formDogrula (fdo)
Formlar, web sayfalarındaki en önemli öğelerdendir. Onlar sayesinde ziyaretçilerimizden bilgi alabiliyoruz. Fakat bu formlara girilen bilgilerin, gerçekten bizim istediğimiz formatta olup olmadığını sunucu tarafında kontrol etmemiz gerekir. Diğer bir değişle o forma girilen bilgilerin geçerli olup olmadığını doğrulatmalıyız. işte formDogrula (fdo) isimli yeni PHP sınıfım, bu işlemi kolay ve güvenli bir şekilde yapmanızı amaçlıyor.
formDogrula sınıfı nasıl çalışıyor?
Öncelikle aşağıdaki kodlardan oluşan basit bir iletişim formumuz olsun:
<form method="post" name="iletisimFormu" action="formGonder.php">
<p>
<label>Ad ve Soyad:</label> <br />
<input name="adSoyad" type="text" size="45" />
</p>
<p>
<label>E-posta adresi:</label> <br />
<input name="ePosta" type="text" size="45" />
</p>
<p>
<label>Mesaj:</label> <br />
<textarea name="mesaj" rows="5" cols="34"></textarea>
</p>
<p> <button type="submit">Formu Gönder</button> </p>
</form>
bu kodların oluşturduğu formun görüntüsü şöyle olacaktır:

Bu formu sunucu tarafında doğrulatabilmeniz için uzun uzun kodlar yazmanıza, regular expressions (düzenli ifadeler) ile uğraşmanıza gerek yok. Çünkü artık formDogrula (fdo) sınıfı var :
<?php
// formDogrula sınıfını çağır
require 'formDogrula/eb.formDogrula.php';
// formDogrula nesneni oluştur
$fdo = new formDogrula('iletisimFormu');
// kurallar
$fdo->kurallar(
array('adSoyad', 'Ad ve Soyad', 'gerekli|ara_uzunluk[5,25]|htmlspecialchars'),
array('ePosta', 'E-posta adresi', 'gerekli|eposta|max_uzunluk[75]'),
array('mesaj', 'Yorum', 'gerekli|ara_uzunluk[10,1000]|htmlspecialchars')
);
// formu doğrulat
if( ! $fdo->dogrulat() ) {
echo 'Lütfen formu kontrol ediniz. Aşağıdaki hatalar oluştu:';
echo '<ul>';
$fdo->yazHatalar('<li>', '</li>', true);
echo '</ul>';
} else {
echo "Tebrikler. form başarıyla gönderildi.";
}
?>
Yukarıdaki formu “formGonder.php” sayfasına boş olarak gönderirseniz alttaki gibi uyarıyla karşılaşacaksınız:

Gördüğünüz gibi ne kadar kolay. şu form alanından gelen bilgiler 5 ile 25 karakter uzunluğunda olsun, e-posta formatında olsun vs. gibi basit kurallar tanımlayarak iletişim formunu birkaç satır kodla doğruladık. Bu sınıfın içerisinde buna benzer toplam 20 tane farklı kural bulunuyor. Ve bu kurallar eklenti desteği sayesinde istediğiniz sayıda arttırılabilir. Mevcut php fonksiyonlarınızı da kurallar içerisinde kullanabilirsiniz.
Hepsi bu kadar mı?
Tabi ki değil ! Bu sınıf gerçekten burada anlatamayacağım kadar ayrıntılı. O yüzden formdogrula.com altında bu sınıfı anlatmak için ayrı bir web sitesi açtım. Bu web sitesinde formDogrula (fdo) sınıfı ile ilgili oldukça doyurucu bilgilere ulaşabilirsiniz. Sınıfı da yine kendi web sitesinden bilgisayarınıza indirebilirsiniz.
Faydalı olması dileğiyle















Tebrikler. gerçekten güzel bir iş çıkartmışsınız.
teşekkürler Ufuk.
Hayırlı olsun güzel bir işe imza attın
Teşekkürler Yusuf. senin yardımın, desteğin asla yadsınamaz.
Çok güzel bir çalışma yapmışsın çok teşekkürler. Özellikle site tasarımı çok hoş.
@yedincisenol
sağol, beğenmene sevindim.
Tebrikler Erhan. Yine kaliteli bir iş çıkarmışsın (:
Teşekkürler Müjdat.
Geçen sunucutara.com’u açtığında yavaştan tekel olma yolunda gittiğini söylemiştim. Biri seni durdursun Erhan
Çok iyi olmuş hakikaten, eklentilerle daha çok geliştirilip ingilizcesini de bekliyoruz.
Tebrikler. Yine başarılı bir çalışma , yine kaliteli bir içerik…
elinize, aklınıza ve yüreğinize sağlık. yaptığınız ve paylaştığınız işleri beğenmemek elde değil.
Yorumlarınız için teşekkür ederim arkadaşlar
Allah’ına kurban senin be!
Hayırlı olsun.
Tek kelimeyle süper
Elinize sağlık…
Gerçekten güzel bir çalışma yapmışsın.Bunu WordPress’e uygun bir eklenti haline getirebilirsin gerçekten çok fazla kullanılmaya başlanır.
Hayırlı olsun, çok hoş olmuş.
tebrikler dostum..
Çok yararlı bir araç olmuş eburhan ın içeriklerini çok beğeniyorum her şey için teşekkürler Erhan
çok sağolun, teşekkürler.
Teşekkürler
Tam da form doğrulama işlemleri için kod arıyordum. Çok iyi oldu bu teşekkür ederim.
Bu arada siteniz google sayfalarında yerini almış. Form doğrulama diye arattığımda hemen karşıma çıktı…
Ben tam bundan yakınıyordum böyle bişey arıyordum sıkıldım ff hesabımı açtım sende orda yazmıştın..Eline sağlık senin ve diğer emeği geçenlerin (varsa)
Çok güzel bir çalışma olmuş. FriendFeed’den çalışma hakkında ilk bilgileri gördüğümde neler olabileceği hakkında düşündüm ama bu kadar gelişmiş olabileceği aklıma gelmemişti. Özellikle eklenti mantığı çok etkileyici olmuş.
Devamı ve başkalarının da gelmesi dileği ile…
Ellerine sağlık çok yararlı olmuş, kullanacağım formlarımda.
Süper, eline sağlık
Güzel bir çalışma olmuş, tebrik ederim. Kullanım mantığı ve eklenti özelliği güzel olmuş.
Doğrulama yapısını biraz codeigniter frameworkündeki form doğrulamasına benzettim
Uygulamanı daha iyi bir noktaya taşıyabilmen için faydalı olacağı düşüncesiyle aşağıdaki bağlantıyı paylaşıyorum.
http://www.symfony-project.org/forms/1_2/en/
Tekrar, tebrikler
Teşekkürler yorumlar için.
@Yılmaz
bağlantı için ayrıca teşekkürler.
Güzele benziyor. En yakın sürede inceleyeceğim.
guzel bir calisma olmus
elinize saglik
2 adet hatadan bahsetmek istiyorum
1. email dogrulama fonksiyonunda hata var.
regular expression hatali yazilmis.
a%a@deneme.com seklindeki bir emaile onay veriyor
2. hata ise “strlen” fonksiyonunun kullanilmasi.
bunun yerine “mb_strlen” kullanilmali.
cunku turkce karakterlerde, strlen sorun cikarmaktadir.
ornek :
$a = ‘ş’;
echo strlen($a); # 2
echo mb_strlen($a, ‘UTF-8′); # 1
Teşekkürler, gerekli düzenlemeleri yapacağım.
Düzeltmeleri yapıp 1.1 sürümünü yayınladım.
indir sayfasından indirebilirsiniz ve yapılan değişiklikleri öğrenebilirsiniz.
Sizi seviyoruz. Paylaşımınız için teşekkür ederim.
Sen Nebicim Bir insansin ????
Süper isler Cikartiyorsun gercekten
Basarilarinin devamini dilerim
Eline sağlık. Birşey soracağım netscape’i nerden buldun
@S4l1h
netscape’i nerden gördün ya? alttaki bağlantıdan indirebilirsin:
http://browser.netscape.com/releases
ff’de gördüm. sağol ilgin için
Gerçekten güzel bir sınıf. Site de çok hoş belki sana ziyaretçi rekorları kırdırmaz ama işten anlayan adamlar için bulunmaz hint kumaşı. Böyle bir hizmeti babanın hayrına yapmış olman çok güzel
Başarılarının devamını diliyorum…
Tebrikler.
Kardeşim ellerine sağlık. Hani vizyontele’de Deli Emin diyor ya “…. ben bunu düşünmüştüm” diye, işte tam öyle oldum
Böyle güzel bir iş çıkardığın ve faydalı olduğun için tekrar teşekkürler.
Elinize sağlık.iletişim formumda kullanabilirim
Web geliştirme alanında idolümsünüz desem yalan olmayacak.
Kolay gelsin.
Yeni servisiniz hayırlı olsun Erhan bey. Bu çalışmanızda eminimki geniş kitlelerce kullanılacaktır.
Başalarınızın devamını dilerim.
bunu wordpress te kullanabilirmiyiz?
Çok teşekkürler. Çok faydası oldu…
@Osman
WordPress dahil istediğin her yerde kullanabilirsin.
erhan abi,gerçekten çok güzel olmuş ama ben çalıştıramadım!
index sayfama ilk kodu kopyaladım. ondan sonra formgonder.php adlı sayfaya da 2. kodu kopyaladım!
index sayfamda “Formu Gönder”e tıklayınca formgonder.php sayfasına yönlendi!”Codes” bölümüne yazdığım kodlar gözüktü!
@designer
bilgisayarında PHP’nin sorunsuz çalıştığında eminsin değil mi? Çünkü kopyaladığın formDogrula kodları ekranda aynen görünüyorsa, php yapılandırmasında bir eksik olduğunu düşünüyorum.
Tebrik ederim
kullanacağım bunları
@designer
easyPHP kullanmanı tavsiye ederim kaldırıp son sürümünü baştan yükle bence.Bende çalışıyor çünkü.
formDogrula (fdo) sınıfının 1.2 sürümü yayınlandı. Bu sürümle birlikte upload formlarından gelen ($_FILES ile gelen) verileri de kontrol edebilirsiniz.
http://formdogrula.com/indir.html
Yürü be kim tutar seni .
Sayfamın dil seçeneğini iso-8859-9 yapınca aşağıdaki gibi tuhaf harf hataları var nerden kaynaklanıyor acaba?
Sınıftan gelen stringleri yazdırırken problem var ?
————————————————–
Form doğrulanamadı
â?¢Kullanıcı adı uzunluÃ?Ÿu 5 ile 10 arasÃ?±nda olmalÃ?±
�Email adresi ge�§erli bir e-posta adresi de�Ÿil
�Parola uzunlu�Ÿu 6 ile 12 aras�±nda olmal�±
sayfanın başına aşağıdaki kodu eklemeyi dener misin?
header(“Content-Type: text/html; charset=iso-8859-9″);
Sonuç yine aynı…
Tebrikler. Çok güzel bir çalışma olmuş.
çok teşekkürler Erhan. Tam da yeni bir projeye başladığım bu günlerde hızır gibi yetiştin. mükemmel bir çalışma olmuş.
sayın e burhan ne zamandır arıyorum sallama@yokbuadres.yok gibi girilen e mail adreslerini önlemek için o adresin var olup olmadığını uzak sunucudan sorgulayan bir sistem konusunda yardımcı olurmusun eğer yardımcı olursan çok sevinirim iyi çalışmalar