Bezoekersteller telt niet goed :-(
Ik ben een amateur in het bouwen van een site, maar blijf proberen. Nu heb ik vandaag een PHP bezoekersteller ( met gifjes ) geplaatst op mijn site, hij doet het goed, alleen zag ik dat wanneer ik van de index naar een onderliggende pagina ga en ik kom weer terug op mijn homepage dan telt hij er weer een bezoeker bij. Dat is niet de bedoeling toch? Kan iemand mij vertellen hoe ik dit kan oplossen?
Tnx
Een amateur, maar wel een volhouder
Werk je met een database? Zo ja, welke database? PostgreSQL? Zet dan bv. een unique-constraint op de kolom van het ip-adres (datatype INET), de datum (van het datatype DATE) en het pagina-id (type INTEGER ligt voor de hand) om per dag unieke bezoekers te registeren. Een INSERT-query zal dan keurig mislukken, precies zoals het hoort.
Tellen van het aantal bezoekers op een pagina doe je met een query met daarin COUNT(), dat doe je dus ergens anders.
Maar goed, het is een raadplaatje, niemand die enig idee heeft hoe jouw systeem eruit ziet.
Code (php)
1
2
3
4
5
2
3
4
5
<frameset border="1" frameborder="no" framespacing="0" rows="120,*,25">
<frame name="top" noresize scrolling="no" src="files/start/top.php">
<frame name="midden" noresize scrolling="yes" src="files/start/main.php">
<frame name="onder" noresize scrolling="no" src="files/start/onder.php">
</frameset>
<frame name="top" noresize scrolling="no" src="files/start/top.php">
<frame name="midden" noresize scrolling="yes" src="files/start/main.php">
<frame name="onder" noresize scrolling="no" src="files/start/onder.php">
</frameset>
Elke frame heeft een naam(name=) en een source(filename.html/php)
Plaats nu je teller in het onderste frame en als je vanuit je site terug verwijst naar je hoofdpagina(home) verwijs dan naar het frame met de naam die je midden frame is. zoals in bovenstaand voorbeeld.
Je schrijft dat je amateur bent, dan hoop ik dat je weet wat je met frames kunt doen.
Gewijzigd op 01/01/1970 01:00:00 door Paul
@Paul, een grote NEE. Alles behalve een frameset. Die zijn niet meer van deze tijd.
Quote:
Zoals ik al zij, ik ben een leek, kunnen jullie hier iets mee.
Ik heb dit gekopieerd van een vorige site, dus please keep it simpel.
TNX
Ton
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
//Controleren of teller.txt bestaat, zo niet file aanmaken:
if (file_exists("teller.txt")) {
$bestand = fopen("teller.txt", "r+"); // Bestand openen
$telling = fgets($bestand, 6); // Tellerstand lezen
$telling++; // Stand verhogen met 1
rewind($bestand); // Pointer terugzetten
fwrite($bestand, $telling, 6); // Stand wegschrijven
fclose($bestand); // Bestand sluiten
} else {
$bestand = fopen("teller.txt", "w"); // Bestand openen
$telling = "1"; // Stand op 1 zetten
fwrite($bestand, $telling, 6); // Stand wegschrijven
fclose($bestand); // Bestand sluiten
}
// Telling vullen met voorloopnullen:
$telling = sprintf("%05d", $telling);
// Teller samenstellen uit afbeeldingen:
$teller = "";
for ($i = 0; $i < 5; $i++) {
$teller .= '<img alt="" align="absmiddle" border="0" src="' . substr($telling, $i, 1) . '.gif">';
}
// Teller weergeven:
echo '<div align="center">';
echo $teller;
echo '</div>';
?>
//Controleren of teller.txt bestaat, zo niet file aanmaken:
if (file_exists("teller.txt")) {
$bestand = fopen("teller.txt", "r+"); // Bestand openen
$telling = fgets($bestand, 6); // Tellerstand lezen
$telling++; // Stand verhogen met 1
rewind($bestand); // Pointer terugzetten
fwrite($bestand, $telling, 6); // Stand wegschrijven
fclose($bestand); // Bestand sluiten
} else {
$bestand = fopen("teller.txt", "w"); // Bestand openen
$telling = "1"; // Stand op 1 zetten
fwrite($bestand, $telling, 6); // Stand wegschrijven
fclose($bestand); // Bestand sluiten
}
// Telling vullen met voorloopnullen:
$telling = sprintf("%05d", $telling);
// Teller samenstellen uit afbeeldingen:
$teller = "";
for ($i = 0; $i < 5; $i++) {
$teller .= '<img alt="" align="absmiddle" border="0" src="' . substr($telling, $i, 1) . '.gif">';
}
// Teller weergeven:
echo '<div align="center">';
echo $teller;
echo '</div>';
?>
Paul schreef op 25.01.2009 20:40:
En omdat het een "aparte" pagina is, komen er geen dubbele cijfers meer? Héél bijzonder...Maak gebruik van een frameset om daarmee een aparte pagina te maken met je teller.
Ps. Het is inmiddels 2009, frames zijn echt nog iets van de vorige eeuw.
GaMer13 schreef op 25.01.2009 20:41:
@Paul, een grote NEE. Alles behalve een frameset. Die zijn niet meer van deze tijd.
Is een keuze , Maar het zal je verbazen hoeveel er nog mee gewerkt wordt.