Registreren

    Informatie

    Het is heel gemakkelijk om lid te worden. Door je gegevens op te geven op de registratie pagina ontvang je automatisch een email met je inlog gegevens.

  • Registreer je hier

Aanmelden

    Informatie

    Omdat je niet aangemeld bent is het gebruikerspaneel niet beschikbaar. Vul hiernaast je gegevens in om gebruik te maken van het gebruikerspaneel.

Aanmeldformulier


Bezoekers online

PHP is een scripttaal, die bedoeld is om op webservers dynamische webpagina's te creëren. PHP is in 1994 ontworpen door Rasmus Lerdorf, een senior software engineer bij IBM. Destijds was de taal duidelijk geïnspireerd door Perl.

Aanvankelijk stonden de letters PHP voor Personal Home Page (de volledige naam was Personal Home Page/Forms Interpreter, PHP/FI). Sinds PHP 3.0 is de betekenis een recursief acroniem geworden: PHP: Hypertext Preprocessor.

Bezoekers online

Berichtdoor Theo » 03 Sep 2008 23:09

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
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()

Terug naar PHP



Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast


cron