det er fordi setcookie er en header funktion - dvs at den skal sendes før nogen som helst indhold sendes til browseren... Altså tjek om der er sat en cookie... hvis ikke skriv i database, hvis der er - skriv ikke i db... derefter sætter du cookien og til sidste henter du det nye resultat fra databasen og printer det... Model:
if ($cookie != "yes") { //SKRIV I DB funktion } setcookie (); //hent count fra db print "hits: $hits";
Det skulle virke hvis du gør som det... vær opmærksom på at du skal sætte en udløbstid på din cookie... læs om setcookie på php.net
Du kan også lave en reload sikker side via en session...
F.eks.:
session_start(); if($_SESSION['counted'] != TRUE) { //Vi skal øge tælleren med 1. $_SESSION['counted'] = true; } echo "Besøgende i dag... $count"; //Skal indeholde noget udtræk fra din DB
jakobdo> Cookien er bedre til dette formål. En sesssion-cookie "expires at end of session", hvilket jo betyder hvis brugeren lukker browservinduet og derefter loader igen, bliver vedkommene talt med i counteren.
lige fedt, ej. Du kan self slette en cookie, men det kræver jo arbejde. hvorimod sessions-cookien sletter sig automatisk.
Synes godt om
Ny brugerNybegynder
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.