Bezoekersteller laten weergeven op pagina ?
Bv: '... mensen hebben deze pagina bezocht!'
Maar het lukt mij echter niet om dit te doen werken...
Hier is mijn bezoekersteller.php code:
Quote:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$filename = 'teller.txt';
$ip_filename = "ip.txt";
function tellerplus() {
$ip = $_SERVER['REMOTE_ADDR'];
global $filename, $ip_filename;
if(!in_array($ip, file($ip_filename, FILE_IGNORE_NEW_LINES))) {
if (file_exists($filename)) {
$waarde = file_get_contents($filename);
}
else {
$waarde = 0;
}
file_put_contents($ip_filename, $ip."\n", FILE_APPEND);
file_put_contents($filename, ++$waarde);
}
}
echo $waarde;
tellerplus();
?>
$filename = 'teller.txt';
$ip_filename = "ip.txt";
function tellerplus() {
$ip = $_SERVER['REMOTE_ADDR'];
global $filename, $ip_filename;
if(!in_array($ip, file($ip_filename, FILE_IGNORE_NEW_LINES))) {
if (file_exists($filename)) {
$waarde = file_get_contents($filename);
}
else {
$waarde = 0;
}
file_put_contents($ip_filename, $ip."\n", FILE_APPEND);
file_put_contents($filename, ++$waarde);
}
}
echo $waarde;
tellerplus();
?>
Ik wil deze graag in mijn pagina.php integreren en ook laten weergeven zoals hierboven vermeld.
Ik heb gelezen dat dit via include() kan werken, maar ook hiermee geeft hij niets weer op de pagina zelf...
Alvast bedankt voor de hulp!
Logischer is:
echo tellerplus();
En dan op de laatste regel van de function:
return $waarde;
Bedankt voor je reactie, maar helaas krijg ik nog steeds geen weergave van de teller waarde... :(
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$filename = 'teller.txt';
$ip_filename = "ip.txt";
function tellerplus() {
$ip = $_SERVER['REMOTE_ADDR'];
global $filename, $ip_filename;
if(!in_array($ip, file($ip_filename, FILE_IGNORE_NEW_LINES))) {
if (file_exists($filename)) {
$waarde = file_get_contents($filename);
}
else {
$waarde = 0;
}
file_put_contents($ip_filename, $ip."\n", FILE_APPEND);
file_put_contents($filename, ++$waarde);
}
return $waarde;
}
echo tellerplus();
?>
$filename = 'teller.txt';
$ip_filename = "ip.txt";
function tellerplus() {
$ip = $_SERVER['REMOTE_ADDR'];
global $filename, $ip_filename;
if(!in_array($ip, file($ip_filename, FILE_IGNORE_NEW_LINES))) {
if (file_exists($filename)) {
$waarde = file_get_contents($filename);
}
else {
$waarde = 0;
}
file_put_contents($ip_filename, $ip."\n", FILE_APPEND);
file_put_contents($filename, ++$waarde);
}
return $waarde;
}
echo tellerplus();
?>
Gewijzigd op 26/02/2012 17:31:00 door Icemar cool
en ik zie nog steeds geen tellertje...
Bij mij werkt dit nog steeds niet, ik heb op mijn pagina.php dit toegevoegd: geen idee of dit nodig is, maar vervang dit (++$waarde) eens door dit ($waarde++)
$waarde = 0 declareren in het begin van je functie?
Bestaan beide bestanden?
Hebben ze de juiste rechten?
Obelix en Idefix op 26/02/2012 18:26:38:
Geen teller of waarde 0?
Bestaan beide bestanden?
Hebben ze de juiste rechten?
Bestaan beide bestanden?
Hebben ze de juiste rechten?
Ja beide bestanden bestaan en werken. Dus als ik met een andere pc het open, krijg ik een ip adres bij en gaat de teller met 1tje omhoog.
Het is gewoon hetgeen wat in dat teller.txt bestand staat van aantal die ik in een zin als output wil krijgen op een andere pagina namelijk op pagina.php.
Toevoeging op 26/02/2012 18:29:02:
Jeroen vd op 26/02/2012 18:21:00:
geen idee of dit nodig is, maar vervang dit (++$waarde) eens door dit ($waarde++)
Heb ik ook al eens geprobeerd, maakt geen verschil jammer genoeg.
Gewijzigd op 26/02/2012 18:29:55 door Wiccske -
Dus als het ip nog niet in de text file staat, ga DAN de waarde uitlezen en aanpassen. Maar wat gebeurd er als het ip WEL in de file staat? Juist, niks. Als ik de functienaam lees lijkt mij dit ook precies de bedoeling, maar als je de huidige waarde van de teller wilt weten zal je OF je functie moeten aanpassen, maar logischerwijs een nieuw functie maken die gewoon de waarde uit het bestand leest.
Als je beide files leeg/weg gooit zal er waarschijnlijk eenmalig een '1' in je scherm komen, omdat hij in dat geval WEL in de if constructie komt en je op het laatste met ++$waarde de waarde verhoogt naar 1.
Gewijzigd op 26/02/2012 18:38:55 door Jurgen B
Jurgen B op 26/02/2012 18:37:17:
Volgens mij werkt dit (op de huidige implementatie) maar 1 keer en dat is wanneer je beide .txt bestanden leeg/weggooid.
Dus als het ip nog niet in de text file staat, ga DAN de waarde uitlezen en aanpassen. Maar wat gebeurd er als het ip WEL in de file staat? Juist, niks. Als ik de functienaam lees lijkt mij dit ook precies de bedoeling, maar als je de huidige waarde van de teller wilt weten zal je OF je functie moeten aanpassen, maar logischerwijs een nieuw functie maken die gewoon de waarde uit het bestand leest.
Als je beide files leeg/weg gooit zal er waarschijnlijk eenmalig een '1' in je scherm komen, omdat hij in dat geval WEL in de if constructie komt en je op het laatste met ++$waarde de waarde verhoogt naar 1.
Dus als het ip nog niet in de text file staat, ga DAN de waarde uitlezen en aanpassen. Maar wat gebeurd er als het ip WEL in de file staat? Juist, niks. Als ik de functienaam lees lijkt mij dit ook precies de bedoeling, maar als je de huidige waarde van de teller wilt weten zal je OF je functie moeten aanpassen, maar logischerwijs een nieuw functie maken die gewoon de waarde uit het bestand leest.
Als je beide files leeg/weg gooit zal er waarschijnlijk eenmalig een '1' in je scherm komen, omdat hij in dat geval WEL in de if constructie komt en je op het laatste met ++$waarde de waarde verhoogt naar 1.
Hoe kan ik dan maken dat deze altijd werkt? Kun je het aanpassen in mijn code misschien?
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$filename = 'teller.txt';
$ip_filename = "ip.txt";
function tellerplus() {
$ip = $_SERVER['REMOTE_ADDR'];
global $filename, $ip_filename;
$waarde = 0;
if(!in_array($ip, file($ip_filename, FILE_IGNORE_NEW_LINES))) {
file_put_contents($ip_filename, $ip."\n", FILE_APPEND);
file_put_contents($filename, ++$waarde);
}
if (file_exists($filename)) {
$waarde = file_get_contents($filename);
}
return $waarde;
}
echo tellerplus();
?>
$filename = 'teller.txt';
$ip_filename = "ip.txt";
function tellerplus() {
$ip = $_SERVER['REMOTE_ADDR'];
global $filename, $ip_filename;
$waarde = 0;
if(!in_array($ip, file($ip_filename, FILE_IGNORE_NEW_LINES))) {
file_put_contents($ip_filename, $ip."\n", FILE_APPEND);
file_put_contents($filename, ++$waarde);
}
if (file_exists($filename)) {
$waarde = file_get_contents($filename);
}
return $waarde;
}
echo tellerplus();
?>
Dit zou moeten werken. Functienaam is nu wel misleidend misschien.
Het enige wat ik wel heb is als ik met een ander IP-adres (mijn iPhone op 3G verbinding) op de site ga ik 1 bezoeker krijg terwijl ik op een andere computer 2 bezoekers krijg (wij zitten hier met alle computers op hetzelfde IP-adres) ...
Er wordt precies niet bijgeteld, hoe komt dit?
Gewijzigd op 26/02/2012 19:06:26 door Wiccske -
Ow er zit inderdaad een foutje in. De if(file_exists) constructie moet voor de andere if worden gezet. Ik denk dat hij dan wel klopt.