steht die webseite, möchte man wissen, wie viele user schon darauf zugegriffen haben, bzw. werden, um statistiken zu bilden.
in meinem tutorial möchte ich euch einen sehr einfachen counter mit reaload- und IP-sperre vorstellen.
zuerst benötigt man eine tabelle in einer datenbank, wo die zugriffe abgespeichert werden:
counter.sql
nachdem die tabelle steht, muss zur datenbank verbindung aufgenommen werden, vorher aber erst konfigurationsdaten ageben:
config.inc.php
jetzt noch die verbindung schreiben:
connect.inc.php
nun das zählerskript, das eigentlich relativ simpel gebaut ist:
counter.php
zum anzeigen der zugriffe ist folgendes skript zuständig (kann selbstverständlich noch ausgebaut und mit passwortabfrage ausgestattet werden):
zugriffe.php
das wars schon.
zur funktionsweise sei folgendes gesagt:
die erste SQL-abfrage ruft die tabelle auf und prüft, ob schon ein eintrag der aktuellen IP besteht.
wenn nicht, wird mit der zweiten aufforderung ein datebnakeintrag befohlen, der die IP des clients und dats datum einträgt.
ist der eintrag jedoch schon vorhanden, bricht das skript ab.
sollte irgendetwas unklar sein, berichtet es mir und ich werde es editieren.
Nils aka XraYSoLo
in meinem tutorial möchte ich euch einen sehr einfachen counter mit reaload- und IP-sperre vorstellen.
zuerst benötigt man eine tabelle in einer datenbank, wo die zugriffe abgespeichert werden:
counter.sql
Code:
CREATE TABLE zugriffe ( z_id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, z_ip VARCHAR(50) NOT NULL, z_datum VARCHAR(20) );
config.inc.php
PHP-Code:
<?php
//eine variable als array deklarieren, um mehrere werte in einem zusammenzufassen
$_access = array();
$_access['host'] = 'localhost'; //kann abweichen, ist aber meistens "localhost"
$_access['user'] = ''; //der benutzername
$_access['pass'] = ''; //das passwort
$_access['name'] = ''; //der name der datenbank
?>
connect.inc.php
PHP-Code:
<?php
if(!$conn = mysql_connect($_access['host'], $_access['user'], $_access['pass']))
{
echo 'verbindung zu '.$_access['host'].' fehlgeschlagen';
exit();
}
if(!$db_select = mysql_select_db($_access['name']))
{
echo 'die erforderliche datenbank antwortet nicht';
exit();
}
?>
counter.php
PHP-Code:
<?php
//konfiguration und verbindungsdaten holen
include_once('config.inc.php');
include_once('connect.inc.php');
//abfrage des aktuellen status der bestehenden IPs
$result = mysql_query("SELECT z_ip FROM zugriffe WHERE z_ip = '".$_SERVER['REMOTE_ADDR']."' ") or die(mysql_error());
//ist die aktuelle IP bereits vorhanden?
if(mysql_num_rows($result) != 1)
{
//noch nicht? dann eintragen...
$sql = " INSERT INTO
zugriffe VAULES
(
'',
'".$_SERVER['REMOTE_ADDR']."',
'".date('d m Y')."'
)
";
mysql_query($sql) or die (mysql_error());
}
else
{
//doch schon drin? dann ignorieren...
exit();
}
?>
zugriffe.php
PHP-Code:
<?php
//konfiguration und verbindungsdaten holen
include_once('config.inc.php');
include_once('connect.inc.php');
$result = mysql_query("SELECT z_ip FROM zugriffe")or die(mysql_error());
$zugriffe = mysql_num_rows($result);
echo 'zugriffe bisher: <strong> '.$zugriffe.' </strong>';
?>
zur funktionsweise sei folgendes gesagt:
die erste SQL-abfrage ruft die tabelle auf und prüft, ob schon ein eintrag der aktuellen IP besteht.
wenn nicht, wird mit der zweiten aufforderung ein datebnakeintrag befohlen, der die IP des clients und dats datum einträgt.
ist der eintrag jedoch schon vorhanden, bricht das skript ab.
sollte irgendetwas unklar sein, berichtet es mir und ich werde es editieren.
Nils aka XraYSoLo
Kommentar