Bezoekers online
1 bericht
• Pagina 1 van 1
Bezoekers online
Inleiding
Dit artikel geeft je twee manieren om te laten zien hoeveel bezoekers er op het moment op je website aanwezig zijn. De eerste manier in zonder SQL, de tweede met SQL.
Bezoekers online zonder SQL
De eerste manier die we bespreken is zonder SQL. Toch moeten we de gegevens ergens opslaan, dat doen we in dit geval in een .txt bestandje. Upload een leeg .txt bestand naar je server. Noem het bestand bijvoorbeeld bezoekers.txt. Zorg ervoor dat je het bestand CHMOD naar 777 zodat het bestand aangepast kan worden door het PHP script
Vervolgens maken we een PHP bestand. Daarin plaatsen we de volgende code:
PHP
Pas de instellingen bovenaan het script aan. Dat wil zeggen: de naam van het tekstbestand en de duur van een sessie. Dat is hoelang een bezoeker als online wordt gezien. Standaard staat hij op vijf minuten.
Sla het bestand op als bijvoorbeeld bezoekers_online.php en upload deze naar je server.
Ga nu verder naar "Bezoekers weergeven" onderaan dit artikel om te zien hoe je de informatie op je website kunt weergeven.
Bezoekers online met SQL
De tweede optie is met een (SQL) database. We moeten in onze database een tabel aanmaken, dat doen we door de volgende query in de SQL admin (bijvoorbeeld phpmyadmin) uit te voeren:
MYSQL
Vervolgens maken we een PHP bestand. Daarin plaatsen we de volgende code:
PHP
Pas hier de duur van de sessie aan en sla het bestand op als bijvoorbeeld bezoekers_online.php en upload deze naar je server.
Bezoekers weergeven
We hebben nu het bestand (met SQL) of de bestanden (zonder SQL) geupload naar de server en indien nodig geCHMOD naar 777 (enkel het .txt bestand). Nu willen we de code ook nog weergeven op onze site. Plaats onderstaande code op de plaats waar je het aantal bezoekers wilt weergeven:
PHP
De tekst kun je eventueel in de PHP code aanpassen.
Dit artikel geeft je twee manieren om te laten zien hoeveel bezoekers er op het moment op je website aanwezig zijn. De eerste manier in zonder SQL, de tweede met SQL.
Bezoekers online zonder SQL
De eerste manier die we bespreken is zonder SQL. Toch moeten we de gegevens ergens opslaan, dat doen we in dit geval in een .txt bestandje. Upload een leeg .txt bestand naar je server. Noem het bestand bijvoorbeeld bezoekers.txt. Zorg ervoor dat je het bestand CHMOD naar 777 zodat het bestand aangepast kan worden door het PHP script
Vervolgens maken we een PHP bestand. Daarin plaatsen we de volgende code:
PHP
- Code: Alles selecteren
<?php
////////////////////////////////////////
// Aantal bezoekers online (zonder SQL)
// Door: Ted - http://www.mastercode.nl
////////////////////////////////////////
// INSTELLINGEN
// Bestand waarin gegevens worden opgeslagen (CHMOD deze naar 777)
$bestand = "bezoekers.txt";
// Hoelang bezoekers meetellen? (in minuten!)
$duur = 5;
///////////////////////////////////
////// Hieronder niets veranderen
///////////////////////////////////
// Gegevens uit het bestand lezen
$gegevens = file( $bestand );
// Bestand openen en leegmaken
$openbestand = fopen( $bestand, "w+" );
// Gegevens uitspitten en in een array zetten
foreach( $gegevens as $temp )
{
list( $ip, $tijd ) = explode( "|", $temp );
if( !empty( $ip ) and !empty( $tijd ) )
{
$bezoekers[ $ip ] = $tijd;
}
}
// Gegevens van huidige bezoeker updaten of toevoegen
$bezoekers[ $_SERVER['REMOTE_ADDR'] ] = time();
// Nieuwe gegevens aanmaken
$nieuwegegevens = '';
$aantal_online = 0;
$eind = time() - ( $duur * 60 );
foreach( $bezoekers as $ip => $tijd )
{
if( $tijd > $eind )
{
$nieuwegegevens .= $ip . "|" . $tijd . "\n";
$aantal_online++;
}
}
// Gegevens naar het bestand schrijven
fputs( $openbestand , $nieuwegegevens );
// Bestand sluiten
fclose( $openbestand );
// De output maken:
if( $aantal_online == 1 )
{
echo "Er is 1 bezoeker online.";
}
else
{
echo "Er zijn " . $aantal_online . " bezoekers online.";
}
?>
Pas de instellingen bovenaan het script aan. Dat wil zeggen: de naam van het tekstbestand en de duur van een sessie. Dat is hoelang een bezoeker als online wordt gezien. Standaard staat hij op vijf minuten.
Sla het bestand op als bijvoorbeeld bezoekers_online.php en upload deze naar je server.
Ga nu verder naar "Bezoekers weergeven" onderaan dit artikel om te zien hoe je de informatie op je website kunt weergeven.
Bezoekers online met SQL
De tweede optie is met een (SQL) database. We moeten in onze database een tabel aanmaken, dat doen we door de volgende query in de SQL admin (bijvoorbeeld phpmyadmin) uit te voeren:
MYSQL
- Code: Alles selecteren
CREATE TABLE `bezoekers` (
`ip` VARCHAR(15) NOT NULL DEFAULT '',
`tijd` INT(10) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (`ip`)
) TYPE=MyISAM;
Vervolgens maken we een PHP bestand. Daarin plaatsen we de volgende code:
PHP
- Code: Alles selecteren
<?php
////////////////////////////////////////
// Aantal bezoekers online (met SQL)
// Door: Ted - http://www.mastercode.nl
////////////////////////////////////////
// INSTELLINGEN
// Host, meestal localhost
$host = 'localhost';
// Gebruikersnaam
$gebruikersnaam = 'ted';
// Wachtwoord
$wwoord = 'pass1';
// Database naam
$database = 'db';
// Hoelang bezoekers meetellen? (in minuten!)
$duur = 5;
///////////////////////////////////
////// Hieronder niets veranderen
///////////////////////////////////
// Verbinden met database
$verbinding = @mysql_connect($host, $gebruikersnaam, $wwoord) or die("Error #1");
$db_select = @mysql_select_db($database) or die("Error #2");
// Queries
$update = "UPDATE `bezoekers` SET `tijd`='" . time() . "' WHERE `ip`='" . $_SERVER['REMOTE_ADDR'] . "'";
$insert = "INSERT INTO `bezoekers` VALUES ('" . $_SERVER['REMOTE_ADDR'] . "', '" . time() . "')";
// Gegevens huidige gebruiker updaten of invoeren
if( !mysql_query( $update ) or mysql_affected_rows() == 0 )
{
mysql_query( $insert );
}
// Gegevens opschonen
$eind = time() - ( $duur * 60 );
$delete = "DELETE FROM `bezoekers` WHERE `tijd`<'" . $eind . "'";
mysql_query( $delete );
// Aantal online berekenen.
$select = "SELECT * FROM `bezoekers`";
$aantal_q = mysql_query( $select );
$aantal_online = mysql_num_rows( $aantal_q );
// De output maken:
if( $aantal_online == 1 )
{
echo "Er is 1 bezoeker online.";
}
else
{
echo "Er zijn " . $aantal_online . " bezoekers online.";
}
?>
Pas hier de duur van de sessie aan en sla het bestand op als bijvoorbeeld bezoekers_online.php en upload deze naar je server.
Bezoekers weergeven
We hebben nu het bestand (met SQL) of de bestanden (zonder SQL) geupload naar de server en indien nodig geCHMOD naar 777 (enkel het .txt bestand). Nu willen we de code ook nog weergeven op onze site. Plaats onderstaande code op de plaats waar je het aantal bezoekers wilt weergeven:
PHP
- Code: Alles selecteren
<?php
include( "map/bezoekers_online.php");
?>
De tekst kun je eventueel in de PHP code aanpassen.
- Theo
- Oprichter
- Berichten: 1795
- Geregistreerd: 11 Jun 2005 17:43
- Woonplaats: in_array()
1 bericht
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast