For a logging system that I've been writing I came up with a way to asign
a unique id number to every IP address that visits the site. What I do
is append every *new* IP to a new line in a file (ips.txt). Then when I
have an IP and need the id I file() the ip log to put it in an array,
array_flip() it to make the IP the key and the index the value. Then the
ID is dataArray[$ip] + 1. The +1 is so there isn't an IP with the ID of
0. When I have the id and need the IP I do the same thing except no
array_flip and subtract 1 from the ID before dataArray[$id]. This has
been working fine throughout the site in testing except in one spot.
What I have is the IP and what I need is the ID. This is what is done:
// Use IP address to get id
function getId ($ip) {
$ipData = file('idData/ips.txt');
$ipData = array_flip($ipData);
$id = $ipData[$ip] + 1;
return $id;
}
But for some (and only some) IPs this won't work. So for debugging I
printed the array, the flipped array, the ip, $ipData[$ip] and $id. The
first IP will work fine, like this:
Array (
[0] => 172.170.69.74
[1] => 172.141.183.231
[2] => 172.137.79.102
[3] => 172.151.144.242
[4] => 172.150.212.129
[5] => 172.158.154.92
) // correct array
Array (
[172.170.69.74 ] => 0
[172.141.183.231 ] => 1
[172.137.79.102 ] => 2
[172.151.144.242 ] => 3
[172.150.212.129 ] => 4
[172.158.154.92] => 5
) // correct flipped
172.137.79.102 // correct ip
2 // correct $ipData[$ip]
3 // correct $id
But then it will go and do something like this:
Array (
[0] => 172.170.69.74
[1] => 172.141.183.231
[2] => 172.137.79.102
[3] => 172.151.144.242
[4] => 172.150.212.129
[5] => 172.158.154.92
) // correct array
Array (
[172.170.69.74 ] => 0
[172.141.183.231 ] => 1
[172.137.79.102 ] => 2
[172.151.144.242 ] => 3
[172.150.212.129 ] => 4
[172.158.154.92] => 5
) // correct flipped
172.151.144.242 // correct ip
// complete nothingness where $ipData[$ip] should equal 3
1 // wrong $id, should be 4
I have been trying to figure this out for three days and have come up
with nothing. Where is the function going wrong?
--
Kyle
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php