registrering af ip og hostname til database?

Tags:    php

<< < 12 > >>
Jeg prøver at få min hp til at registrere ip og hostname på mine besøgende.. og skrive det
i en database.
den skriver godt nok til db men den gør det 2 gange pr gæst? og det er tomme felter den indsætter?

mine globale variabler er


$sesscookie = $_COOKIE['besog'];
$remotehost = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);


og selve funktionen ser således ud


function taelbesoeg() {

if($sesscookie == ""){

$sqlcommand = "INSERT INTO taeller(ipadresse,reverselookup) ";
$sqlcommand .= "VALUES('$remotehost','$hostname')";

domysql($sqlcommand);

setcookie("besog", $remotehost, "", "/");

}
}

Nogen der kan sige mig hvorfor? og hvordan det løses? 50 UP




19 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
en anden god ting at gøre:

<? if($HTTP_HOST != "harlem.dk") { header("Location: http://harlem.dk"); } ?>
<? include($_SERVER['DOCUMENT_ROOT'].'/data/include.php'); ?>
<? if($sesscookie==""){taelbesoeg();}?>

linje 3 kører taelbesoeg som gemmer en cookie, men inden da kar der været to linjeskift, vilket kan forhindre at cookien gemmes, da cookies sendes med headers og der kan ikke tilføjes noget til headers, når de allerede er sendt. brug i stedet:

<? if($HTTP_HOST != "harlem.dk") { header("Location: http://harlem.dk"); }
include($_SERVER['DOCUMENT_ROOT'].'/data/include.php');
if($sesscookie==""){taelbesoeg();}?>

så dine linjeskift ikke skrives i dit HTML-output.



Ok... Hvor mange maskiner er der i netværket? 2?

Det er klart hvis der er 2 maskiner, da de så begge to skal have en cookie, før de bliver registreret. Og derfor bliver ip-adressen logget to gange.

Ellers kan du se om du kan finde den "unikke" ip-adresse for den enkelte maskine. Dette kan gøres på følgende måde:
Fold kodeboks ind/udKode 


Og derefter ligge denne ind i databasen i stedet for... måske virker det..

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



Tror du skal ligge dine "globale" variabler ind i funktionen...
Og er ipadresse og reverselookup varchars(xxx)? eller har du defineret dem som int?
IP-adressen indlæses jo som en streng...

Fold kodeboks ind/udKode 


Måske virker det, men ellers kan du lige poste en besked...

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



Tror du skal ligge dine "globale" variabler ind i funktionen...
Og er ipadresse og reverselookup varchars(xxx)? eller har du defineret dem som int?
IP-adressen indlæses jo som en streng...



jeg har ikke defineret dem som noget som helst... :) det burde php selv kunne finde ud af..

men i databasen står de som tekst



Tror du skal ligge dine "globale" variabler ind i funktionen...
Og er ipadresse og reverselookup varchars(xxx)? eller har du defineret dem som int?
IP-adressen indlæses jo som en streng...



jeg har ikke defineret dem som noget som helst... :) det burde php selv kunne finde ud af..

men i databasen står de som tekst


ja... var også i databasen jeg mente...
Og det virker ikke endnu?

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



Tror du skal ligge dine "globale" variabler ind i funktionen...
Og er ipadresse og reverselookup varchars(xxx)? eller har du defineret dem som int?
IP-adressen indlæses jo som en streng...



jeg har ikke defineret dem som noget som helst... :) det burde php selv kunne finde ud af..

men i databasen står de som tekst

ja... var også i databasen jeg mente...
Og det virker ikke endnu?

jo nu virker det.. dog kan jeg se at alle maskiner i lokalnetværket bliver registrert 2 gange?
og det er ikke deres egen men routerens ip..??



Ok... Hvor mange maskiner er der i netværket? 2?

Det er klart hvis der er 2 maskiner, da de så begge to skal have en cookie, før de bliver registreret. Og derfor bliver ip-adressen logget to gange.
Det lyder som noget sluder da cookien bliver lagret i ens browser. desuden har jeg 8 maskiner i mit lokal netværk.

jeg har sorteret alle interne iper fra nu. men enkelte iper ude fra bliver stadig lagret 2 gange,

Ellers kan du se om du kan finde den "unikke" ip-adresse for den enkelte maskine. Dette kan gøres på følgende måde:
Fold kodeboks ind/udKode 


Og derefter ligge denne ind i databasen i stedet for... måske virker det..

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk





Hvis du besøger siden flere gange og lukker browseren ind i mellem, er det klart at ip'en registreres flere gange, da cookien vil blive slættet når browseren lukker.

ps. Dine indlæg er svære at læse da du roder rundt i quote.



jeg har prøvet at se siden uden at lukke browser og derefter gå direkte til db.

alligevel står ip der 2 gange



Har du husket at slætte de ip-adresser der stod i tabellen i forvejen?



<< < 12 > >>
t