Рейтинг система

otmetky

Registered
Може ли някои да ми каже как ще стане скрипта ако искам всеки да може да гласува по колкото пъти си иска."В момента ми пише вече си гласувал"????
 
Това е скрипта:
<?php
extract($HTTP_GET_VARS);
extract($HTTP_POST_VARS);
$ficdest=explode(".",basename($PHP_SELF));
$ficdest=$ficdest[0].".dat";
$ip = getenv(REMOTE_ADDR);
if(file_exists($ficdest)) {
$compteur=fopen($ficdest, "r");
$old_stats=file($ficdest);
$stats=explode("|", $old_stats[0]);
fclose($compteur);
$new_count=$stats[0];
if ($stats[3] != $ip) {
$new_count +=1;
}
$ip_hit=$ip;
$compteur=fopen($ficdest, "w");
fputs($compteur, "$new_count|$stats[1]|$stats[2]|$ip_hit|$stats[4]");
fclose($compteur);
}
else {
$nouveau_compteur=fopen($ficdest, "w");
fputs($nouveau_compteur, "1|||$ip|");
fclose($nouveau_compteur);
}

if (!empty($envoi)) {
$vote=fopen($ficdest, "r");
$old_stats=file($ficdest);
$stats=explode("|", $old_stats[0]);
fclose($vote);
$nbr_votes=$stats[1];
$moy_votes=$stats[2];
if ($stats[4] != $ip) {
$nbr_votes +=1;
$moy_votes=((($stats[1]*$stats[2])+$note)/$nbr_votes);
}
else { echo "<font face=Verdana size=2 color=red>Вече си гласувал!</font>"; }
$ip_vote=$ip;
$vote=fopen($ficdest, "w");
$new_stats=fputs($vote, "$new_count|$nbr_votes|$moy_votes|$stats[3]|$ip_vote");
fclose($vote);
}

print ("<form method=post>");
$old_stats=file($ficdest);
$stats=explode("|", $old_stats[0]);
if ($stats[2] == 5)
{
$star = "images/5star.gif" ;
}
if ($stats[2]>=1)
{
$star = "images/1star.gif" ;
}
if ($stats[2]>=1.5)
{
$star = "images/15star.gif" ;
}
if ($stats[2]>=2)
{
$star = "images/2star.gif" ;
}
if ($stats[2]>=2.5)
{
$star = "images/25star.gif" ;
}
if ($stats[2]>=3)
{
$star = "images/3star.gif" ;
}
if ($stats[2]>=3.5)
{
$star = "images/35star.gif" ;
}
if ($stats[2] >= 4)
{
$star = "images/4star.gif" ;
}
if ($stats[2] >= 4.5)
{
$star = "images/45star.gif" ;
}
if ($stats[2] >= 5)
{
$star = "images/5star.gif" ;
}
if ($stats[2]<=0)
{
$star = "images/00star.gif" ;
}
print ("<table bordercolor=#99999 cellspacing=0 border=0><td width=50% cellspacing=none cellpadding=none align=middle valign=middle border=1><font size=1 face=Verdana color=#999999>Рейтинг: <img src=\"$star\" alt=\"Average rating: $stats[2]\"> $stats[1] Ratings</td><tr></font>");
echo"<td align=middle valign=middle><input type=radio name=note value=5><font face=arial size=2 color=#99999>Отличен";
echo"<input type=radio name=note value=4>Мн.Добър";
echo"<input type=radio name=note value=3>Добър";
echo"<input type=radio name=note value=2>Лош";
echo"<input type=radio name=note value=1>Трагичен";
print ("<input type=hidden name=envoi value=1> <input type=submit value=Оцени style=background:#ffcc00;border-width:1;Border-color:#ffcc00;></table></form></font></td>");

?>
 
благодаря ти adrian но нямам база данни а само пхп иначе системите са много хубави 10х
 
Код:
<?php
extract($HTTP_GET_VARS);
extract($HTTP_POST_VARS);
$ficdest=explode(".",basename($PHP_SELF));
$ficdest=$ficdest[0].".dat";
$ip = getenv(REMOTE_ADDR);
if(file_exists($ficdest)) {
$compteur=fopen($ficdest, "r");
$old_stats=file($ficdest);
$stats=explode("|", $old_stats[0]);
fclose($compteur);
$new_count=$stats[0];
if ($stats[3] != $ip) {
$new_count +=1;
}
$ip_hit=$ip;
$compteur=fopen($ficdest, "w");
fputs($compteur, "$new_count|$stats[1]|$stats[2]|$stats[4]");
fclose($compteur);
}
else {
$nouveau_compteur=fopen($ficdest, "w");
fputs($nouveau_compteur, "1|||$ip|");
fclose($nouveau_compteur);
}

if (!empty($envoi)) {
$vote=fopen($ficdest, "r");
$old_stats=file($ficdest);
$stats=explode("|", $old_stats[0]);
fclose($vote);
$nbr_votes=$stats[1];
$moy_votes=$stats[2];
if ($stats[4] != $ip) {
$nbr_votes +=1;
$moy_votes=((($stats[1]*$stats[2])+$note)/$nbr_votes);
}
else { echo "<font face=Verdana size=2 color=red>Вече си гласувал!</font>"; }
$ip_vote=$ip;
$vote=fopen($ficdest, "w");
$new_stats=fputs($vote, "$new_count|$nbr_votes|$moy_votes|$stats[3]|$ip_vote");
fclose($vote);
}

print ("<form method=post>");
$old_stats=file($ficdest);
$stats=explode("|", $old_stats[0]);
if ($stats[2] == 5)
{
$star = "images/5star.gif" ;
}
if ($stats[2]>=1)
{
$star = "images/1star.gif" ;
}
if ($stats[2]>=1.5)
{
$star = "images/15star.gif" ;
}
if ($stats[2]>=2)
{
$star = "images/2star.gif" ;
}
if ($stats[2]>=2.5)
{
$star = "images/25star.gif" ;
}
if ($stats[2]>=3)
{
$star = "images/3star.gif" ;
}
if ($stats[2]>=3.5)
{
$star = "images/35star.gif" ;
}
if ($stats[2] >= 4)
{
$star = "images/4star.gif" ;
}
if ($stats[2] >= 4.5)
{
$star = "images/45star.gif" ;
}
if ($stats[2] >= 5)
{
$star = "images/5star.gif" ;
}
if ($stats[2]<=0)
{
$star = "images/00star.gif" ;
}
print ("<table bordercolor=#99999 cellspacing=0 border=0><td width=50% cellspacing=none cellpadding=none align=middle valign=middle border=1><font size=1 face=Verdana color=#999999>Рейтинг: <img src=\"$star\" alt=\"Average rating: $stats[2]\"> $stats[1] Ratings</td><tr></font>");
echo"<td align=middle valign=middle><input type=radio name=note value=5><font face=arial size=2 color=#99999>Отличен";
echo"<input type=radio name=note value=4>Мн.Добър";
echo"<input type=radio name=note value=3>Добър";
echo"<input type=radio name=note value=2>Лош";
echo"<input type=radio name=note value=1>Трагичен";
print ("<input type=hidden name=envoi value=1> <input type=submit value=Оцени style=background:#ffcc00;border-width:1;Border-color:#ffcc00;></table></form></font></td>");

?>
Фактически махнах часта кадето се записва айпито и има още да се маха но сега можеш да гласуваш колкото си искаш.
 
Незнам но този начин на писане на код:


if ($stats[2] >= 5)
{
$star = "images/5star.gif" ;
}
if ($stats[2]<=0)
{
$star = "images/00star.gif" ;
}
.......
.........
......


Е много неправилно.

може да се замени с пример:

switch (true) {
case $stats[2] >= 5:
$star = "images/5star.gif" ;
break;
case $stats[2]<=0:
$star = "images/00star.gif" ;
break;
}

..........
..........
..........
 
А може ли да ми кажете как ще стане като поставя повече от една систама на страница и като гласувам на първата например същото се появява като резултат и на другите.Как да направя така че да работят отделно независимо една от друга на една и съща страница??
 

Back
Горе