Ik heb een textbestand gemaakt, genaamd banfile.txt, waarin ik de IP's van gebruikers in heb gezet, waarvan ik niet wil dat ze een bepaalde actie uitvoeren. Om te bekijken of de bezoeker z'n IP voorkomt in het banfile.txt, heb ik een functie gemaakt, genaamd isbanned(), die 1 retourneert als het IP wel voorkomt in het bestand en 0 als het IP dus niet voorkomt.
Dit is de code voor die functie:
Het probleem is, dat wanneer ik m'n script uitvoer en de functie aangeroepen wordt, het script continu in het while loopje blijft hangen en ik na 10 seconden dus een foutmelding krijg, omdat het allemaal te lang duurt. Ik heb van alles bekeken, maar ik begrijp echt niet, waarom hij niet gewoon dat while loopje uitgaat.
Kent iemand dit probleem of ziet iemand wat ik fout doe????
Gr.
Dit is de code voor die functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function isbanned() {
$banfile = "banfile.txt";
$localip = $_SERVER['REMOTE_ADDR'];
if (!file_exists("$banfile")) {
$bfp = fopen("$banfile", "a");
fclose($bfp);
}
$bfp = fopen("$banfile","r") or die ("error when opening banfile.txt");
$buffer = fgets($bfp);
while(!feof($bfp) && $buffer != $localip) {
$buffer = fgets($bfp);
}
fclose($bfp);
if ($buffer == $localip) {
return 1;
}
else {
return 0;
}
} |
Het probleem is, dat wanneer ik m'n script uitvoer en de functie aangeroepen wordt, het script continu in het while loopje blijft hangen en ik na 10 seconden dus een foutmelding krijg, omdat het allemaal te lang duurt. Ik heb van alles bekeken, maar ik begrijp echt niet, waarom hij niet gewoon dat while loopje uitgaat.
Kent iemand dit probleem of ziet iemand wat ik fout doe????
Gr.