setcookie ("test", "ON",time()+3600*24*30); /* период действия - 30 дней */
if($_COOKIE["TestCookie"]=="ON")
{
// Выводим результаты
}else
{
// юзер еще не голосовал
}
<?
if($_COOKIE["TestCookie"]=="ON") // Т.е. когда чел уже голосовал
{
// Проводишь действия по получении информации из файлов и ничего никуда не пишешь!
}
elseif(IsSet($vote)) // Голосует
{
// Если у тебя пытаются голосовать, то ты увеличиваешь счетчик и устанавливаешь Куки
####################
// !(не забудь, что куки устанавливаются перед любым вывод...если ты хочешь все таки поместить куда хочешь установку кукисов, используй буферизацию)!
setcookie ("test", "ON",time()+3600*24*30); /* период действия - 30 дней */
####################
}
else // ТОлько собирается голосовть:)
{
// Ты подготавливаешь голосование к работе, т.е. тут выбирают ответы для голосования
}
?>
<?
### переменные которые в конфиге настраиваются ###
$cookies_vote='123';
$file_name_vote='txt/vote.txt';
ob_start('ob_gzhandler');
############# Голосование
if(@$_COOKIE['vote']==$cookies_vote):
$file_name=$file_name_vote;
$file=fopen($file_name,'r');
flock($file,LOCK_SH);
$data=file($file_name);
flock($file,LOCK_UN);
fclose($file);
echo'
<TABLE cellpadding="0" cellspacing="0" class="menu" width="252px" border="0">
<TR><TD style="BORDER-BOTTOM: #D03634 1px solid;" colspan="2" class="vote_top">',$data[0],'</TD></TR>';
for($y=1;$y<count($data);$y++):
list($count,$text)=explode(':|||:',$data[$y]);
@$count_all+=$count;
endfor;
for($i=1;$i<count($data);$i++):
list($count,$text)=explode(':|||:',$data[$i]);
@$count_percent=($count/$count_all)*100;
echo'
<TR><TD class="vote">',$text,'</TD><TD class="vote_counter">',$count,'/',round($count_percent, 1),'%</TD></TR>';
endfor;
echo'
<TR><TD style="BORDER-TOP: #D03634 1px solid;" class="vote_down">Всего голосов:</TD><TD style="BORDER-TOP: #D03634 1px solid;" class="vote_counter_all">',$count_all,'</TD></TR>
</TABLE>
<table border="0"><tr><td height="1px"></td></tr></table>';
else:
if(IsSet($_POST['vote'])&&!Empty($_POST['vote'])):
setcookie('vote',$cookies_vote,time()+mktime(0,0,0,13,06,1986)); // Используется буферизация!
$file_name=$file_name_vote;
$data=file($file_name);
$file=fopen($file_name,'a+');
flock($file,LOCK_EX);
ftruncate($file,0);
fputs($file,trim($data[0])."\n");
for($i=1;$i<count($data);$i++):
list($count,$text)=explode(':|||:',$data[$i]);
if($_POST['vote']==$i) $count++;
$vote_text=trim("$count:|||:$text");
fputs($file,"$vote_text\n");
endfor;
fflush($file);
flock($file,LOCK_UN);
fclose($file);
/////////////////////////////Чтение из файла уже изменившегося
$file_name=$file_name_vote;
$file=fopen($file_name,'r');
flock($file,LOCK_SH);
$data=file($file_name);
flock($file,LOCK_UN);
fclose($file);
/////////////////////////////////////// Показ результатов
echo'
<TABLE cellpadding="0" cellspacing="0" class="menu" width="252px" border="0">
<TR><TD style="BORDER-BOTTOM: #D03634 1px solid;" colspan="2" class="vote_top">',$data[0],'</TD></TR>';
for($y=1;$y<count($data);$y++):
list($count,$text)=explode(':|||:',$data[$y]);
@$count_all+=$count;
endfor;
for($i=1;$i<count($data);$i++):
list($count,$text)=explode(':|||:',$data[$i]);
@$count_percent=($count/$count_all)*100;
echo'
<TR><TD class="vote">',$text,'</TD><TD class="vote_counter">',$count,'/',round($count_percent, 1),'%</TD></TR>';
endfor;
echo'
<TR><TD style="BORDER-TOP: #D03634 1px solid;" class="vote_down">Всего голосов:</TD><TD style="BORDER-TOP: #D03634 1px solid;" class="vote_counter_all">',$count_all,'</TD></TR>
</TABLE>
<table border="0"><tr><td height="1px"></td></tr></table>';
else:
$file_name=$file_name_vote;
$file=fopen($file_name,'r');
flock($file,LOCK_SH);
$data=file($file_name);
flock($file,LOCK_UN);
fclose($file);
echo'
<FORM action="" method="POST">
<TABLE cellpadding="0" cellspacing="0" class="menu" width="252px" border="0">
<TR><TD style="BORDER-BOTTOM: #D03634 1px solid;" colspan="2" class="vote_top">',$data[0],'</TD></TR>';
for($i=1;$i<count($data);$i++):
list($count,$text)=explode(':|||:',$data[$i]);
echo'
<TR>
<TD class="vote">
<input style="margin: -1px 0px -1px 0px;" type="radio" value="',$i,'" name="vote">',$text,'
</TD>
<TD class="vote_counter">
???
</TD>
</TR>';
endfor;
echo'
<TR>
<TD style="BORDER-TOP: #D03634 1px solid;" align="center" colspan="2">
<input class="button_email" style="margin: 2px 0px 2px 0px;" type="submit" value="Голосовать">
</TD>
</TR>
</TABLE>
</FORM>
<table border="0"><tr><td height="1px"></td></tr></table>';
endif;
endif;
ob_end_flush();
?>
Тема
0:|||:Ответ1
0:|||:Ответ2
0:|||:Ответ3
0:|||:Ответ4
0:|||:Ответ5
<?
### переменные которые в конфиге настраиваются ###
$cookies_vote='123';
$file_name_vote='txt/vote.txt';
ob_start('ob_gzhandler');
############# Голосование
if(@$_COOKIE['vote']==$cookies_vote):
$file_name=$file_name_vote;
$file=fopen($file_name,'r');
flock($file,LOCK_SH);
$data=file($file_name);
flock($file,LOCK_UN);
fclose($file);
echo'
<TABLE cellpadding="0" cellspacing="0" class="menu" width="252px" border="0">
<TR><TD style="BORDER-BOTTOM: #D03634 1px solid;" colspan="2" class="vote_top">',$data[0],'</TD></TR>';
for($y=1;$y<count($data);$y++):
list($count,$text)=explode(':|||:',$data[$y]);
@$count_all+=$count;
endfor;
for($i=1;$i<count($data);$i++):
list($count,$text)=explode(':|||:',$data[$i]);
@$count_percent=($count/$count_all)*100;
echo'
<TR><TD class="vote">',$text,'</TD><TD class="vote_counter">',$count,'/',round($count_percent, 1),'%</TD></TR>';
endfor;
echo'
<TR><TD style="BORDER-TOP: #D03634 1px solid;" class="vote_down">Всего голосов:</TD><TD style="BORDER-TOP: #D03634 1px solid;" class="vote_counter_all">',$count_all,'</TD></TR>
</TABLE>
<table border="0"><tr><td height="1px"></td></tr></table>';
else:
if(IsSet($_POST['vote'])&&!Empty($_POST['vote'])):
setcookie('vote',$cookies_vote,time()+mktime(0,0,0,13,06,1986)); // Используется буферизация!
$file_name=$file_name_vote;
$data=file($file_name);
$file=fopen($file_name,'a+');
flock($file,LOCK_EX);
ftruncate($file,0);
fputs($file,trim($data[0])."\n");
for($i=1;$i<count($data);$i++):
list($count,$text)=explode(':|||:',$data[$i]);
if($_POST['vote']==$i) $count++;
$vote_text=trim("$count:|||:$text");
fputs($file,"$vote_text\n");
endfor;
fflush($file);
flock($file,LOCK_UN);
fclose($file);
/////////////////////////////Чтение из файла уже изменившегося
$file_name=$file_name_vote;
$file=fopen($file_name,'r');
flock($file,LOCK_SH);
$data=file($file_name);
flock($file,LOCK_UN);
fclose($file);
/////////////////////////////////////// Показ результатов
echo'
<TABLE cellpadding="0" cellspacing="0" class="menu" width="252px" border="0">
<TR><TD style="BORDER-BOTTOM: #D03634 1px solid;" colspan="2" class="vote_top">',$data[0],'</TD></TR>';
for($y=1;$y<count($data);$y++):
list($count,$text)=explode(':|||:',$data[$y]);
@$count_all+=$count;
endfor;
for($i=1;$i<count($data);$i++):
list($count,$text)=explode(':|||:',$data[$i]);
@$count_percent=($count/$count_all)*100;
echo'
<TR><TD class="vote">',$text,'</TD><TD class="vote_counter">',$count,'/',round($count_percent, 1),'%</TD></TR>';
endfor;
echo'
<TR><TD style="BORDER-TOP: #D03634 1px solid;" class="vote_down">Всего голосов:</TD><TD style="BORDER-TOP: #D03634 1px solid;" class="vote_counter_all">',$count_all,'</TD></TR>
</TABLE>
<table border="0"><tr><td height="1px"></td></tr></table>';
else:
$file_name=$file_name_vote;
$file=fopen($file_name,'r');
flock($file,LOCK_SH);
$data=file($file_name);
flock($file,LOCK_UN);
fclose($file);
echo'
<FORM action="" method="POST">
<TABLE cellpadding="0" cellspacing="0" class="menu" width="252px" border="0">
<TR><TD style="BORDER-BOTTOM: #D03634 1px solid;" colspan="2" class="vote_top">',$data[0],'</TD></TR>';
for($i=1;$i<count($data);$i++):
list($count,$text)=explode(':|||:',$data[$i]);
echo'
<TR>
<TD class="vote">
<input style="margin: -1px 0px -1px 0px;" type="radio" value="',$i,'" name="vote">',$text,'
</TD>
<TD class="vote_counter">
???
</TD>
</TR>';
endfor;
echo'
<TR>
<TD style="BORDER-TOP: #D03634 1px solid;" align="center" colspan="2">
<input class="button_email" style="margin: 2px 0px 2px 0px;" type="submit" value="Голосовать">
</TD>
</TR>
</TABLE>
</FORM>
<table border="0"><tr><td height="1px"></td></tr></table>';
endif;
endif;
ob_end_flush();
?>