Hejsan jag använder detta script för att hålla reda på aktiva besökare på min webplats, criptet går ut på att skriva ip numret som besökaren har till en textfil och där den ska vara i 30minuter dvs 1200sekunder, men problmet är att det hela tiden finns en aktiv besökare på sidan eftersom scriptet inte skriver besökarens riktiga ipnummer utan alla som besöker sidan får tilldelat detta ip nummer 127.0.0.1
nedan följer scriptet:
<?//// Räkna antalet "aktiva" besökare på en sajt "just nu".
//// "activetime" anger hur länge (i sekunder) en besökare är "aktiv".
$activetime=1200;
// Läs in IP och tid för tidigare besökare från filen "active.txt".
$fp = fopen("active.txt", 'r');
$noactive=0;while(!feof($fp)){
$activeip[$noactive]=fgets($fp,255);
$timeticks[$noactive]=fgets($fp,255);
$activeip[$noactive]=str_replace("\n","",$activeip[$noactive]);
$timeticks[$noactive]=str_replace("\n","",$timeticks[$noactive]);
if(strlen($activeip[$noactive])>3 && strlen($timeticks[$noactive])>3)
$noactive++;}fclose($fp);
// Skriv tillbaka IP-adress och tider för besökare som laddat sidan
// inom $activetime sekunder.
$fp = fopen("active.txt", 'w');
$newactive=1;for($i=0;$i<$noactive;$i++){
if($timeticks[$i]>time()-$activetime && strlen(strstr($activeip[$i],$REMOTE_ADDR))==0){
fputs($fp,"$activeip[$i]\n$timeticks[$i]\n"); $newactive++; }}
fputs($fp,"$REMOTE_ADDR\n".time()."\n");
fclose($fp);?>
<center><font face="verdana" size="1"> <? echo "Sidan har <b>".$newactive."</b> besökare just nu!"; ?>
Jag ska lägga tillbax de där raderna, jag använder f2s och kan du vara snäll och skriva ut hela koden här som jag ska använda, jag vet inte istället för vad jag ska använda den där koden du gav mig, jag la den istället för remote_addr men dår får jag detta i min textfil på servern :
Prova att byta:
$REMOTE_ADDR
mot
$HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']
Funkar inte det prova att byta mot:
getenv(HTTP_X_FORWARDED_FOR) (då blir andra stället, fputs($fp,getenv(HTTP_X_FORWARDED_FOR)."\n".time()."\n"); naturligtvis.)