PHP in HTML

Hallo,
Ich habe mir jetzt einen Besucherzähler in php geschreiben. Die .php Datei habe ich nun auf dem Server abgelegt und es funktioniert auch super, jedoch nur wenn ich die .php Datei öffne zählt er.
Ich hätte aber gern den Besucherzähler in meine Homepage eingebunden, weiß aber leider nicht wie das geht.

Benenne alle deine HTML-Dateien (z.b. index.html) in in z.B. index.php um. Dann fügst du bei jeder Datei

<?php
include('besucherzaehler.php');
?>

ein. Die Namen natürlich entsprechend an deine anpassen.

Mfg :wink2:

So einfach geht das bei mir nicht…Ich habe meine Komplette Homepage mit “MS Publisher” erstellt. Die Die homepage ist komplett in einer “index.htm” Datei gespeichert. Diese ist auf dem Server und auch die "besucherzaehler.php"
Bei MS Publisher kann man nur HTML code Fragmente einfügen.
jetzt weiß ich trotzdem nicht weiter…

kannst du ins ms publisher iframes enfügen? dann erstell einen 1*1 pxel großen iframe in dem sich die besucherzähler.php befindet =)

NEEIN! :smiley:
bitte keine frames xD

mach dir ne .htaccess Datei mit folgendem Inhalt:

AddType application/x-httpd-php .html php_value auto_prepend_file /user/dein_user_name/www/besucherzaeler.php
/user/dein_user_name/www/besucherzaelier.php ist entsprechend anzupassen :wink:

wie genau mache ich die htaccess datei ??
kann ich den code dann einfach bei ms publisher einfügen…

Hi,

am besten schmeißt du den Publisher weg. Ehrlich, das Ding ist das grottigste Tool dass es zum Erstellen von Homepages gibt.

Die .htaccess (Punkt beachten) erstellst du dir einfach mit einem Texteditor - zur Not der Editor, den Windows in “Zubehör” mitliefert. Einfach die entsprechenden ZEilen einfügen und das ganze abspeichern unter “.htaccess” - nicht als Text, sondern als “alle Dateien”.

Ok,
und wenn ich dann die Datei habe ??? wie kann ich die in publisher öffnen…
du hast schon recht, das der publisher nicht das beste tool ist, ich habe mir aber viel Arbeit damit gemacht die homepage zu erstellen und möchte mir die Arbeit nicht noch einmal machen…

Du kannst den Besucherzähler auch als Bild einbinden :wink:
Zähler
Dann kannst du die aktuelle Besucherzahl gleichzeitig als Bild ausgeben und darstellen.

ok,
aber mein besucherzähler zählt ja immer das öffnen der .php datei

Hi,

beim Einbinden der Datei wird diese ja trotzdem geöffnet. Zudem ist es nicht sinnvoll bei jedem Öffnen zu zählen, das verfälscht die Werte ohne Reload-Sperre.

Also mit der Bilddatei einfügen klappt bei mir nicht…
ich würde gern das mit der htaccess datei mal versuchen, ich weiß aber nicht wie ich diese datei dann auf der homepage öffnen soll und wie das überhaupt funktionieren soll…

Die Datei .htaccess lädst du wie alles andere auch per ftp hoch, in
das Verzeichnis, wo es gelten soll.

Zähler als Bild: da muß man das PHP-Skript so modizifzieren, daß es
auch ein Bildformat als Ausgabe hat (PNG, JPEG/JFIF, GIF, SVG).

In jedem Falle zählt man immer exakt den Aufruf des PHP-Skriptes
und nichts sonst.
Im Falle von Bildern oder iframes werden also die Besucher nicht
gezählt, die sich keine Bilder anzeigen lassen oder wo iframes nicht
automatisch geladen werden. Es werden andererseits aber auch
jene gezählt, die nur das Bild/Skript aufrufen, nicht aber die
eigentlich zu zählende Hauptseite.
Das ändert also jedenfalls komplett den Sinn der statistischen
Aussage, die eben nichts über den Aufruf der Hauptseite
aussagt.
Daher baut man solch einen Zähler eigentlich immer direkt in die
Datei ein, deren Aufrufe gezählt werden sollen und nicht in eine
andere Datei ;o)

Will man bei einem PHP-Skript wiederholten Aufruf durch eine
Person vermeiden, muß man da genauer analysieren und dann
eben den Zähler nicht hochsetzen, wenn das Skript zu dem Schluß
kommt, daß die Person bereits gezählt wurde - da gibt es diverse
mehr oder weniger schlechte Methoden, mit denen man schätzen
kann, ob das ein wiederholter Aufruf ist oder nicht - exakt kann
man das nicht heraufinden.

Ok,
Mein Problem ist ja eigentlich nur, das ich bei MS Publisher nur ein “HTML-codfragment” einfügen kann und ich nicht weiß wie ich jetzt am besten meinen “Besucherzähler.php” in die homepage einbinden kann… Ich habe auch schon versucht, den php code direkt in das html Fenster einzufügen, hat aber auch nicht geklappt.

Auch Publisher muss doch irgendwie eine index.html ausliefern. Mach die mal mit nem normalen Texteditor auf und da pappst du das rein.

Bei der Lösung mit .htaccess und auto_prepend braucht man - soweit
ich das überblicke, habe es nicht ausprobiert - nichts an den Dateien
zu ändern.
Es ist dann nur zu beachten, daß das so eingebundene Skript selbst
gar keine Ausgabe ausliefert, sonst schreddert das das daran
angehängte (X)HTML-Dokument.

Eine andere (nicht effektive, daher nicht im Detail erläuterte)
Methode besteht darin, in der .htaccess anzugeben, daß der
PHP-parser auch Dateien mit der Endung ‘.html’ interpretieren
soll, dann wird man wohl auch mit diesem eigenartigen Editor
PHP-Einfügen können - funktioniert allerdings erst, wenn es auf
dem server interpretiert wird, nicht mit der möglicherweise
existierenden eigenständigen Vorschau von dem Editor.
Bei der Variante, wie auch der, die Dateiendung auf ‘.php’ zu
setzen, darf der Zähler dann auch eine Ausgabe machen, die dann
aber zu der Stelle passen muß, wo das PHP-Skript im Dokument
notiert ist - die Ausgabe ersetzt dann das Skript in der Ansicht im
browser.

Ich darf nochmal auf meine variante zurückgreiffen und erläutern ja? :slight_smile:

AddType application/x-httpd-php .html php_value auto_prepend_file /user/dein_user_name/www/besucherzaeler.php
Die erste Zeile legt fest, dass die .html Dateien (also z.b. index.html) auch durch PHP geparsed werden.
Die zweite “konfiguriert” PHP dazu, vor der ausführung des zu parsenden Codes (in deinem Falle normale HTML Dateien, die kein PHP Code enthalten) die Datei /user/dein_user_name/www/besucherzaeler.php “einzubinden”. Das heisst, die Datei wird als PHP Datei ausgeführt.
Die erste Zeile ist wichtig, dass PHP überhaupt ausgeführt wird, da ansonsten der Parser gar nicht informiert wird, und somit auch keine Datei voraus ausführen kann.

Wie hoffmann sagt, ist wichtig, dass das vorausgehende Script keine Ausgabe erzeugt. Ebenfalls ist wichtig, dass die HTML Dateien nicht in XHTML geschrieben sind, da PHP ansonsten versucht <?xml ...?> zu interpretieren, was es nicht kann. Falls XHTML verwendet wird, sollte man die short_open_tags deaktivieren, ganz einfach, die folgende Zeile der .htaccess Datei hinzufügen:

Ich hoffe ich habe mich einigermassen verständlich ausgedrückt.

Grüsse
cedl

Ohja, die erste Zeile mit dem ‘.html’ hatte ich glatt überlesen,
dann ist das auch nicht so schön.

Naja, wenn wirklich alle HTML-Dokumente gezählt werden sollen,
kommt es aufs gleiche raus wie die Umbenennung auf eine andere
Dateiendung.

Soll der Zähler nur in eine Seite rein, etwa die Startseite, sollte
man vielleicht lieber sowas als index.php hochladen:

[code]

<?php include (inhalt.html); include (zaehler.php); ?>

[/code]Und dann eben nur auf das Verzeichnis verweisen, nicht auf die
index.html, die man auch komplett in inhalt.html umbenennt.

Klar, es ist nicht schön, wenn eine reine HTML Datei durch den parser gejagt wird…
Nun, man könnte natürlich zusätzlich n Konstrukt machen, das die HTML Datei ausliest und ausgibt um dann vozeitig mit exit() abzubrechen, aber ob das dann schöner ist, ist auch fraglich…

Oder meinst du die Art und Weise, wie es dem Server mitgeteilt wird? ^^

[quote]Naja, wenn wirklich alle HTML-Dokumente gezählt werden sollen,
kommt es aufs gleiche raus wie die Umbenennung auf eine andere
Dateiendung.[/quote]Schlussendlich auf dem Server, ja. Aber mit einiges weniger an Aufwand. Und ich kenn den Publisher ja nicht, der macht es einem warscheinlich schwer mit der dateiendung (bei MS kann ich mir sowas glatt vorstellen ;D )

<?php include (inhalt.html); include (zaehler.php); ?>wobei man dann vielleicht lieber gleich ne einfache “reload sperre” macht in dem man mittels header auf inhalt.html weiterleitet…

[quote]Und dann eben nur auf das Verzeichnis verweisen, nicht auf die
index.html, die man auch komplett in inhalt.html umbenennt.[/quote] Wieder die Frage, ob der MS Publisher es zulässt, keine index-Datei zu haben … aber ich weiss es ja nicht ^^

Den Mechanismus, um abzuschätzen, ob gezählt werden soll oder
nicht, täte man ja eher im Zählerskript unterbringen, nicht in dem
Skript, welches den Zähler aufruft.

Sofern der Fragesteller willig und fähig ist, kleine Dateien mit einem
einfachen Texteditor zu erstellen und per ftp hochzuladen, stellen
die Möglichkeiten von diesem Programm ‘Publisher’ ja keine
Einschränkungen für das dar, was auf dem server läuft.
Da dieses Programm wohl auch keine .htaccess freiwillig erstellen
wird, ist das ohnehin notwendig, dies Programm für gewisse
Fragestellungen zu umgehen.