/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Counter med cookie?
Fra : kbisgaard
Vist : 355 gange
100 point
Dato : 22-03-09 18:11

Hej alle
Jeg har med hjælp fra hæftet "Start på PHP" fået lavet mig en lille counter :)
Nu vil jeg bare gerne have, at den kun tæller unikke besøg i stedet for at tælle hver gang man opdagterer siden. Jeg ved at jeg skal have gang i nogen cookies og sådan, men ved ikke helt hvordan jeg skal bære mig ad.
Nogen der kan hjælpe mig?

Her kommer min kode:

Kode
<html>
<body>
<?php
$fil = fopen("counter.txt", "r");
$antal = fgets($fil, 1096);
fclose($fil);
echo $antal++;
$fil = fopen("counter.txt", "w");
fwrite($fil, $antal);
fclose($fil);
}

?>
</body>
</html>


Hilsen Bisgaard

 
 
Kommentar
Fra : ajuul


Dato : 22-03-09 22:17

Hej Bisgaard.
Din kode kunne se således ud:
Kode
<html>
<body>
<?php
if(!array_key_exists("antal",$_COOKIE)) {
setcookie("antal", $antal);
$fil = fopen("counter.txt", "r");
$antal = fgets($fil, 1096);
fclose($fil);
echo $antal++;
$fil = fopen("counter.txt", "w");
fwrite($fil, $antal);
fclose($fil);
} else {
echo $_COOKIE["antal"];
}
?>
</body>
</html>


/Ajuul

Kommentar
Fra : kbisgaard


Dato : 23-03-09 10:32

Det gjorde ikke den store forskel :/

Kommentar
Fra : stone47


Dato : 23-03-09 20:59

jeg havde også lavet en hit counter der talte antal besøg og lavede en sql base der indeholdt en del oplysninger om ip og brouser og andet skal se om jeg kan finde den det er flere servere siden
hilsen steen

Kommentar
Fra : ajuul


Dato : 24-03-09 16:20

Hej igen.
Nej, setcookie-linjen skal flyttes længere ned; ellers går det i ged.
Det burde virke, hvis du flytter den ned under linjen
Kode
echo $antal++;


Undskyld

Ajuul

Kommentar
Fra : kbisgaard


Dato : 24-03-09 18:16

Hjalp heller ikke noget /:

Kommentar
Fra : ajuul


Dato : 25-03-09 08:48

Duer den oprindelige kode overhovedet?
Det kunne jo være, at der i PHP-opsætningen var sat så højt et sikkerhedsniveau, at fwrite() var forbudt?

-ajuul

Kommentar
Fra : kbisgaard


Dato : 25-03-09 10:32

Ja tælleren virker fint, men den tæller hver gang man opdaterer siden. Og det er jo ikke optimalt.

Kommentar
Fra : ajuul


Dato : 25-03-09 12:48

Prøv med session:
Kode
<?php
session_start();
?>
<html>
<body>
<?php
if(!array_key_exists("antal",$_SESSION)) {
$fil = fopen("counter.txt", "r");
$antal = fgets($fil, 1096);
fclose($fil);
echo $antal++;
$_SESSION["antal"]=$antal;
$fil = fopen("counter.txt", "w");
fwrite($fil, $antal);
fclose($fil);
} else {
echo $_SESSION["antal"];
}
?>
</body>
</html>


Kommentar
Fra : ajuul


Dato : 25-03-09 12:54

... eller hvis du bedst kan lide dine cookies:
(dét, der var galt før var, at setcookie (jo) kun kan bruges inden der er skrevet noget til browseren):
Kode
<?php
if(!array_key_exists("antal",$_COOKIE)) {
   $fil = fopen("counter.txt", "r");
   $antal = fgets($fil, 1096);
   fclose($fil);
   setcookie("antal", $antal++);
   $fil = fopen("counter.txt", "w");
   fwrite($fil, $antal);
   fclose($fil);
?>
<html>
<body>
<?php
   echo $antal;
} else {
echo $_COOKIE["antal"];
}
?>
</body>
</html>


Kommentar
Fra : kbisgaard


Dato : 25-03-09 15:13

Det virker desværre stadig ikke :/

Annuller spørgsmålet
Fra : kbisgaard


Dato : 31-03-09 21:37

Jeg har desværre ikke modtaget et gyldigt svar, og annullerer derfor dette spørgsmål

Du har følgende muligheder
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
Søg
Reklame
Statistik
Spørgsmål : 177435
Tips : 31962
Nyheder : 719565
Indlæg : 6407986
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste