От 2 файла в 1 :)

DrViS

Registered
Значи намерих една анкета тук в уроците обаче искам да я направя след като вече човека е гласувал да му показва резултатите.
Сега са 2 файла. Но за целта ще трябва да е само 1.
Проблема е че записва IP-то на гласувалия (независимо дали е гласувал) и ми казва "Вие вече гласувахте !". След като вляза във файла vote.php и веднага ми записва IP-то. Аз искам да се записва само ако човека е гласувал. Дано сте ме разбрали какво искам. :oops:


Ето и кода

form.php
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
Коя антивирусна е по-добра?<br><br>
<form action="vote.php" method="post">
<input type="radio" name="vote" value="a">
Kaspersky
<br>
<input type="radio" name="vote" value="b">
Norton
<br>
<input type="radio" name="vote" value="c">
Panda
<br>
<input type="submit" value="Гласувай"><br><br>
REZULTATI
</form>
</body>
</html>

vote.php
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
$ipaddress = $_SERVER['REMOTE_ADDR'];
$vote= $HTTP_POST_VARS["vote"];

if (file_exists("ip.inc"))
{
$ip= file("ip.inc");
$n=count($ip);
for ($i=0; $i<$n;$i++)
{
if (eregi($ipaddress,$ip[$i]))
{
$ref = $_SERVER['HTTP_REFERER'];
echo "<center>Вие вече гласувахте !</center>";
echo "<meta http-equiv='refresh' content='1; URL=$ref'>";
exit;
}
}
}

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 ($vote==a)
{$a=$a+1;}
elseif ($vote==b)
{$b=$b+1;}
elseif ($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 'Резултати:<br>';
echo "Kaspersky - <b>".$a."</b> гласа<br>";
echo "Norton - <b>".$b."</b> гласа<br>";
echo "Panda - <b>".$c."</b> гласа<br>";
?>
</body>
</html>
 
Така ?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
Коя антивирусна е по-добра?<br><br>
<form action="" method="post">
<input type="radio" name="vote" value="a">
Kaspersky
<br>
<input type="radio" name="vote" value="b">
Norton
<br>
<input type="radio" name="vote" value="c">
Panda
<br>
<input type="submit" name="submit" value="Гласувай"><br><br>
REZULTATI
</form>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
if(isset($_POST['submit']))
{
$ipaddress = $_SERVER['REMOTE_ADDR'];
$vote= $HTTP_POST_VARS["vote"];

if (file_exists("ip.inc"))
{
$ip= file("ip.inc");
$n=count($ip);
for ($i=0; $i<$n;$i++)
{
if (eregi($ipaddress,$ip[$i]))
{
$ref = $_SERVER['HTTP_REFERER'];
echo "<center>Вие вече гласувахте !</center>";
echo "<meta http-equiv='refresh' content='1; URL=$ref'>";
exit;
}
}
}

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 ($vote==a)
{$a=$a+1;}
elseif ($vote==b)
{$b=$b+1;}
elseif ($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 'Резултати:<br>';
echo "Kaspersky - <b>".$a."</b> гласа<br>";
echo "Norton - <b>".$b."</b> гласа<br>";
echo "Panda - <b>".$c."</b> гласа<br>";
}
?>
</body>
</html>

Може също и това:
<?php
if(!isset($_POST['submit']))
{
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
Коя антивирусна е по-добра?<br><br>
<form action="" method="post">
<input type="radio" name="vote" value="a">
Kaspersky
<br>
<input type="radio" name="vote" value="b">
Norton
<br>
<input type="radio" name="vote" value="c">
Panda
<br>
<input type="submit" name="submit" value="Гласувай"><br><br>
</form>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
} else {
$ipaddress = $_SERVER['REMOTE_ADDR'];
$vote= $HTTP_POST_VARS["vote"];

if (file_exists("ip.inc"))
{
$ip= file("ip.inc");
$n=count($ip);
for ($i=0; $i<$n;$i++)
{
if (eregi($ipaddress,$ip[$i]))
{
$ref = $_SERVER['HTTP_REFERER'];
echo "<center>Вие вече гласувахте !</center>";
echo "<meta http-equiv='refresh' content='1; URL=$ref'>";
exit;
}
}
}

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 ($vote==a)
{$a=$a+1;}
elseif ($vote==b)
{$b=$b+1;}
elseif ($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 'Резултати:<br>';
echo "Kaspersky - <b>".$a."</b> гласа<br>";
echo "Norton - <b>".$b."</b> гласа<br>";
echo "Panda - <b>".$c."</b> гласа<br>";
}
?>
</body>
</html>
 
Да нещо такова искам, искам като някой гласува и да му показва резултатите, без формата за гласуване. И да ги показва докато не му делна IP-то от ip.inc. :)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
Коя антивирусна е по-добра?<br><br>
<form action="" method="post">
<input type="radio" name="vote" value="a">
Kaspersky
<br>
<input type="radio" name="vote" value="b">
Norton
<br>
<input type="radio" name="vote" value="c">
Panda
<br>
<input type="submit" name="submit" value="Гласувай"><br><br>
REZULTATI
</form>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
if(isset($_POST['submit']))
{
$ipaddress = $_SERVER['REMOTE_ADDR'];
$vote= $HTTP_POST_VARS["vote"];

if (file_exists("ip.inc"))
{
$ip= file("ip.inc");
$n=count($ip);
for ($i=0; $i<$n;$i++)
{
if (eregi($ipaddress,$ip[$i]))
{
$ref = $_SERVER['HTTP_REFERER'];
echo "<center>Вие вече гласувахте !</center>";
echo "<meta http-equiv='refresh' content='1; URL=$ref'>";
exit;
}
}
}

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 ($vote==a)
{$a=$a+1;}
elseif ($vote==b)
{$b=$b+1;}
elseif ($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 'Резултати:<br>';
echo "Kaspersky - <b>".$a."</b> гласа<br>";
echo "Norton - <b>".$b."</b> гласа<br>";
echo "Panda - <b>".$c."</b> гласа<br>";
}
?>
</body>
</html>
 
Еми лошото, е че това exit; ти прецаква спира всичко на долу в страницата.
Трябва да промениш някой работи по кода за да премахнеш това exit;

То лесно ще стане, но сега нямам време да го направя ;)

П.П: Това със записването лесно ще стане.
Правиш да проверява дали е избран поне 1 отговор и тогава да прави записа на IP иначе НЕ :)
 
Малко тъпо го направих ама и така става :)
<?php
if(!isset($_POST['submit']))
{
if (file_exists("ip.inc"))
{
$ipaddress = $_SERVER['REMOTE_ADDR'];
$ip= file("ip.inc");
$content=file_get_contents("db.inc");
$explode = explode("<br />",$content);
$n=count($ip);
for ($i=0; $i<$n;$i++)
{
if (eregi($ipaddress,$ip[$i]))
{
$ref = $_SERVER['HTTP_REFERER'];
echo 'Резултати:<br>';
echo "Kaspersky - <b>".$explode[0]."</b> гласа<br>";
echo "Norton - <b>".$explode[1]."</b> гласа<br>";
echo "Panda - <b>".$explode[2]."</b> гласа<br>";
exit;
}
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
Коя антивирусна е по-добра?<br><br>
<form action="" method="post">
<input type="radio" name="vote" value="a">
Kaspersky
<br>
<input type="radio" name="vote" value="b">
Norton
<br>
<input type="radio" name="vote" value="c">
Panda
<br>
<input type="submit" name="submit" value="Гласувай"><br><br>
</form>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
} else {
$ipaddress = $_SERVER['REMOTE_ADDR'];
$vote = $HTTP_POST_VARS["vote"];
if($vote)
{
if (file_exists("ip.inc"))
{
$ip= file("ip.inc");
$n=count($ip);
for ($i=0; $i<$n;$i++)
{
if (eregi($ipaddress,$ip[$i]))
{
$ref = $_SERVER['HTTP_REFERER'];
echo "<center>Вие вече гласувахте !</center>";
echo "<meta http-equiv='refresh' content='1; URL=$ref'>";
exit;
}
}
}

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 ($vote==a)
{$a=$a+1;}
elseif ($vote==b)
{$b=$b+1;}
elseif ($vote==c)
{$c=$c+1;}

$zapisdb=$a."<br />\n".$b."<br />\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 'Резултати:<br>';
echo "Kaspersky - <b>".$a."</b> гласа<br>";
echo "Norton - <b>".$b."</b> гласа<br>";
echo "Panda - <b>".$c."</b> гласа<br>";
} else {
echo "Трябва да изберете отговор";
}
}
?>
</body>
</html>
 
Преправих малко кода,сега показва и процентите :)
Ползвах една картинка от урока на mute за анкетите,надявам се да няма проблеми :)
http://web-tourist.net/project/mute/vote.gif
<?php
if (file_exists("ip.inc"))
{
$ipaddress = $_SERVER['REMOTE_ADDR'];
$ip = file("ip.inc");
$content = file_get_contents("db.inc");
$explode = explode("<br />",$content);
$n = count($ip);
for ($i=0; $i<$n;$i++)
{
if (eregi($ipaddress,$ip[$i]))
{
$all = $explode[0]+$explode[1]+$explode[2];
$procent[0] = round(($explode[0]*100)/$all);
$procent[1] = round(($explode[1]*100)/$all);
$procent[2] = ceil(($explode[2]*100)/$all);
echo "Резултати:<br>";
echo "Kaspersky - <b>".$explode[0]."</b> гласа - $procent[0]% - <img src=\"vote.gif\" style=\"width:$procent[0]; height:9px\" alt=\"\" border\"0\" /><br />";
echo "Norton - <b>".$explode[1]."</b> гласа - $procent[1]% - <img src=\"vote.gif\" style=\"width:$procent[1]; height:9px\" alt=\"\" border\"0\" /><br />";
echo "Panda - <b>".$explode[2]."</b> гласа - $procent[2]% - <img src=\"vote.gif\" style=\"width:$procent[2]; height:9px\" alt=\"\" border\"0\" /><br />";
exit;
}
}
}
if(isset($_POST['submit']))
{
$ipaddress = $_SERVER['REMOTE_ADDR'];
$vote = $_POST['vote'];
if($vote)
{
if (file_exists("db.inc"))
{
$db = file("db.inc");
$a = $db[0];
$a = str_replace("<br />\n","",$a);
$b = $db[1];
$b = str_replace("<br />\n","",$b);
$c = $db[2];
$c = str_replace("<br />\n","",$c);
}
else
{
$a = 0;
$b = 0;
$c = 0;
}
if ($vote== "a")
{
$a=$a+1;
} elseif ($vote== "b")
{
$b=$b+1;
} elseif ($vote== "c")
{
$c=$c+1;
}
$zapisdb = $a."<br />\n".$b."<br />\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 "<meta http-equiv='refresh' content='0; URL='''>";
} else {
echo "Трябва да изберете отговор";
}
} else {
echo '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
Коя антивирусна е по-добра?<br><br>
<form action="" method="post">
<input type="radio" name="vote" value="a">
Kaspersky
<br>
<input type="radio" name="vote" value="b">
Norton
<br>
<input type="radio" name="vote" value="c">
Panda
<br>
<input type="submit" name="submit" value="Гласувай"><br><br>
</form>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>';
}
?>
</body>
</html>
 
Пак благодаря, искам да показва и Общо гласували: гласове :D
Знам, че прекялявам :oops:
 
Замени това :
echo "Резултати:<br>";
echo "Kaspersky - <b>".$explode[0]."</b> гласа - $procent[0]% - <img src=\"vote.gif\" style=\"width:$procent[0]; height:9px\" alt=\"\" border\"0\" /><br />";
echo "Norton - <b>".$explode[1]."</b> гласа - $procent[1]% - <img src=\"vote.gif\" style=\"width:$procent[1]; height:9px\" alt=\"\" border\"0\" /><br />";
echo "Panda - <b>".$explode[2]."</b> гласа - $procent[2]% - <img src=\"vote.gif\" style=\"width:$procent[2]; height:9px\" alt=\"\" border\"0\" /><br />";
exit;

С това :
echo "Резултати:<br>";
echo "Kaspersky - <b>".$explode[0]."</b> гласа - $procent[0]% - <img src=\"vote.gif\" style=\"width:$procent[0]; height:9px\" alt=\"\" border\"0\" /><br />";
echo "Norton - <b>".$explode[1]."</b> гласа - $procent[1]% - <img src=\"vote.gif\" style=\"width:$procent[1]; height:9px\" alt=\"\" border\"0\" /><br />";
echo "Panda - <b>".$explode[2]."</b> гласа - $procent[2]% - <img src=\"vote.gif\" style=\"width:$procent[2]; height:9px\" alt=\"\" border\"0\" /><br />";
echo "Общо гласували - $all";
exit;
 

Back
Горе