mika: Besucherzähler anbieten

Hallo Zusammen,

ich möchte mit PHP einen Besucherzähler programmieren, den andere Webmaster kostenlos auf Ihrer Seite einbinden können.

Die Verarbeitung soll komplett auf meinem Webspace erfolgen.

Das heißt, auf der Seite des Webmasters erfolgt lediglich die Ausgabe des Zählerstandes.

Auf diese Weise möchte ich Webmastern, deren Webspace kein PHP (oder andere serverseitige Skriptsprachen) unterstützen, die Möglichkeit bieten dennoch einen Besucherzähler auf ihren Seiten zu implementieren.

Dass es schon zahlreiche Anbieter kostenloser Besucherzähler gibt ist mir schon klar :-). Aber ich möchte eben auch so einen Dienst anbieten.

Ich habe mir auch schon abgeguckt wie andere Anbieter so etwas realisieren.

Der Aufruf des Skripts erfolgt auf der Seite des Webmasters über ein IMG-Tag.

<img src="http://www.counteranbieter/counter.cgi?id=...." />

Als Quelle für das Bild, wird also auf ein Skript verwiesen, dass den Zählerstand erhöht und vermutlich ein Bild vom aktuellen Zählerstand dynamisch erzeugt.

So weit so gut, damit habe ich kein Problem.

Aber wie schafft man es, dass dieses Bild dann auf der Seite angezeigt wird, die das Skript aufgerufen hat????

Habe schon auf php.net und google gesucht wie man die Ausgabe steuern kann.
Aber ich habe nichts brauchbares finden können.

Kann mir jemand verraten welchen Weg ich einschlagen kann/muss um dieses Problem zu lösen?

  1. <img src="http://www.counteranbieter/counter.cgi?id=...." />

    Als Quelle für das Bild, wird also auf ein Skript verwiesen, dass den Zählerstand erhöht und vermutlich ein Bild vom aktuellen Zählerstand dynamisch erzeugt.

    Aber wie schafft man es, dass dieses Bild dann auf der Seite angezeigt wird, die das Skript aufgerufen hat????

    Hast du doch bereits geschrieben, das Skript wird mittels <img> eingebunden bzw. aufgerufen, d.h. was immer der Server antwortet, wird vom Browser als Bild interpretiert und angezeigt (sofern möglich).

    Habe schon auf php.net und google gesucht wie man die Ausgabe steuern kann.

    Es gibt in der PHP-Anleitung ein Kapitel zu Grafikfunktionen, und dort findest du auch eine Funktion, mit der man eine Grafik ausgeben kann: imagegd2().

    PS: Dass es schon zahlreiche Anbieter kostenloser Besucherzähler gibt, ist dir sicher klar ;-)

    1. Es gibt in der PHP-Anleitung ein Kapitel zu Grafikfunktionen, und dort findest du auch eine Funktion, mit der man eine Grafik ausgeben kann: imagegd2().

      vermutlich der richtige Weg, aber ich bekomme immer noch keine Ausgabe auf der HTML-Seite. Das Skript wird definitiv per IMG-Tag ausgeführt, aber das Bild kann nicht angezeigt werden auf der HTML-Seite

      HTML-Code:
      <html>
      <head>
       <title></title>
      </head>
      <body>
       <img src="http://localhost/website/service/counter/count.php" />
      </body>
      </html>

      PHP-Skript:
      <?php
       $picture = imagecreate(100, 50);
       imagestring($picture, 1, 0, 0, 'Test', 3);
       imagegd2($picture);
      ?>

      1. Hi,

        Das Skript wird definitiv per IMG-Tag ausgeführt, aber das Bild kann nicht angezeigt werden auf der HTML-Seite

        und was passiert, wenn Du es _ohne_ HTML-Seite ausführst?

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Das Skript wird definitiv per IMG-Tag ausgeführt, aber das Bild kann nicht angezeigt werden auf der HTML-Seite

          Hallo Zusammen,

          mit folgendem Skript funktioniert die Ausgabe auf der HTML-Seite:

          <?php
            $picture = imagecreate(100, 50);
            imagestring($picture, 1, 0, 0, 'Test', 3);
            imagejpeg($picture);
          ?>

          Für die Ausgabe ist die letzte Zeile wichtig!!!

          1. <?php
              $picture = imagecreate(100, 50);
              imagestring($picture, 1, 0, 0, 'Test', 3);
              imagejpeg($picture);
            ?>

            Für die Ausgabe ist die letzte Zeile wichtig!!!

            Stimmt, imagegd2() spuckt ja ein gd-eigenes Format aus. Für Grafiken solltest du aber tunlichst niemals JPEG verwenden, sondern PNG. JPEG eignet sich wegen der Komprimierungsverluste nur für Fotos und dergleichen.

            Was in deinem Code außerdem fehlt, ist die Ausgabe des richtigen Datentyps, denn nicht jeder Browser rätselt, was er da wohl bekommen haben mag:

            header("Content-Type: image/png");
            $picture = imagecreate(100, 50);
            imagestring($picture, 1, 0, 0, 'Test', 3);
            imagepng($picture);

            Mit den imagepng()-Parametern quality und filter lässt sich die Datengröße übrigens teilweise deutlich reduzieren. Du könntest das Bild, das mit obigem Code erzeugt wird, auf deiner Platte abspeichern, ein Werkzeug wie OptiPNG drüberlaufen lassen und die ausgegebenen Werte für den Code verwenden.