анкета

dj_e

Registered
Проблема е че тази анкета позволява неограничен брой гласувания
искам да я огранича чрез кукита

Код:
<?php
/*******************************************
  Database query to get poll info 
*******************************************/
include ('poll_conf.php');
// get vote from form
$vote=$HTTP_POST_VARS['vote'];

// log in to database 
if (!$db_conn = @mysql_connect('localhost', 'egdob_polladmin', 'p57bmcz6'))
{
  echo 'Could not connect to db<br />';
  exit;
};
@mysql_select_db('egdob_poll');

if (!empty($vote))  // if they filled the form out, add their vote
{
  $vote = addslashes($vote); 
  $query = "update poll_results
            set num_votes = num_votes + 1
            where candidate = '$vote'";
  if(!($result = @mysql_query($query, $db_conn)))
  {
    echo 'Could not connect to db<br />';
    exit;
  }
};

// get current results of poll, regardless of whether they voted 
$query = 'select * from poll_results';
// connect
$result = mysql_query($query) or die(mysql_error());
$num_results = mysql_num_rows($result);
// calculate total number of votes so far
$total_votes=0;
while ($row = mysql_fetch_object ($result)) 
{
    $total_votes +=  $row->num_votes;
}
mysql_data_seek($result, 0);  // reset result pointer



 echo '<p class="poll"><br>Общо гласували: '.$total_votes.'';
 echo '<br />'.'<br />';
 
 $answer = array( $vote1 , $vote2 , $vote3 );
 for ($i=0; $i < $num_results; $i++)
   {
     $row = mysql_fetch_array($result);
    
     echo htmlspecialchars(stripslashes($row['candidate'])).'. '.$answer[$i];   
    
     echo ' - '.($row['num_votes']);
	 echo '<br />';
//and so on..
  }

?>
 
Чрез бисктвитки не е много добре, защото като ги изтриеш пак си е
ограничен брой гласувания.Иначе номерът става така:
1.Като някой гласува, се генерират бисквитки
2.Преди да покажеш формата за гласуване гледаш дали има бисквтики,
и ако има показваш резултатите.

Хайде успех :?:
 
Добре ама какт става това нагледно ако може щото аз със бисквитки не съм работил досега

а с ИП как става
 
Код:
<?php

$ipaddress = getenv("REMOTE_ADDR");
$vote= $HTTP_POST_VARS["vote"];


if (file_exists("db.inc"))
{
$db= file("db.inc");
$a=$db[0];
$a=str_replace("\n","",$a);
$b=$db[1];
$b=str_replace("\n","",$b);
$c=$db[2];
$c=str_replace("\n","",$c);
}
else
{
$a=0;
$b=0;
$c=0;
}
if (file_exists("ip.inc"))
{
$ip= file("ip.inc");
$n=count($ip);
for ($i=0; $i<$n;$i++)
{
if (eregi($ipaddress,$ip[$i]))
{
echo "You have already voted!<br>Results : <br>It is great! -  ".$a." votes <br>	
					Not really. - ".$b." votes <br>
					It is awful! - ".$c." votes";
exit;
}
}
}
if ($vote==a)
{$a=$a+1;}
if ($vote==b)
{$b=$b+1;}
if ($vote==c)
{$c=$c+1;}

$zapisdb=$a."\n".$b."\n".$c;
$zapisip=$ipaddress."\n";

$fp = fopen ( "db.inc" ,"w");
fwrite($fp, $zapisdb );
fclose($fp);

$fp = fopen ( "ip.inc" ,"a");
fwrite($fp, $zapisip );
fclose($fp);
echo "Thank you for voting!<br>
Results : It is great! -".$a." votes <br>	
					Not really. - ".$b." votes <br>
					It is awful! - ".$c." votes";


exit;;
?>

трябва ти само една форма за гласуване която праща към този файл информация vote и информация за вскяко value="a","b" или "c"

п.п. кодът 100 на 100 работи тъй като го взех директно от един мой сайт
 

Back
Горе