Teller loopt door...
Om mijn pagina's in te richten maak ik gebruik van één standaard pagina (default.php). Deze pagina bevat alle links etc.. alleen op de plaats waar de informatie van de links komt (bijvoorbeeld foto's) staat een variable ($page) ge-include. Daarnaast heb ik een pagina die de variabele invult (bijvoorbeeld voor de pagina foto's heb ik foto.php en hierin krijgt de variabele $page de waarde van "inc_foto.php". Dan hebben we dus ook nog de pagina die de informatie zelf bevat. Dus bij dit voorbeeld alle foto's (dit is de pagina inc_foto.php).
Nu heb ik een teller script geschreven:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
$dag = date("dmY");
$ip = $_SERVER["REMOTE_ADDR"];
include("connectie.php");
$query = "SELECT * FROM katerkeetteller WHERE ip = '".$ip."'";
$result = mysql_query($query, $db) or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
$bekend = mysql_num_rows($result);
if($bekend == FALSE){
mysql_query("UPDATE katerkeetteller SET enkel = enkel + 1 ") or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
mysql_query("INSERT INTO katerkeetteller (ip) VALUES ('".$ip."')") or die("MySQL fout3: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
}else{
$query = "SELECT * FROM katerkeetteller WHERE id = 1";
$result = mysql_query($query, $db) or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
$rij = mysql_fetch_array($result);
$totaal = $rij["totaal"];
$totaal++;
$query = "UPDATE katerkeetteller SET totaal = $totaal";
$result = mysql_query($query, $db)or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
}
if($rij["dag"] == $dag){
$dagtotaal = $rij["dagtotaal"];
$dagtotaal++;
$query = "UPDATE katerkeetteller SET dagtotaal = $dagtotaal";
$result = mysql_query($query, $db)or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
}else{
$query = "UPDATE katerkeetteller SET dag = $dag, dagtotaal = 1";
$result = mysql_query($query, $db)or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
}
?>
$dag = date("dmY");
$ip = $_SERVER["REMOTE_ADDR"];
include("connectie.php");
$query = "SELECT * FROM katerkeetteller WHERE ip = '".$ip."'";
$result = mysql_query($query, $db) or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
$bekend = mysql_num_rows($result);
if($bekend == FALSE){
mysql_query("UPDATE katerkeetteller SET enkel = enkel + 1 ") or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
mysql_query("INSERT INTO katerkeetteller (ip) VALUES ('".$ip."')") or die("MySQL fout3: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
}else{
$query = "SELECT * FROM katerkeetteller WHERE id = 1";
$result = mysql_query($query, $db) or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
$rij = mysql_fetch_array($result);
$totaal = $rij["totaal"];
$totaal++;
$query = "UPDATE katerkeetteller SET totaal = $totaal";
$result = mysql_query($query, $db)or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
}
if($rij["dag"] == $dag){
$dagtotaal = $rij["dagtotaal"];
$dagtotaal++;
$query = "UPDATE katerkeetteller SET dagtotaal = $dagtotaal";
$result = mysql_query($query, $db)or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
}else{
$query = "UPDATE katerkeetteller SET dag = $dag, dagtotaal = 1";
$result = mysql_query($query, $db)or die("MySQL fout: Incorrecte query. Excuses voor het ongemak, u kunt fouten melden via contact.");
}
?>
Deze include ik dus in de inc_home.php. Alleen het probleem is is dat hij maar blijft doortellen. Op welke link ik ook klik het totaal wordt steeds groter. Nu had ik al begrepen dat dit kwam omdat php de pagina steeds weer opnieuw include. Maar nu is mijn vraag. Hoe los ik dit probleem op.
Hopelijk heb ik mijn probleem voldoende toegelicht. Alvast bedankt.
Niels
Gewijzigd op 01/01/1970 01:00:00 door Niels
Doe dit nadat je iets bij de teller hebt toegevoegd. Dus eerst teller+1, daarna meteen sessie aanmaken. Dan controlleer je met if() of de sessie bestaat, als die bestaat niet opnieuw teller+1, wanneer je de browser afsluit en opnieuw de site bezoekt zal hij controleren of er een sessie is. Die is er dan niet, en telt weer 1 op (teller+1).
Het is volgens mij zeker niet de bedoeling dat je dan maar weer een nieuw topic start.
Als ik mod of admin was ging dit topic er direct weer uit.
Daarbij ben jij geen admin dus dat probleem is ook snel de wereld uit.
Even over mijn probleem. Volgens mij werkt het maar ik ga het nog even onderzoeken...
of anders, hoor ik graag nog van je :).
Ik weet dat het niet mag;) maar ik post ook soms 2 dezelfde topics. Omdat niemand antwoord en je dus de hele tijd moet wachten en niet verder kan;) is soms frustrerend.
Alleen als ik mijn browser afsluit en weer opnieuw opstart komt mijn session niet te vervallen...
Enig idee hoe dit kan...
Hmm eigenlijk heb ik geen idee :| ik heb het namelijk nog nooit meegemaakt. Heb je alle browsers afgesloten?
Maar de meeste mensen werken toch met IE dus als hij het daar mar goed in doet :)
hmm dat is vreemd, ik dacht dat de levensduur van een session altijd stopte nadat je de browser afsloot. Tenzij je um daartoe dwong.