Php + Ajax Beğeni (Like) işlemi

08 Nisan 2020
Bu yazımda kendi blogum için hazırladığım cooke kontrollü beğeni fonksiyonunu sizlerle paylaşmaya çalışacağım.

Ç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ğen6 Yorum Yap Paylaş

Yorumlar



Mesajı Gönder
  • Blog
  • Çalışmalar
  • İletişim

Kategoriler

  • Kişisel
  • Güncel
  • Mizah
  • İnternet
  • Programlama
  • Kişisel Bakım

Beğenilenler

  • Akşamın Kısmeti
  • Gökten dolu değil bildiğin buz yağdı
  • Kendime Söylediğim Bazı Yalanlar
  • Bu gün benim Günüm
  • Hastayım yine :/

Instagram

Twitter

  • yahu arkadaş babam ve oğlumdaki sahneyi diziye koymak kimin fikriydi :D #ZaferGünü
  • RT @yeninesiltv: Ön patileri olmayan kedisi için yaptığı mama kabını tanıtırken duygulanan güzel yürekli insan.. https://t.co/Qo4f4DwvBh
  • Tam da tahmin ettiğim gibi oldu, hemde hiç uzatılmadan 😏 Belliydi zaten kabul görmeyeceği. İletişim başlanlığı açık… https://t.co/wlhJOkM5JB
  • Eskilerin bir lafı var "dostlar alışverişte görsün" diye, göstermelik bir istifa gibi geldi, hadi hayırlısı
  • @Medyanin50Tonu @nihatsirdar Bu çok iyydi ya 😂🤣
  • Enfekte olma konusunda üzerine tez yazılacak bir milletiz 🤕 #SOKAĞACIKMAYASAĞI
  • RT @nihatsirdar: 2 saat önceden sokağa çıkma yasağı ilan edip detay açıklamamak dahice gerçekten.
  • @Medariiftihar Birşeyi eleştirebilmek için daha iyisini yapıyor olmanız lazım, ayrıca eleştirlerin yıkıcı değil yap… https://t.co/AqOsQucfgG
  • RT @Mrt_Ongun: İBB Başkanı Ekrem İmamoğlu’na yönelik yapılan kumpası ve trol organizasyonunu verilerle deşifre ettik. Buna rağmen hala inan…
  • @AFADBaskanlik Kolaymış 😁 https://t.co/gRkIdp1h1c

Benzer Yazılar

PHP (Personal Home Page) Nedir

Assembly Nedir?

Sayfalar

Kategoriler

Son Karalamalar

Tüm hakları saklıdır (biz de bulamadık :/) © 2017 Asmbly Idea