Bezoekersteller laten weergeven op pagina ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wiccske -

Wiccske -

26/02/2012 15:59:40
Quote Anchor link
Ok ik heb een unieke bezoekersteller via een tutorial gemaakt, maar nu wil ik deze graag integreren op een andere pagina en dus ook laten zien op die 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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();

?>


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!
 
PHP hulp

PHP hulp

01/11/2024 05:44:48
 
- SanThe -

- SanThe -

26/02/2012 16:16:41
Quote Anchor link
$waarde bestaat alléén in de function.

Logischer is:
echo tellerplus();

En dan op de laatste regel van de function:
return $waarde;
 
Wiccske -

Wiccske -

26/02/2012 16:49:24
Quote Anchor link
Bedankt voor je reactie, maar helaas krijg ik nog steeds geen weergave van de teller waarde... :(
 
Icemar cool

Icemar cool

26/02/2012 17:29:33
Quote Anchor link
Op deze manier werkt het wel

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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();
?>
Gewijzigd op 26/02/2012 17:31:00 door Icemar cool
 
Wiccske -

Wiccske -

26/02/2012 18:01:11
Quote Anchor link
Bij mij werkt dit nog steeds niet, ik heb op mijn pagina.php dit toegevoegd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include("bezoekersteller.php"); ?>
en ik zie nog steeds geen tellertje...
 
Jeroen VD

Jeroen VD

26/02/2012 18:21:00
Quote Anchor link
geen idee of dit nodig is, maar vervang dit (++$waarde) eens door dit ($waarde++)
 
Jurgen B

Jurgen B

26/02/2012 18:23:33
Quote Anchor link
$waarde = 0 declareren in het begin van je functie?
 
Obelix Idefix

Obelix Idefix

26/02/2012 18:26:38
Quote Anchor link
Geen teller of waarde 0?
Bestaan beide bestanden?
Hebben ze de juiste rechten?
 
Wiccske -

Wiccske -

26/02/2012 18:27:53
Quote Anchor link
Obelix en Idefix op 26/02/2012 18:26:38:
Geen teller of waarde 0?
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 -
 
Jurgen B

Jurgen B

26/02/2012 18:37:17
Quote Anchor link
Volgens mij werkt dit (op de huidige implementatie) maar 1 keer en dat is wanneer je beide .txt bestanden leeg/weggooid.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
 if(!in_array($ip, file($ip_filename, FILE_IGNORE_NEW_LINES)))
?>


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
 
Wiccske -

Wiccske -

26/02/2012 18:49:28
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
 if(!in_array($ip, file($ip_filename, FILE_IGNORE_NEW_LINES)))
?>


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?
 
Jurgen B

Jurgen B

26/02/2012 18:52:59
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();

?>


Dit zou moeten werken. Functienaam is nu wel misleidend misschien.
 
Wiccske -

Wiccske -

26/02/2012 18:53:02
Quote Anchor link
Ok bedankt, nu werkt het inderdaad wel!
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 -
 
Jurgen B

Jurgen B

26/02/2012 19:46:25
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.