PHP mit einem HTML-Tag aufrufen?

  • Ich entwickle zurzeit einen neuen universellen Besucherzähler, den ich dann für alle kostenlos als Download (PHP-Quelltext) zur Verfügung stellen werde. Weil der Besucherzähler - je nach Einstellung - nicht nur Grafiken, sondern auch Zahlen (ACS2) als Ergebnis liefern soll, müsste er auch aus einer HTML-Datei aufgerufen werden können und dann das Ergebnis als Text mitteilen. Ist so etwas möglich? Bis jetzt kenne ich nur die Möglichkeit, eine PHP-Datei mit dem IMG-Tag aufzurufen, um so eine Grafik als Antwort zu erhalten. Ich würde aber gerne einen Text als Antwort bekommen. Gibt für dieses Problem eine Lösung?


    Code in der HTML-Datei:
    "Heute sind es <PHP-Aufruf> Besucher."


    Ergebnis:
    "Heute sind es 123 Besucher."


    Falls das nicht funktionieren sollte, dann werde ich halt die Möglichkeit einbauen, dass man für die Antwort eine Schriftart vorgeben kann und dass das Ergebnis dann eine Grafik ist. Oder man muss den Quelltext des Besucherzählers an der richtigen Stelle im PHP-Quelltext der eigenen Datei einbauen. Das können dann aber nur die machen, dessen Server PHP unterstützt.

  • Hallo,


    Dafür brauchst du JavaScript. Genauer gesagt die AJAX-Technik.
    Einen asynchronen URL-Aufruf, der den gewünschten Antworttext erhält.


    Ist einfacher als es zunächst klingen mag. Wenige Zeilen, wenn du es richtig machst :)

  • Schon einmal danke für die bisherigen Antworten! :thumbup:


    Ich habe mal ein wenig gegoogelt aber leider nichts gefunden. Da waren nur Beispiele die nicht funktioniert haben, oder Leute die zum X-Mal nicht verstanden haben, dass eine PHP-Datei aus einer HTML-Datei aufgerufen werden soll.

    PHP
    <?php include("datei.php"); ?>

    ...funktioniert innerhalb von HTML nicht. ;)

  • Das geht entgegen jeder Annahme jedoch tatsächlich indem man über eine .htaccess Datei dem PHP Parser mitteilt das eben auch .htm/.html/.shtml/etc. geparst werden soll:


    Code
    # Beispiel, je nach Server nicht funktionsfähig (!)
    AddType application/x-httpd-php .html .htm
  • @ Basiii
    Nein, kein XAMPP oder ähnliches. Wenn ich eine HTML-Datei bei mir lokal im Netzwerk mit dem Browser aufrufe, dann soll die PHP-Datei über das Internet auf dem Server ausgeführt werden und ihre Antwort über das Internet zurücksenden. Mit dem IMG-Tag funktioniert das, aber leider nur mit Grafiken als Antwort.

  • Dann wie bereits 2 mal erwähnt Ajax, oder eben als img-Tag :)


    Der Besucherzähler wird aber sowieso nur funktionieren wenn der Server auf dem die aufgerufene Seite liegt PHP unterstützt oder auf JavaScript zurückgegriffen wird, außer es geht nur um das reine Abrufen was ja Blödsinn wäre.

  • @ Basiii
    Nach dem Quelltext eines Aufrufs mit Ajax hatte ich schon gegoogelt. Leider nichts gefunden... :( Nur Aufruf eines PHP's innerhalb eines anderen PHP's, was wohl Unsinn ist, weil es dafür in PHP einen Befehl gibt.

  • Oder wirklich die Ajax Variante, Grundaufbau ist auch ohne jQuery leicht:


    Diese Variante funktioniert jetzt nur für den Counter, zeigt aber schön die Schritte bei Ajax auf. Für weitere Lektüre kann ich dir Webbausteine.de; Suchanfrage an eine Datenbank über AJAX senden und empfangen empfehlen. Zeigt sehr schön, wie man sich via Ajax zum PHP File und im PHP File zu einer MySQL DB verbindet, also für beides was dabei.

  • Oh, verdammt, jetzt verstehe ich was du wolltest ^^


    Danke The Scout ;)


    Die Lösung von The Scout ist genau das richtige :)


    und @Sassenburger


    Auf vielen Servern ist http:// Include ausgeschaltet, d.h du kannst nur Dateien Includen die auf dem Server des Scriptes Laufen.

  • Eine Sprungmarke zu einer anderen Datei ;)


    Mit include, include_once, require und require_once kannst du andere PHP oder HTML Dateien in die aktuelle Datei laden.


    Was wolf sagen wollte ist das auf den meisten Servern deaktiviert ist das Dateien von fremden Servern eingebunden werden können, soll heißen du kannst nur deine eigenen Dateien vom selben Server einlesen.


    PHP
    # datei1.php
    $var = "Hallo Welt!";


    PHP
    # datei2.php
    include("datei1.php");
    print $var;
  • @ Basiii
    So sollte es dann ja auch sein. Sonst bedient sich jemand an fremden Codes! ;)


    Ich schaue mal nach, was meine beiden Server da machen. Moment...


    Ergebnis:
    Ist auch gesperrt. Wenn ich die Domain davor setze, dann funktioniert es sogar auf dem gleichen Server nicht. Ansonsten geht es aber. Sollte ich mir merken... :D

  • Aber soweit ich weiß geht es mit ajax :D


    Heißt du könntest, dein PHP auf deinem Server lagern und mit ajax, die Kunden das Script aufrufen lassen ^^


    Und wenn du doch erst 2 Wochen damit arbeitest, wieso gewöhnst du dir dann goto erst an?

  • Und nein, PHP auf dem Server lagern und via Ajax aufrufen ist keine gute Idee, da dadurch der Endanwender zum Verwenden von JavaScript (JS) gezwungen wird.


    Wenn man JS, und somit auch AJAX, verwendet, sollte man immer das Prinzip des Progressive Enhancement berücksichtigen, soll heißen, erst so programmieren, dass es vollkommen ohne JS funktioniert, und dann die Funktionalität mit JS erweitern.
    Selbst heutzutage gibt es noch die JS Verächter, die standardmäßig mit NoScript uÄ durch die VL gondeln, und solchen vergraulst du mit wolfs Taktik einfach deine Seite. Die kommen einmal, merken, es geht nicht ohne JS, und kommen nie wieder :/


    Und zu goto sage ich hier nix mehr :D

  • Wenn es sich um einen Besucherzähler handelt kann ein JS-Verächter es bestimmt verschmerzen, den nicht zu sehen ;) Generell kommt es immer auf die Zielgruppe an - hast du tendenziell fast keine dieser Leute in deiner Zielgruppe, musst du darauf auch nicht wirklich achten.
    Nebenbei blocken moderne Browser den Aufruf eines Skriptes, das auf einem Server im Web liegt, wenn du von einer lokalen HTML-Datei aus den AJAX-Aufruf machst. Sprich ein AJAX-Aufruf von einer lokalen HTML-Datei auf eine PHP-Datei auf einem Server wird nicht funktionieren, weil vom Browser geblockt, egal ob der Server den Zugriff erlaubt oder nicht.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!