Merhaba arkadaşlar. Şu sıralar yeni yeni başladığım jQuery hakkında benimde uğraştığım bazı problemlerin çözümlerini sizinle paylaşmak istedim. Öncelikle Ajax teknolojisi sayesinde nasıl sayfa yenilenmeden veri yollanılır onu göstereceğim. Bu dersimizde Web 2.0 şartlarına uygun olarak islem.php yi içeride çalıştırıcaz. Ayrıca sürekli veri yollayarak yapılan flood için de bir koruma yöntemi yapacağız.

Öncelikle verilerimizi hangi yöntemle yollacağız onu bilmeliyiz. Ben post methodunu kullanacağım. Çünkü get methodu şu an için bize gerekli değil. Yapacağımız örnekte veriler yorumekle.php den islem.php ye post edilecek. Sayfamız hiç yenilemeden verilerimiz mysql e eklenecek.

İlk yapmamız gereken bir form düzeni kurmak. Ben bir nick birde yorum adlı iki tane metin alanı yarattım. Bu işlemden sonra jQuery kütüphanesini içeride açmamız lazım. < title > etiketinin hemen altına şu kodu koyalım;

< script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js">< /script>

Böylece kodlarımız çalışacaktır. Hemen altınada asıl kodlarımızı koyalım;

< script type="text/javascript">
$(document).ready(function(){
$(':submit').click( sonucAl );
});

function sonucAl()
{
$(‘#sonuc’).html(‘hesaplaniyor…’);

$.ajax({
type: ‘POST’,
url: ‘yorumekleislem.php’,
data: $(‘form’).serialize(),
success: function(ajaxCevap) {
$(‘#sonuc’).html(ajaxCevap);
}
});
return false;
}
< /script>

Şimdi arkadaşlar ( yeni başladım hatam varsa affedin :) ) Sayfamız hazır olunca :submit yani butona tıklayınca div id si sonuc olan yere hesaplaniyor yazıyor. işlem de bu sırada yapılıyor. işlemimiz de ilk önce type ile methodu seçiyoruz. Ondan sonra hangi adrese yollanacağını…

Şimdi arkadaşlar burada jQuery in bir fonksiyonunu görüyoruz. Serialize methodu ile aynı get gibi veriler sıralanıyor. Yani bizim nick ve yorum adlı metin alanlarımızı bu hale getiriyor; nick=orayayazilan&yorum=orayayazilan. Bu method sayesinde de Php verileri algılayabiliyor.

Gerisinde islem.php den echo ile yazılanlar çekiliyor. yorumekle.php sadece bu kadar. islem.php de aynen bizim form dan verileri alır gibi düzenleniyor;

$nick = $_POST["nick"];
$yorum = $_POST["yorum"];

Gerisinde işe işlemler yer alıyor. Tabi ki her işlemden sonra da ne olduğunu ekrana basıyoruz;

echo “İşlem tamam”; veya echo “Hata var”;.

Buraya kadar kodlama tamamlandı. Birde yorumekle.php nin uygun bir yerine;

< div id=”sonuc”>< /div>

Bu kodu yerleştiriyoruz ki islem.php den alınan sonuçlar ekrana basılabilsin. Eğer bu işlemleri yaparsanız yorumekle.php den yollanan veriler islem.php de aynı sayfa içerisinde yorumlanabiliyor. Böylece yeni bir sayfaya yönlendirilmiyor.

Bu yöntem ile flood açığı meydana geliyor. Kişi sürekli bir veriyi yollamak için submit yaparsa veriler defalarca ekleniyor. Buna basit bir şekilde karşı gelebiliriz. Kişi butona basınca buton deaktif oluyor. Böylece bir daha işlem görmüyor. Bunuda;

< input type=”submit” name=”Submit” id=”gonder” value=”Gönder” onclick=”this.disabled=true; />

diyerek halledebiliriz. Evet arkadaşlar güzel bir makale oldu :) Bir diğer yazımda görüşmek üzere, hoşçakalın…

İyi günler, iyi çalışmalar…