Avatar billede mtrolle Nybegynder
07. juni 2005 - 16:31 Der er 7 kommentarer og
1 løsning

Underlig resultat i $_SERVER['REQUEST_URI']

Hej.

Jeg sidder med et lille statistik script. Jeg tæller unikke bruger i MySQL med en række pr. unikke bruger og herunder opdateres ved hvert sideskift.

Ved inserts (altså første besøg fra denne besøgende) sætter jeg felterne `ind` og `ud` til $_SERVER['REQUEST_URI'].
Ved updates (altså ny sidevisning) sætter jeg `ud` til $_SERVER['REQUEST_URI'].

Jeg oplever bare noget mystisk i mine statistikker. Nogle gange er `ind`=/favicon.ico og ellers generelt bare /
I ud oplevere jeg ofte alle mulige forskellige stier på billeder osv. som jeg bruger i sidens design.

Mit statistik script bliver kørt som noget af det første på siden og inden jeg printer nogen former for data.

Nogen der ved hvorfor det sker og hvad jeg kan gøre?
Avatar billede sungdk Nybegynder
07. juni 2005 - 18:13 #1
Du skal da hellere bruge http_ref eller php_self?
Avatar billede mtrolle Nybegynder
07. juni 2005 - 18:53 #2
ref er hvorfra man kommer jo...
$_SERVER['PHP_SELF'] vil kunne klare det, men hvorfor virker REQUEST_URI ikke?
Avatar billede mtrolle Nybegynder
07. juni 2005 - 18:54 #3
Men smid et svar, bruger bare PHP_SELF så... :)
Avatar billede mtrolle Nybegynder
07. juni 2005 - 20:13 #4
Hov nej vent :) Nu ved jeg, hvorfor jeg ikke brugte PHP_SELF :)
Jeg inkludere indhold i mit index. Dvs. med PHP_SELF får jeg kun /index.php
Men i virkeligheden er det måske index.php?s=guide der bliver vist.

Derfor REQUEST_URI
Avatar billede mtrolle Nybegynder
07. juni 2005 - 20:35 #5
Mit script er således:
    if(!$_SESSION['statistik']) {
        mysql_query("INSERT INTO `statistik_pageviews` (`ind`,`ud`,`ref`) VALUES ('" . $_SERVER['REQUEST_URI'] . "','" . $_SERVER['REQUEST_URI'] . "','" . $_SERVER['HTTP_REFERER'] . "')");
        $_SESSION['statistik'] = mysql_insert_id();
        echo'Du har fået tildelt statistik-id\'et: ' . $_SESSION['statistik'];
    } else {
        mysql_query("UPDATE `statistik_pageviews` SET `pages`=`pages`+'1', `ud`='" . $_SERVER['REQUEST_URI'] . "' WHERE `id`='" . $_SESSION['statistik'] . "'");
        echo'Din statistik er blevet opdateret under id\'et: ' . $_SESSION['statistik'];
    }

Jeg bruger sessions for at kunne tælle unikke besøg, ikke brugere, da jeg har det til at virke fint via ip og browser ved siden af.
Avatar billede sungdk Nybegynder
07. juni 2005 - 20:45 #6
Jeg foreslog http_ref, pga. jeg ikke lige kendte til hvordan du havde lavet dit statistik-system.

Men du kan evt. prøve at kombinere det med QUERY_STRING.

Desuden er alle reserverede variables her: http://dk.php.net/reserved.variables
Avatar billede mtrolle Nybegynder
07. juni 2005 - 20:57 #7
Jamen det sjove er jo bare, at nu har jeg kørt det statistik script nogen tid.
Det resultere ofte /favicon.ico fx, selvom denne fil aldrig er i berøring af PHP jo.
Når jeg i samme fil som laver mine statistikker under det ovenstående script selv skriver echo $_SERVER['REQUEST_URI'], så printer den det rigtige...
Avatar billede mtrolle Nybegynder
07. juni 2005 - 21:22 #8
Fandt fejlen :)
dum fejl faktisk, men forholdvis uskyldig.
Grunden til det hele har været et problem er, at de filer den har lavet statistik på, selvom de ikke rør PHP i virkeligheden er fejlmeddelelser, som også bliver vist på forsiden...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester