Gaaaaanz einfacher Besucherzähler...

Gesperrt
zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Gaaaaanz einfacher Besucherzähler...

Beitrag von zimboo »

Hallo Community,

nun möchte ich endlich auch mal etwas zu Contenido beitragen und Euch etwas zurückgeben... Ich habe einen ganz enifachen Besucherzähler gebaut, der mit einer IP-Sperre nicht "jeden Klick" zählt - sondern immer wieder nur "echte neue Besucher!"
Ist wirklich totaaaaal einfach gehalten. Vielleicht besteht ja trotzdem interesse daran.


Also hier kommt jezz der Code:

output:

<?php
//ab hier kommt php-script für den counter
$db=mysql_connect ("localhost","root",""); //hier sind benutzername und passwort der db einzutragen
mysql_select_db ("zaehler", $db); //fragt den inhalt der db ab

//speichert das abfrageergebnis in die variable "result"
$result=mysql_fetch_object( mysql_query("select * from counter where id='1'",$db));

if($result->ip != $REMOTE_ADDR) //prüft ob die ip-adresse nicht schon mal da war
{
//wenn nicht dann wird der zähler in der tabelle "counter" um einen hochgezählt
$newcounter= ++$result->counter;
mysql_query("UPDATE counter SET counter='$newcounter', ip='$REMOTE_ADDR' WHERE id='1'",$db);
}

//ausgabe der anzahl der besucher...
echo "Besucher bisher: $result->counter ";

?>
und hier der Dump für die DB

# phpMyAdmin MySQL-Dump
# version 2.5.1
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Erstellungszeit: 07. Juni 2005 um 07:26
# Server Version: 4.0.13
# PHP-Version: 4.3.2
# Datenbank: `zaehler`
# --------------------------------------------------------

#
# Tabellenstruktur für Tabelle `counter`
#
# Erzeugt am: 06. Juni 2005 um 13:19
# Aktualisiert am: 06. Juni 2005 um 14:16
#

CREATE TABLE `counter` (
`id` int(11) NOT NULL auto_increment,
`counter` varchar(10) NOT NULL default '',
`ip` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

#
# Daten für Tabelle `counter`
#

INSERT INTO `counter` VALUES (1, '124', '127.0.0.1');
Ich habe praktisch eine neue DB angelegt, weil ich (noch) nicht genau durch die DB-Struktur von Contenido steige... Aber der Zähler funzt

How ever - vielleicht kann ja jemand diesen einfachen Counter brauchen :lol:

Schönen Gruß us Kölle

Jörg
Jörg Zimmermann
Köln Rondorf
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: Gaaaaanz einfacher Besucherzähler...

Beitrag von Halchteranerin »

zimboo hat geschrieben:Ich habe praktisch eine neue DB angelegt, weil ich (noch) nicht genau durch die DB-Struktur von Contenido steige...
Du meinst wohl, du hast eine neue Tabelle in der Datenbank angelegt, nicht eine neue Datenbank, oder? :wink:
zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Re: Gaaaaanz einfacher Besucherzähler...

Beitrag von zimboo »

Halchteranerin hat geschrieben: Du meinst wohl, du hast eine neue Tabelle in der Datenbank angelegt, nicht eine neue Datenbank, oder? :wink:
Nein... wie Du im DB-Dump siehst habe ich tatsächlich eine zweite DB angelegt... weil ich halt nicht weiss, ob z.B die Mandanten-ID immer mit übergeben werden muss bei Tabellen innerhalb der DB von Contenido (das ist ja mein Prob - ich steige noch nicht so richtig durch trotz der tollen Db-Doku von Snoopy) Ich weiss halt nicht wie sich "standalone Tables" innerhalb der Contenido-DB verhalten.
...
Host: localhost
# Erstellungszeit: 07. Juni 2005 um 07:26
# Server Version: 4.0.13
# PHP-Version: 4.3.2
# Datenbank: `zaehler`
# --------------------------------------------------------
...
Würde es denn auch einfach als Table innerhalb Contenido funzen???? Also ohne mit der eigentlichen Struktur verknüpft zu sein????

Sollte es innerhalb Contenido funktionieren, kann man natürlich auch nur die Tabelle in die Contenido-Db einfügen... dann ist eine extra Verbindung zur DB innerhalb des Scripts sicherlich nicht mehr nötig, oder????
$db=mysql_connect ("localhost","root",""); //hier sind benutzername und passwort der db einzutragen
mysql_select_db ("zaehler", $db); //fragt den inhalt der db ab
Ich hab da noch eine Frage (die hat jetzt grade mal nichts mit Modulen zu tun):

Bei Bildern in meinem Contenido-Auftritt wird der Mauszeiger, immer wenn ich auf das Bild fahre, zur "Zeigehand" als würde ein Link dahinter liegen - da iss aber keiner...
Kann / muss man da noch irgendwas einstellen??? Die Bilder liegen in einem Container der als "Bildmodul" gekennzeichnet ist...
Jörg Zimmermann
Köln Rondorf
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: Gaaaaanz einfacher Besucherzähler...

Beitrag von Halchteranerin »

zimboo hat geschrieben:Nein... wie Du im DB-Dump siehst habe ich tatsächlich eine zweite DB angelegt...
Tatsaechlich, das war mir entfallen, sorry. :-)

Im Prinzip kannst du das aber auch einfach in die Contenido-DB einbauen, denn wenn du dir das DB-Modell von Contenido anschaust ( http://www.contenido.org/opensourcecms/ ... .model.pdf ), wirst du feststellen, dass die Tabellen con_inuse und con_config auch "in der Luft haengen".
zimboo hat geschrieben:Bei Bildern in meinem Contenido-Auftritt wird der Mauszeiger, immer wenn ich auf das Bild fahre, zur "Zeigehand" als würde ein Link dahinter liegen - da iss aber keiner...
Kann / muss man da noch irgendwas einstellen??? Die Bilder liegen in einem Container der als "Bildmodul" gekennzeichnet ist...
Aehm, bist du sicher, dass da kein Link ist? Hast du mal draufgeklickt? Beim mitgelieferten Standard-Bildmodul ist das naemlich so, dass die Startseite verlinkt wird, wenn man selbst keinen Link angegeben hat. Ich habe, mit Hilfe von Andreas Kummer, ein Bild-Modul gebaut, wo nur dann ein Link eingebaut wird, wenn man auch tatsaechlich einen Link angegeben hat. Das ist auch hier irgendwo unter Module zu finden.
zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Re: Gaaaaanz einfacher Besucherzähler...

Beitrag von zimboo »

Halchteranerin hat geschrieben: Im Prinzip kannst du das aber auch einfach in die Contenido-DB einbauen, denn wenn du dir das DB-Modell von Contenido anschaust ( http://www.contenido.org/opensourcecms/ ... .model.pdf ), wirst du feststellen, dass die Tabellen con_inuse und con_config auch "in der Luft haengen".
Na das stimmt... dann werde ich das mal entsprechend ändern. Danke schon mal für diesen Tipp...
Aehm, bist du sicher, dass da kein Link ist? Hast du mal draufgeklickt? Beim mitgelieferten Standard-Bildmodul ist das naemlich so, dass die Startseite verlinkt wird, wenn man selbst keinen Link angegeben hat. Ich habe, mit Hilfe von Andreas Kummer, ein Bild-Modul gebaut, wo nur dann ein Link eingebaut wird, wenn man auch tatsaechlich einen Link angegeben hat. Das ist auch hier irgendwo unter Module zu finden.
Habs mal ausprobiert.... die Pics sind mit der Startseite verlinkt...*ätzend* werde das mal im Modul selber ändern - dürfte ja nicht zu schwierig sein, den Pfad weg zu nehmen... Oder ich suche besser mal Dein / Andreas Modul... :roll:

Gruß

Jörg
und danke nochmals :wink:
Jörg Zimmermann
Köln Rondorf
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

Hallo Joerg,

ich hab's gefunden, aber die letzten Aenderungen habe ich bei mir nicht mehr eingebaut. Du kannst ja gerne daran weiterbasteln. ;-)

http://www.contenido.org/forum/viewtopi ... =bildmodul

Gruss
Christa
zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Beitrag von zimboo »

Hallo Christa,

zunächst mal vielen Dank für das Bildmodul... funzt echt prima.
Danke...

Nun habe ich meinen "Besucherzähler" in die DB von contenido eingebunden aber wenn ich nicht extra mit
$db=mysql_connect ("localhost","root",""); //hier sind benutzername und passwort der db einzutragen
mysql_select_db ("cms_1", $db ); //fragt den inhalt der db ab
verbinde erhalte ich immer folgende Fehlermeldung:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 474

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 474

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 480
Besucher bisher: 1
ich habe mir mal die "front_contend.php" im Editor angesehen aber werde nicht so richtig schlau daraus... darum habe ich zunächst mal die "verbindung aufnehmen"-Zeile drin gelassen. Ist nicht sauber gelöst - funzt aber...
Vielleicht hast Du ja 'ne Idee wo der Fehler sein könnte...

Gruß

Jörg
Jörg Zimmermann
Köln Rondorf
zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Beitrag von zimboo »

Hab's schon selbst gelöst... :D

wer lesen kann ist klar im Vorteil (mutt tu kucken, mitt de Äüjelsche :shock: )

Ich hatte vergessen die Variable $db überall raus zu nehmen... dann konnte es ja nicht funzen.

Also hier nun der Code (der nun auch innerhalb der Contenido-DB funzt)

Input bleibt leer!

Output:
<?php

//speichert das abfrageergebnis in die variable "result"
$result=mysql_fetch_object( mysql_query("select * from con_counter where id='1'"));

if($result->ip != $REMOTE_ADDR) //prüft ob die ip-adresse nicht schon mal da war
{
//wenn nicht dann wird der zähler in der tabelle "counter" um einen hochgezählt
$newcounter= ++$result->counter;
mysql_query("UPDATE con_counter SET counter='$newcounter', ip='$REMOTE_ADDR' WHERE id='1'");
}

//ausgabe der anzahl der besucher...
echo "Besucher bisher: $result->counter ";

?>
und der SQL-Befehl für die Tabelle "count"

CREATE TABLE `con_counter` (
`id` int(11) NOT NULL auto_increment,
`counter` varchar(10) NOT NULL default '',
`ip` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
So... vielleicht kann ja doch jemand diesen einfachen Counter brauchen... Klar gibt es viele bessere aber wenn man's einfach haben will?????

Gruß

Jörg
Jörg Zimmermann
Köln Rondorf
Gesperrt