Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
nickdesign
Threadersteller
Dabei seit: 28.02.2007
Ort: South London
Alter: 43
Geschlecht:
|
Verfasst Fr 10.07.2009 21:36
Titel einfacher Counter |
|
|
Hallöle...
sagt mal, ich bin leider kein PHP Freak, nur sehr begrenzte PHP im Petto.
Wie kann ich es realisieren, das ein Counter auf allen Seiten angezeigt werden soll?
Sprich da soll nur stehen "Es waren bisher xxxx Besucher auf unseren Seiten" xxxx soll halt der Counter sein, muss ich das mit einem Iframe realisieren und wisst Ihr wo ich so einen einfachen zahlen Counter finde? Free versteht sich?
|
|
|
|
|
Eistee
Administrator
Dabei seit: 31.10.2001
Ort: Grimma
Alter: 45
Geschlecht:
|
Verfasst Fr 10.07.2009 22:27
Titel
|
|
|
Wenn du mir eine professionelle Webseite zeigen kannst, die so etwas verwendet - dann denke ich mal nach
|
|
|
|
|
Anzeige
|
|
|
nickdesign
Threadersteller
Dabei seit: 28.02.2007
Ort: South London
Alter: 43
Geschlecht:
|
Verfasst Fr 10.07.2009 22:37
Titel
|
|
|
Eistee hat geschrieben: | Wenn du mir eine professionelle Webseite zeigen kannst, die so etwas verwendet - dann denke ich mal nach |
*lol* wenn Ich dir jetzt erzähle das Kundin das haben möchte und du mir dann sagst, "als MG solltest du Kunden soetwas ausreden" dann dreh ich ab *lol*! Ich weiss das selber nur die Kunden will das drinn haben, komme was wolle... alles schon mit Ihr besprochen... die hat schon n Stat tool drinn, wo Sie sich einloggen kann und alles sehen kann nur will sie unbedingt das es auch angezeigt wird... -.-
edit//
ick hab auch schon was gefunden,
http://www.html.de/tutorials/15269-php-einfacher-counter-mit-reload-ip-sprerre-basierend-auf-mysql.html
Zitat: | 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)
); |
nachdem die tabelle steht, muss zur datenbank verbindung aufgenommen werden, vorher aber erst konfigurationsdaten ageben:
config.inc.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
?> |
jetzt noch die verbindung schreiben:
connect.inc.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();
}
?> |
nun das zählerskript, das eigentlich relativ simpel gebaut ist:
counter.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();
}
?> |
zum anzeigen der zugriffe ist folgendes skript zuständig (kann selbstverständlich noch ausgebaut und mit passwortabfrage ausgestattet werden):
zugriffe.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>';
?> |
|
Ich raff nur die Counter.php nicht, soll ich das jetzt in den header einfügen?
Zuletzt bearbeitet von nickdesign am Fr 10.07.2009 22:41, insgesamt 1-mal bearbeitet
|
|
|
|
|
bluedom
Dabei seit: 26.10.2003
Ort: Hamburg
Alter: -
Geschlecht:
|
Verfasst Sa 11.07.2009 08:48
Titel
|
|
|
Sorry für meine Ausdrucksweise, aber das ist der beschissenste Counter den ich jemals gesehen habe.
1.
Es wird immer die IP des Besuchers gespeichert und bleibt auch so in der DB drin was aber nicht sein darf. IP Adressen sollten bei Counter-Funktionen max. 24 Stunden gespeichert werden. Hat jemand eine feste IP (wie es z.B. in Firmennetzwerke vorkommt) wird der Besucher immer nur einmal gezählt, egal wie oft er die Seite innerhalb von Monaten aufruft.
2.
Wenn du die Datei counter.php in deinem header einbindest und ein Besucher zweimal die Seite besucht passiert folgendes: Die Seite wird nicht geladen.
Der Code:
Code: | else
{
//doch schon drin? dann ignorieren...
exit();
} |
....sagt nämlich das er das Script beenden soll (exit) wenn der Besucher schon in der DB ist.
3.
Code: | $zugriffe = mysql_num_rows($result); |
Verlangsamt den Seitenaufbau weil die Anzahl der Datensätze in der DB gezählt werden. (Bei kleinen Seiten sollte aber das kaum spürbar sein)
Richtig ist für ein simples Counter Script:
1. Eine Tabelle erzeugen wo einfach nur die Anzahl der Zugriffe als nummerischen Wert gespeichert werden.
2. Eine Tabelle erzeugen wo IP, Browserdaten, und Zugriffszeitpunkt gespeichert werden, für 24 Stunden.
Schau mal besser ob du nicht was anderes findest, da gibt es ja sehr viel im Netz...
|
|
|
|
|
nickdesign
Threadersteller
Dabei seit: 28.02.2007
Ort: South London
Alter: 43
Geschlecht:
|
Verfasst Sa 11.07.2009 09:02
Titel
|
|
|
bluedom hat geschrieben: |
Schau mal besser ob du nicht was anderes findest, da gibt es ja sehr viel im Netz... |
Danke für die Hilfe, habe auch bereits einen Counter gefunden und eingebaut.
Für mich war wichtig das er die IPs speichert damit nicht doppelt gezählt wird pro seite, habe einen gefunden der 24std die IP speichert.
counter.php
Code: | <?php
/**
* @author Eric Sizemore <admin@secondversion.com>
* @package SV's Simple Counter
* @link www.secondversion.com
* @version 1.7.0
* @copyright (C) 2006 - 2008 Eric Sizemore
* @license {@see LICENSE.txt} GNU Public License
*/
// #################### Define Important Constants ####################
// There should be no need to edit these
define('COUNT_FILE', 'counter/logs/counter.txt');
define('IP_FILE', 'counter/logs/ips.txt');
// ######################## USER CONFIGURATION ########################
// Edit the following.. true = yes, false = no
// Use file locking?
define('USE_FLOCK', true);
// Count only unique visitors?
define('ONLY_UNIQUE', true);
// Show count as images?
define('USE_IMAGES', false);
// Path to the images
define('IMG_DIR', 'counter/images/');
// Image extension
define('IMG_EXT', '.gif');
// ############################ Functions #############################
/**
* We use this function to open, read/write to files.
*
* @param string Filename
* @param string Mode (r, w, a, etc..)
* @param string If writing to the file, the data to write
* @return mixed
*/
function fp($file, $mode, $data = '')
{
if (!file_exists($file) OR !is_writable($file))
{
trigger_error("Error: '<code>" . htmlspecialchars($file) . "</code>' does not exist or is not writable.");
}
if (!($fp = @fopen($file, $mode)))
{
trigger_error("Error: '<code>" . htmlspecialchars($file) . "</code>' could not be opened.");
}
if (USE_FLOCK AND @flock($fp, LOCK_EX))
{
if ($mode == 'r')
{
return @fread($fp, filesize($file));
}
else
{
@fwrite($fp, $data);
}
@flock($fp, LOCK_UN);
}
else
{
if ($mode == 'r')
{
return @fread($fp, filesize($file));
}
@fwrite($fp, $data);
}
@fclose($fp);
}
/**
* Get the users ip address.
* Pulled from my {@link http://www.domainportfolio.us Domain Portfolio} project.
*
* @param none
* @return string
*/
function get_ip()
{
$ip = my_getenv('REMOTE_ADDR');
if (my_getenv('HTTP_X_FORWARDED_FOR'))
{
if (preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', my_getenv('HTTP_X_FORWARDED_FOR'), $matches))
{
foreach ($matches[0] AS $match)
{
if (!preg_match('#^(10|172\.16|192\.168)\.#', $match))
{
$ip = $match;
break;
}
}
unset($matches);
}
}
else if (my_getenv('HTTP_CLIENT_IP'))
{
$ip = my_getenv('HTTP_CLIENT_IP');
}
else if (my_getenv('HTTP_FROM'))
{
$ip = my_getenv('HTTP_FROM');
}
return $ip;
}
/**
* Returns an environment variable. Based on PMA_getenv from phpMyAdmin.
*
* @param string Variable name, eg: PHP_SELF
* @return string
*/
function my_getenv($varname)
{
if (isset($_SERVER[$varname]))
{
return $_SERVER[$varname];
}
else if (isset($_ENV[$varname]))
{
return $_ENV[$varname];
}
else if (getenv($varname))
{
return getenv($varname);
}
return '';
}
// ######################## Start Main Script #########################
// Get current count
$count = fp(COUNT_FILE, 'r');
// Do we only want to count 'unique' visitors?
if (ONLY_UNIQUE)
{
// Get visitor ip and check against our ip log
$ip = get_ip();
$ips = trim(fp(IP_FILE, 'r'));
$ips = preg_split("#\n#", $ips, -1, PREG_SPLIT_NO_EMPTY);
$visited = (bool)(in_array($ip, $ips));
// They've not visited before
if (!$visited)
{
fp(IP_FILE, 'a', "$ip\n");
fp(COUNT_FILE, 'w', $count + 1);
}
// Memory saving
unset($ips);
}
else
{
// No, we wish to count all visitors
fp(COUNT_FILE, 'w', $count + 1, USE_FLOCK);
}
// Do we want to display the # visitors as graphics?
if (USE_IMAGES)
{
$count = preg_split("##", $count, -1, PREG_SPLIT_NO_EMPTY);
$len = count($count);
$display = '';
for ($i = 0; $i < $len; $i++)
{
$display .= '<img src="' . IMG_DIR . $count[$i] . IMG_EXT . '" border="0" alt="' . $count[$i] . '" /> ';
}
echo $display;
}
else
{
// Nope, let's just show it as plain text
echo $count;
}
?> |
und der Code zum einbinden in die Seite
Code: | <?php include('counter.php'); ?> |
jetzt haben wir nur noch zwei TXT Dateien die die Ips und Hits speichern counter.txt und ips.txt und das wars dann!
Natürlich müssen die txt datein auch die richtigen rechte bekommen. Der Counter läuft gut und zählt auch nichts doppelt! ganz easy der counter so wie man es haben wollte.
|
|
|
|
|
bluedom
Dabei seit: 26.10.2003
Ort: Hamburg
Alter: -
Geschlecht:
|
Verfasst Sa 11.07.2009 09:54
Titel
|
|
|
Jep, der ist ganz gut...
Aber wie Eistee schon angemerkt hat... Counter auf der Website anzeigen ist wirklich etwas oldschool
|
|
|
|
|
ApfelQFeierabend
Dabei seit: 05.04.2008
Ort: Regensburg
Alter: 37
Geschlecht:
|
Verfasst Sa 11.07.2009 12:15
Titel
|
|
|
ehm wenns nur die kundin diesen kagg sehen will dann gibts ja google analytics
|
|
|
|
|
airball
Dabei seit: 28.08.2002
Ort: 2850
Alter: 38
Geschlecht:
|
Verfasst Sa 11.07.2009 12:21
Titel
|
|
|
Oder man bindet irgendwo diesen unsichtbaren Netstat-Counter ein, falls es die noch gibt.
|
|
|
|
|
|
|
|
Ähnliche Themen |
Counter
einfacher php shop
suche web-counter
counter faken
Valider Counter?
[PHP] realtime counter
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|