Gå til innhold

Treffteller - sesjon og telling av flere sider


Anbefalte innlegg

Jeg bruker følgende php-snutt til å telle klikk på hjemmesidene mine. Treffene blir lagt inn i en MySql-database:

 

if ( isset($_GET['id']) ) 

{
$betingelse = "WHERE artikkelid = '" . $_GET['id'] . "'";
} 

$tilkobling = kobleTil("databasen");
session_start();

if (!session_is_registered("counted"))

{
mysql_query("UPDATE tabellen SET visninger=(visninger + 1) WHERE artikkelid = '" . $_GET['id'] . "'");
session_register("counted");
}

 

Problemet er at kun ett treff blir lagt i databasen. Dersom brukeren klikker seg inn på flere artikler vil kun ett treff bli talt. Jeg kan f.eks. ta bort:

 

session_start();

 

men det fører til at scriptet teller for mye. Med det mener jeg at den kan telle flere ganger på hver artikkel, for eksempel dersom brukeren klikker på et bilde i artikkelen, og deretter går tilbake.

 

Er det mulig å gjøre noe med dette? Er det mulig å registrere artikkelid-en, og få scriptet til å huske det, slik at det ikke blir talt flere ganger?

Lenke til kommentar
Videoannonse
Annonse

Prøv denne

if ( isset($_GET['id']) )

{
$betingelse = "WHERE artikkelid = '" . $_GET['id'] . "'";
}

$tilkobling = kobleTil("databasen");
session_start();
/* session_register er utdatert, og vil ikke virke hvis register_globals er av. Bruk $_SESSION! */
if (!in_array($_GET['id'], $_SESSION['visited']))

{
mysql_query("UPDATE tabellen SET visninger=(visninger + 1) WHERE artikkelid = '" . $_GET['id'] . "'");
$_SESSION['visited'][] = $_GET['id'];
}

Endret av itsmebth
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...