Proč mi nefunguje "like" script
Napsal: 16 říj 2011 21:40
čau napsal jsem si tento script, který zapíše jeden hlas do souboru bud plus nebo minus a je to udělany aby to šlo jen jednou na IP
podle mě je chyba ve funkci mozek() > foreach, že to provede akci, ikdyž už jedna IP splnila podmínky (nesplnila)
Kód: Vybrat vše
<?php
function pricteni($soubor_plus, $soubor_minus)
{
$start = "1";
if ($_POST["plus"] == TRUE)
{
if (file_exists($soubor_plus))
{
$old_plus = file_get_contents($soubor_plus);
file_put_contents($soubor_plus, ++$old_plus, LOCK_EX);
}
else if (!file_exists($soubor_plus))
{
file_put_contents($soubor_plus, $start, LOCK_EX);
}
}
else if ($_POST["minus"] == TRUE)
{
if (file_exists($soubor_minus))
{
$old_minus = file_get_contents($soubor_minus);
file_put_contents($soubor_minus, ++$old_minus, LOCK_EX);
}
else if (!file_exists($soubor_minus))
{
file_put_contents($soubor_minus, $start, LOCK_EX );
}
}
}
function mozek($ip_soubor)
{
$ip = $_SERVER['REMOTE_ADDR'];
if (file_exists($ip_soubor))
{
$data_ip = file_get_contents($ip_soubor);
$ips = explode("\n", $data_ip);
foreach ($ips as $one_ip )
{
if ($one_ip == $ip)
{
echo "Nemůžeš dále hlasovat";
}
else if ($one_ip != $ip)
{
pricteni("plus.php","minus.php");
file_put_contents($ip_soubor, "\n".$ip.$data_ip, LOCK_EX);
}
}
}
else if (!file_exists($ip_soubor))
{
pricteni("plus.php", "minus.php");
file_put_contents($ip_soubor, "\n".$ip, LOCK_EX);
}
}
function klik()
{
if ($_POST["plus"] == TRUE)
{
mozek("ips.php");
}
else if ($_POST["minus"] == TRUE)
{
mozek("ips.php");
}
}
klik();
?>
<html>
<body>
<center>
<form method="post" action="test_like.php">
<input name="plus" type="submit" value="LIKE">
<br>
<input name="minus" type="submit" value="DISLIKE">
</form>
</center>
</body>
</html>
podle mě je chyba ve funkci mozek() > foreach, že to provede akci, ikdyž už jedna IP splnila podmínky (nesplnila)