Голосование. Проверка на существование голоса.
<?
$voteOK=0;
$ip=getenv("REMOTE_ADDR");
$file = file("log");
for ($n=0; $n<sizeof($file); $n++) {
$file[$n]=trim($file[$n]);
if ($ip==$file[$n]) //сравниваю IP клиента с Элементом массива файла хронящего IP всех кто проголосовал. IP пишуться на каждой строке по одному.
$voteOK=0; //если равен IP то нельзя
else $voteOK=1; // если нет то можно
}
if ($voteOK==1) {
//сдесь идет создание формы голосования
} else {
//вывожу строку "Вы голосовали"
// и вывожу результаты
?>
собственно говоря проблема в строках:
$voteOK=0; //если равен IP то нельзя
else $voteOK=1; // если нет то можно
дело в том, что в цикле оно продолжает сравнивать даже когда нашло IP Как этого избежать? а то если IPшников много а мой где-то посредине , то оно мне разрешит голосовать, а не разрешит тому кто последний. вот какая трабла!
Цитата:
Originally posted by Zmevius
Я уже не знаю что делать. Помогите!
<?
$voteOK=0;
$ip=getenv("REMOTE_ADDR");
$file = file("log");
for ($n=0; $n<sizeof($file); $n++) {
$file[$n]=trim($file[$n]);
if ($ip==$file[$n]) //сравниваю IP клиента с Элементом массива файла хронящего IP всех кто проголосовал. IP пишуться на каждой строке по одному.
$voteOK=0; //если равен IP то нельзя
else $voteOK=1; // если нет то можно
}
if ($voteOK==1) {
//сдесь идет создание формы голосования
} else {
//вывожу строку "Вы голосовали"
// и вывожу результаты
?>
собственно говоря проблема в строках:
$voteOK=0; //если равен IP то нельзя
else $voteOK=1; // если нет то можно
дело в том, что в цикле оно продолжает сравнивать даже когда нашло IP Как этого избежать? а то если IPшников много а мой где-то посредине , то оно мне разрешит голосовать, а не разрешит тому кто последний. вот какая трабла!
Я уже не знаю что делать. Помогите!
<?
$voteOK=0;
$ip=getenv("REMOTE_ADDR");
$file = file("log");
for ($n=0; $n<sizeof($file); $n++) {
$file[$n]=trim($file[$n]);
if ($ip==$file[$n]) //сравниваю IP клиента с Элементом массива файла хронящего IP всех кто проголосовал. IP пишуться на каждой строке по одному.
$voteOK=0; //если равен IP то нельзя
else $voteOK=1; // если нет то можно
}
if ($voteOK==1) {
//сдесь идет создание формы голосования
} else {
//вывожу строку "Вы голосовали"
// и вывожу результаты
?>
собственно говоря проблема в строках:
$voteOK=0; //если равен IP то нельзя
else $voteOK=1; // если нет то можно
дело в том, что в цикле оно продолжает сравнивать даже когда нашло IP Как этого избежать? а то если IPшников много а мой где-то посредине , то оно мне разрешит голосовать, а не разрешит тому кто последний. вот какая трабла!
А что если выходить из цикла, как только он находит уже записанный такой же IP.
Выход из цикла.