Hi
Wij zijn bezig met een hotspot-login-systeem. Hiervoor wordt het ip-adres opgeslagen in een bestand (/etc/squid/ip.list) wat dmv bashscripting uitgelezen wordt door de proxy (squid). Het wegschrijven naar dit bestand lukt; maar er doet zich een anomalie voor.
Stel, ip 172.16.20.80 wordt weggeschreven door php. Bash herkent schijnbaar niet dat ip, want er blijft geredirect worden naar de loginpagina. Als we echter het bestand bewerken adhv nano en zelf de "80" hertypen, met een nieuwe witregel, werkt alles naar believen. Iemand enig idee hoe dat komt?
De rechten worden niet aangepast, idem user/usergroup owners. Er is ook geen visueel verschil in nano. Met php wegschrijven gebeurt door onderstaande functies:
Nota: PHP_EOL is uiteraard ook geprobeerd à la "\n" en "\r\n". Heeft iemand van jullie een idee?
Wij zijn bezig met een hotspot-login-systeem. Hiervoor wordt het ip-adres opgeslagen in een bestand (/etc/squid/ip.list) wat dmv bashscripting uitgelezen wordt door de proxy (squid). Het wegschrijven naar dit bestand lukt; maar er doet zich een anomalie voor.
Stel, ip 172.16.20.80 wordt weggeschreven door php. Bash herkent schijnbaar niet dat ip, want er blijft geredirect worden naar de loginpagina. Als we echter het bestand bewerken adhv nano en zelf de "80" hertypen, met een nieuwe witregel, werkt alles naar believen. Iemand enig idee hoe dat komt?
De rechten worden niet aangepast, idem user/usergroup owners. Er is ook geen visueel verschil in nano. Met php wegschrijven gebeurt door onderstaande functies:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| <? function allowIp($ip, $file) { $ips = file($file, FILE_IGNORE_NEW_LINES); if($ips == null) $ips = array(); if(count($ips) == 0 || array_search($ip, $ips) === false) { $ips[] = $ip; $ips = implode(PHP_EOL, $ips); file_put_contents($file, $ips); } } function trimIp($ip, $file) { try { $ips = file($file); } catch(Exception $e){ echo $e; return; } if(array_search($ip, $ips) !== false) { unset($ips[array_search($ip,$ips)]); $ips = implode(PHP_EOL, $ips); SpoonFile::setContent($file,$ips); //file_put_contents($file, $ips); } } |
Nota: PHP_EOL is uiteraard ook geprobeerd à la "\n" en "\r\n". Heeft iemand van jullie een idee?
