|
|
|
| посмотрите в чем ошибка. оригнальный файл прикреплен, а вот так уже я переделал
<?php
if (!file_exists("answer.dat"))
{
touch("answer.dat",666);
$aop = fopen("answer.dat","w");
flock($aop,2);
fputs($aop,"0|0|0|0|0");
flock($aop,2);
fclose($aop);
}
if (!file_exists("ip.dat")) { touch("ip.dat",666); }
if (!file_exists("ua.dat")) { touch("ua.dat",666); }
$answer = "answer.dat";
$anf = file($answer);
$user_agent="";
if (isset($add) && isset($op))
{
$ip = $REMOTE_ADDR;
$fip = file("ip.dat");
$error = null;
for ($i=0;$i<sizeof($fip);$i++) { if ($ip == trim($fip[$i])) { $error = "1"; } }
if (!isset($error) || empty($error) || $error != '1')
{
$fop = fopen("ip.dat","a");
flock($fop,2);
fputs($fop,"$ip\r\n");
flock($fop,3);
fclose($fop);
}
//////////////////////
// здесь дописано
$user_agent=$_SERVER["HTTP_USER_AGENT"];
$fua = file("ua.dat");
$error_ua = null;
for ($i=0;$i<sizeof($fua);$i++) { if ($user_agent == trim($fua[$i])) { $error_ua = "1"; } }
if (!isset($error_ua) || empty($error_ua) || $error_ua != '1')
{
$fop = fopen("ua.dat","a");
flock($fop,2);
fputs($fop,"$fua\r\n");
flock($fop,3);
fclose($fop);
}
////////////////////////
//
}
//////////////////////
// дописано
if (isset($add) && isset($op) && ((isset($error) && !empty($error) && $error == '1') || (isset($error_ua) && !empty($error_ua) && $error_ua == '1') ) ) { echo "Вы уже голосовали"; }
////////////////////////
//
if (isset($see))
{
$file = fopen($answer,"r+t");
$writ=fread($file,filesize($answer));
$writ=explode("|",$writ);
echo "<table><tr>Результаты<tr>";
echo "<table><tr><td align=center>Как вам мой сайт?</td></tr><tr><td height=8></td></tr>";
echo "<tr><td> Супер $writ[0]</td></tr>";
echo "<tr><td>Хорошо $writ[1]</td></tr>";
echo "<tr><td>Пойдет $writ[2]</td></tr>";
echo "<tr><td>Плохо $writ[3]</td></tr>";
echo "<tr><td>Ужасно $writ[4]</td></tr><tr><td height=8></td></tr>";
}
if (isset($add) && isset($op) && ((!isset($error) || empty($error) || $error != '1') || (!isset($error_ua) || empty($error_ua) || $error_ua != '1')) )
{
$file = fopen($answer,"r+t");
$writ=fread($file,filesize($answer));
$writ=explode("|",$writ);
if($op == 1) { $writ[0]=$writ[0]+1; }
if($op == 2) { $writ[1]=$writ[1]+1; }
if($op == 3) { $writ[2]=$writ[2]+1; }
if($op == 4) { $writ[3]=$writ[3]+1; }
if($op == 5) { $writ[4]=$writ[4]+1; }
echo "<table><tr><td align=center>Как вам мой сайт?</td></tr><tr><td height=8></td></tr>";
echo "<tr><td><input type=radio> Супер $writ[0]</td></tr>";
echo "<tr><td><input type=radio> Хорошо $writ[1]</td></tr>";
echo "<tr><td><input type=radio> Пойдет $writ[2]</td></tr>";
echo "<tr><td><input type=radio> Плохо $writ[3]</td></tr>";
echo "<tr><td><input type=radio> Ужасно $writ[4]</td></tr><tr><td height=8></td></tr>";
$writ=implode("|",$writ);
rewind($file);
fwrite($file,$writ);
fclose($file);
}
if (!isset($add) && !isset($op) && !isset($see))
{
echo "<table><form action=$PHP_SELF method=post>";
echo "<tr><td align=center>Как вам мой сайт?</td></tr><tr><td height=8></td></tr>";
echo "<tr><td><input name=op type=radio value=1> Супер</td></tr>";
echo "<tr><td><input name=op type=radio value=2> Хорошо</td></tr>";
echo "<tr><td><input name=op type=radio value=3> Пойдет</td></tr>";
echo "<tr><td><input name=op type=radio value=4> Плохо</td></tr>";
echo "<tr><td><input name=op type=radio value=5> Ужасно</td></tr><tr><td height=8></td></tr>";
echo "<tr><td align=center><input type=submit name=\"add\" value=\":: Ответить ::\"></td></tr>";
echo "<tr><td align=center><input type=submit name=\"see\" value=\":: Результаты ::\"></td></tr></form>";
}
?>
|
по идее второй раз пользователь оставить голос не может так как в файлы записывается его UA и IP. просто в том файле что я вложил идет запись только IP адрес, но мне нужно еще и софт. Почему получается второй раз проголосовать? | |
|
|
|
|
|
|
|
для: 31
(11.08.2006 в 18:56)
| | неправильно в файл ua записывается юзер агент. все время записываетчя Array а не агент. почему так происходит? | |
|
|
|
|
|
|
|
для: 31
(11.08.2006 в 19:30)
| | Это:
замените на это:
fputs($fop, getenv('HTTP_USER_AGENT')."\r\n");
|
| |
|
|
|
|
|
|
|
для: Unkind™
(11.08.2006 в 23:13)
| | Unkind™ спасибо. точно работает все! я уже втрой день парюсь а тут все так просто! | |
|
|
|
|
|
|
|
для: 31
(11.08.2006 в 23:29)
| | Unkind™ а как ты в своих опросах сделал результаты в процентах? | |
|
|
|
|
|
|
|
для: 31
(11.08.2006 в 23:31)
| | А ты кто? ;) | |
|
|
|
|
|
|
|
для: Unkind™
(11.08.2006 в 23:35)
| | Unkind™ да я в wap'е просто на вен форуме бывает сижу ты же там модер тебя знаю. ну если ты не анхост то тогда извиняюсь. ) | |
|
|
|
|
|
|
|
для: 31
(11.08.2006 в 23:51)
| | Да, я это...А ты, наверное, Admin...Раз секретишься так...=)))
<?php
printf("%01.1f%s", $answers['votes']/$allvotes * 100, "%");
//$answers['votes'] - это у меня голоса за ответ
//$allvotes - ну это все голоса, естественно...
?>
|
| |
|
|
|
|
|
|
|
для: Unkind™
(12.08.2006 в 13:33)
| | Unkind™ спасибо) нет я там под ником 31 все время)
куда мне до админа =) | |
|
|
|