|
| 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
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 :/
| |
| Du har følgende muligheder | |
|
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
| |
|
|