chciałem napisać skrypt sondy tak, aby z jednego adresu IP móc oddać tylko jeden głos(ip są zapisywane w pliku). niestety z tego samego ip mozna głosować kilka razy. nie wiem w czym tkwi problem...
Macie kawałek kodu:
<?php
$answs = array(\"Tak\", \"Nie\", \"Nie wiem\"); $fp = fopen(\"ips.dat\", \"r\"); $ips = fgets($fp, 10000
); $takips = explode(\"|\", $ips); foreach($takips As $ip) {
if($ip != $_SERVER['REMOTE_ADDR'] && $ip != \"END\") {
continue;
}
...........kilka linijek niewaznego kodu wykonywanego gdy dojdzie
do END............
if($ip == $_SERVER['REMOTE_ADDR']) {
$fp = fopen(\"ile.dat\", \"r\"); $taken = explode(\",\", $value); $suma = $taken[0] + $taken[1] + $taken[2];
$vot0 = round($taken[0
] / $suma * 100
); $vot1 = round($taken[1
] / $suma * 100
); $vot2 = round($taken[2
] / $suma * 100
); echo \"<table width=147 height=131 cellpadding=0 cellspacing=0 background=9.gif class=sonda><tr><td width=100% class=lightbut colspan=2>Wyniki>/td></tr> <tr><td class=lightbut width=75%>\" . $answs[0] . \"</td><td class=lightbut width=25%>\" . $vot0 . \"%</td></tr>
<tr><td class=lightbut width=75%>\" . $answs[1] . \"</td><td class=lightbut width=25%>\" . $vot1 . \"%</td></tr>
<tr><td class=lightbut width=75%>\" . $answs[2] . \"</td><td class=lightbut width=25%>\" . $vot2 . \"%</td></tr></table>\";
}
}
?>
a tu macie plik ips.dat, z ktorego odczytywane sa IP...
Kod
82.160.49.131|82.160.49.131|END
Chodzi o to, ze warunek $ip == $_SERVER['REMOTE_ADDR'] nie chce się spełnić i skrypt wyświetla ponownie formularz głosowania.....
Z góry dzięki za pomoc....
Ten post edytował dasko 29.11.2004, 18:34:50