Avatar billede -kenner- Nybegynder
11. maj 2005 - 20:18 Der er 4 kommentarer og
1 løsning

Besøgstæller med cookie og gemmer i mysql

Hej eksperter,

Jeg skal have lavet en besøgstæller, som tilføjer 1 til antallet af besøg, hvis der ikke er en cookie, og hvis der er en, så skald en ikke tilføje.

Når der er lagt 1 til besøgstallet, som ligger i databasen, så skal det gemmes i databasen igen.

Håber i kan hjælpe!

mvh Kenenth
Avatar billede -kenner- Nybegynder
11. maj 2005 - 22:36 #1
Jeg fandt denne kode i et andet spørgsmål her på Eksperten. Jeg har ikke lige testen den, men det var en accepteret svar, så jeg går ud fra at den virker, men det jeg gerne vil have hjælp til at sætte den i en funktion, så det kan gøres med flere sider, og cookiesne skal jo være unikke, fra side til side, så de ikke bliver blandet sammen.

Det skal gøres ud fra dette arrey. og id-tallet bliver hentet med $titel[$taller], fordi funktionen hedder counter($taller).

$titel[Home] = "1";
$titel[Mig] = "2";
$titel[Familie] = "3";
$titel[Venner] = "4";
$titel[Galleri] = "5";
$titel[Karate] = "6";
$titel[Ansoegninger] = "7";
$titel[Kontakt] = "8";

Databasen:
CREATE TABLE hits (
  id int(11) DEFAULT '0' NOT NULL auto_increment,
  hits int(11) DEFAULT '0' NOT NULL,
  PRIMARY KEY (id)
);
Koden:
$counter=mysql_query("SELECT hits FROM hits");
while($count=mysql_fetch_array($counter)) {
$hits=$count[hits];
}
if ($HTTP_COOKIE_VARS[hascount] != "ok") {
$hits++;
$updatecounter="UPDATE hits SET hits='$hits' WHERE id = '1'";
$result = mysql_query($updatecounter) or die(mysql_error());
SetCookie("hascount", "ok", time()+3600);
}

//  SetCookie("single_hits", "ok", time()+3600);
if (!$HTTP_COOKIE_VARS["single_hits"])
{
  if (!$HTTP_COOKIE_VARS["this_hits"])
  {
    $single_hits_now = 1;
    SetCookie("single_hits", "ok", time()+3600);
    SetCookie("this_hits", $single_hits_now);
  } else {
    $single_hits_now = $HTTP_COOKIE_VARS["this_hits"];
    $single_hits_now++;
    SetCookie("single_hits", "ok", time()+3600);
    SetCookie("this_hits", $single_hits_now);
  }
}
Avatar billede -kenner- Nybegynder
12. maj 2005 - 22:20 #2
Hmm.. Det lader ikke rigtig til at der er nogen, som kan hjælpe..
Avatar billede -kenner- Nybegynder
12. maj 2005 - 22:35 #3
Min nuværende kode ser sådan ud, men den tæller jo som sagt ikke unikke besøg, og cookies er ikke min stærke side:

function counter($taller){
$titel[Home] = "1";
$titel[Mig] = "2";
$titel[Familie] = "3";
$titel[Venner] = "4";
$titel[Galleri] = "5";
$titel[Karate] = "6";
$titel[Ansoegninger] = "7";
$titel[Kontakt] = "8";

$besoeg = mysql_query ("SELECT * FROM besoeg WHERE id =$titel[$taller]") or die (mysql_error());
$row = mysql_fetch_array($besoeg);
$antal = $row['antal'] + 1;
//ændre til det nye besøgstal
mysql_query("UPDATE besoeg SET antal='$antal' WHERE id=$titel[$taller]") or die (mysql_error());

$nyt_antal = $row['antal'] + 1;

if ($titel[$taller] == $titel[Home]){
    echo "Besøg: $nyt_antal";
    } else{
echo "Visninger: $nyt_antal";
    }
}


?>
Avatar billede -kenner- Nybegynder
12. maj 2005 - 22:35 #4
Indlægget: 12/05-2005 22:35:08, var for at i kan se hvordan jeg vil gemme det i databasen..
Avatar billede -kenner- Nybegynder
12. maj 2005 - 23:11 #5
Jeg lukker dette spørgsmål pga. manglende svar, og fordi jeg har fået af vide at session egner sig bedere til mit formål..
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