Php + Ajax Beğeni (Like) işlemi
08 Nisan 2020
Çalışma; ziyaretçiler için hazırlanmış basit ama kullanışlı bir sistem. İstenirse ufak değişikliklerle uyelik sistemine entegre olarak da kullanılabilir.
Çalışma mantığına gelecek olursak;
Öncelikle veri tabanımızda beğeni yapılacak veriyi tuttuğumuz tabloda "begeni" adında bir alan ekliyoruz
Sonrasında verinin basıldığı gönderinin/sayfanın ziyaretçi tarafından daha önce beğenilip beğenilmediğini anlamak için, o veriye ait cooke var mı kontrol ediyoruz ve buton çıktısını ona göre ekrana basıyoruz.
<?
$co = $veri['postID']; //Çekilen verinin ID değeri
//veri id ile oluşturulmuş cooke var mı?
if (!isset$_COOKIE[$co] == 'ok') { $coy[$co] = 'Beğen'; }
else { $coy[$co] = 'Vazgeç'; }
?>
<span onclick="begen('<?=$co;?>');" id="begen<?=$co;?>">
<i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <?=$coy[$co];?>
<span class="sayi"><?=$veri['begen'];?></span>
</span>
Bu işlemden sonra beğen butonuna bastığımızda çalışacak islem.php yi çalıştıracak fonksiyonu yazıyoruz.
<script>
function begen(id){
$(document).ready(function(){
$('#begen'+id).load('islem.php?func=begen&co='+id, '', function(response, status, xhr) {
if (status == 'error') {
var msg = "yanıl bir şey oldu sanırım :";
$('#begen'+id).html(msg + xhr.status + " " + xhr.statusText);
}
});
});
}
</script>
Şimdi sıra geldi "islem.php"
İlk olarak tekrardan ziyaretçinin veriyi beğenip beğenmediğini kontrol ediyoruz.
Eğer ziyaretçi veriyi daha önce beğenmediyse "begen" alanındaki veriyi +1 arttırıyoruz ve butona "Vazgeç" yazısını basıyoruz, veri daha önce beğenildiyse bu sefer "begen" alanındaki veriyi -1 azaltıyoruz ve butona "Beğen" yazısını basıyoruz.
<?Php
//islem.php
function begen($co){
@baglan();
$islem = mysql_query("SELECT ID,begen FROM tablo WHERE ID='$co'order By ID DESC limit 1");
$veri = mysql_fetch_array($islem);
$toplam = $veri['begen']; //Beğeni Sayısını alıyoruz.
// Cooke ile gönderinin beğenilip beğenilmediğini kontrol ediyoruz.
if (!isset($_COOKIE[$co])) {
$bgn = $toplam+1;
setcookie($co, "ok", time() + (7*60*60*24*10),'/','blog.asmbly.com'); //Beğeni işlemi için cooke yazıyoruz
echo '<i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Vazgeç <span class="sayi">'.$bgn.'</span>';
}else{
$bgn = $toplam+-1;
setcookie($co, "ok", time() - 3600,'/','blog.asmbly.com'); // Beğenmekten Vazgeçtiği için Cookei siliyoruz
echo '<i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Beğen <span class="sayi">'.$bgn.'</span>';
}
@mysql_query("UPDATE tablo SET begen='$bgn' WHERE ID='$co' LIMIT 1") or die(mysql_error());
@durdur();
}
switch($func){
case 'begen' : begen($co); break;
default : 'Cıx Cıx Cıx';
}
?>
Umarım işinize yarar 😊
Beğen25
Yorum Yap
Paylaş
Yorumlar
Mesajı Gönder