PHP- Ajax Star Rating Bar

Bu dersimizde  Ajax Star Rating Bar ‘ile videolar, resimler, user profilleri vb. içeriklere  Star Rating ile oylama yapmayı ögreniyoruz. Örnegimizde ilk olarak star veri tabanındaki star tablosundaki sutunlara id, toplam puan, toplam kullanılan oy sayısı ve birden fazla oylamayı önlemek için user_ips tablo alanları oluyor. Bunlar ek proje dosyalarında yer almakta.İlk olarak veri tabanına bakıyoruz veri tabanında böyle bir id yok ise oluşturuyor ve üzerinde güncelleme yapıyoruz, eğer varsa direk olarka üzerinde oylama (update) yapmasını sağlıyoruz. Örnegimizde id 1 ise dedik bunu daha geniş çalışmalarda: Örneğin bir fotograf sitesinde her bir fotografın id sine görede yapabiliriz. Bu global olarak kullancağımız ve seçtiğimizde sadece o resmin Star Rating’i üzerine oylama yapmamızı sağlaması için id yi bir session a atıyarakta işlemler yapabilriz. Aşagıda projeye ait kodlar yer almaktadır (db.php ) . Diğer proje dosyaları ek’te yer almaktadır

Proje Dosyaları


< ?php

header("Cache-Control: no-cache");

header("Pragma: nocache");

require('_config-rating.php');

// get the db connection info

//getting the values

$vote_sent = preg_replace("/&#91;^0-9&#93;/","",$_REQUEST&#91;'j'&#93;);

$id_sent = preg_replace("/&#91;^0-9a-zA-Z&#93;/","",$_REQUEST&#91;'q'&#93;);

$ip_num = preg_replace("/&#91;^0-9\.&#93;/","",$_REQUEST&#91;'t'&#93;);

$units = preg_replace("/&#91;^0-9&#93;/","",$_REQUEST&#91;'c'&#93;);

$ip = $_SERVER&#91;'REMOTE_ADDR'&#93;;

$referer  = $_SERVER&#91;'HTTP_REFERER'&#93;;

if ($vote_sent > $units)

die("Sorry, vote appears to be invalid.");

// kill the script because normal users will never see this.

//connecting to the database to get some information

$query = mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='1' ") or die(" Error: ".mysql_error());

$numbers = mysql_fetch_assoc($query);

$checkIP = unserialize($numbers['used_ips']);

$count = $numbers['total_votes'];    //how many votes total

$current_rating = $numbers['total_value'];   //total number of rating added together and stored

$sum = $vote_sent+$current_rating;

// add together the current vote value and the total vote value

$tense = ($count==1) ? "vote" : "votes";

//plural form votes/vote// checking to see if the first vote has been tallied

// or increment the current number of votes($sum==0 ? $added=0 : $added=$count+1);// if it is an array i.e. already has entries the push in another value((is_array($checkIP)) ? array_push($checkIP,$ip_num) : $checkIP=array($ip_num));$insertip=serialize($checkIP);//IP check when voting$voted=mysql_num_rows(mysql_query("SELECT used_ips FROM $rating_dbname.$rating_tableName WHERE used_ips LIKE '%".$ip."%' AND id='1' "));if(!$voted) {     //if the user hasn't yet voted, then vote normally...if (($vote_sent >= 1 &amp;&amp; $vote_sent < = $units) &amp;&amp; ($ip == $ip_num)) { // keep votes within range$update = "UPDATE $rating_dbname.$rating_tableName SET total_votes='".$added."', total_value='".$sum."', used_ips='".$insertip."' WHERE id=1 ";$result = mysql_query($update);}header("Location: $referer"); // go back to the page we came fromexit;} //end for the "if(!$voted)"?>

8 thoughts on “PHP- Ajax Star Rating Bar

  • ellerine sağlık
    ama bunu altında bir tane line var onu bi türlü silemedim
    yardımcı olursan sevinirim

  • Merhaba, bnim bir sitem var, şirketler kaydoluyor. Mesela her şirket profiline star rating koymak istiyorum, ama birisine oy verince diğer hepsinde geçerli oluyor. Bu sorunu nasıl çözebilirim yukarıda anlatmışsınız ama anlamadım..

  • Şu HATAYI ALIYORum :
    Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘root’@’localhost’ (using password: NO) in /home/atakan/public_html/yazityapim/_config-rating.php on line 16
    Error connecting to mysql

    birde sonda verdiğiniz kodu nereye yapıştıracağız?

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir