Bild / Grafik Aufrufe loggen / zählen / auswerten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bild / Grafik Aufrufe loggen / zählen / auswerten

    Hallo,

    ich habe eine Bild auf einem PHP und MySQL fähigen WebSpace (Server A) liegen.
    Dieses Bild wird von einer anderen Domain (Server B) direkt dort in der Seite eingebunden.

    Jetzt möchten wir gerne ermitteln wie viele Aufrufe das Bild vom Server B hat. Gibt es da eine Möglichkeit?

    Mein Vorschlag wäre:

    Das Bild in eine php-Seite mit einbetten, dass sie also nicht selber als Datei auf dem Server liegt. Sondern generiert wird. Also zum Beispiel anstatt www.Domain.xyz/bild.jpg würde das Bild mit der URL www.Domain.xyz/bild.php eingebunden werden, welches dann das Bild anzeigt, so als wäre es ein Bild?

    Mit freundlichen Grüßen
    php-linux-fan

  • #2
    ja, machs so.

    Kommentar


    • #3
      Hallo TobiaZ,

      Original geschrieben von TobiaZ
      ja, machs so.
      leider klappt das alles nicht so wie ich mir das vorstelle,
      hast du mal einen Link oder ein funktionierendes Script?

      MfG

      Kommentar


      • #4
        Falsche Frage.

        Poste lieber mal dein Problem, dann versuchen wir zusammen es zu lösen.

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          Falsche Frage.

          Poste lieber mal dein Problem, dann versuchen wir zusammen es zu lösen.
          Ok. :-) Danke!


          PHP-Code:
          <?php
          header
          ("Content-type: image/png"); // wenn das Bild ein png ist diese Zeile verwenden
          // header("Content-Type: image/jpeg"); // wenn das Bild ein jpg ist diese Zeile verwenden
          $im    imagecreatefrompng("bild.png");
          imagepng($im);     //wird ein zuvor mit imagecreate() erzeugtes Bild (im) im PNG-Format an den Browser gesendet
          imagedestroy($im); //löscht den Speicher, welcher durch das Bild (im) belegt wurde
          ?>
          Jetzt muß aber immer noch das Bild "bild.png" auf dem Server vorliegen als Datei. Gibt es die Möglichkeit den Inhlat des Bildes mit in die php - Datei zu speichern? Oder in eine weitere php-Datei, welche dann includet wird?

          MfG

          Kommentar


          • #6
            warum willst du nicht, daß das bild als datei auf dem server liegt? macht doch beim zählen keinen unterschied!?
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              Original geschrieben von php-linux-fan
              Gibt es die Möglichkeit den Inhlat des Bildes mit in die php - Datei zu speichern?
              imagecreatefromstring(), sowie base64_encode/-decode.
              Oder in eine weitere php-Datei, welche dann includet wird?
              Was würde es dann für einen Unterschied machen, ob du die Daten in einer zusätzlichen .png oder einer .php ablegst ...?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Original geschrieben von derHund
                warum willst du nicht, daß das bild als datei auf dem server liegt? macht doch beim zählen keinen unterschied!?
                So kommt doch keiner mehr an das Bild ran ausser über die PHP Datei.

                Kommentar


                • #9
                  Original geschrieben von wahsaga
                  imagecreatefromstring(), sowie base64_encode/-decode.

                  Was würde es dann für einen Unterschied machen, ob du die Daten in einer zusätzlichen .png oder einer .php ablegst ...?
                  So könnte das für verschieden Bilder genutzt werden. Oder?

                  Kommentar


                  • #10
                    Warum eigentlich die imagefunktionen?

                    PHP-Code:
                    //image.php

                    //mach ma Zählkladerasatsch

                    header("Content-Type: image/png");
                    readfile("meinbild.png"); 
                    ist m.E. schneller.

                    Achso, und das man an das Bild nur per PHP dran kommt stimmt nicht wirklich - jeder der das Bild haben will kann es auf der Seite wo es eingebunden ist speichern und zur Not nen Screenshot machen.

                    Kommentar


                    • #11
                      Original geschrieben von prego
                      ist m.E. schneller.

                      Achso, und das man an das Bild nur per PHP dran kommt stimmt nicht wirklich - jeder der das Bild haben will kann es auf der Seite wo es eingebunden ist speichern und zur Not nen Screenshot machen. [/B]
                      Das Bild soll nicht gegen Speichern geschützt werden, es kann ruhig gespeichert werden. Es sollen aber Informationen über den User der das Bild sich anschaut gespeichert werden.

                      Kommentar


                      • #12
                        Hallo,

                        so nun hier ein paar Beispielwerte die das Array $_Server enthalten kann:

                        [HTTP_ACCEPT] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, ...
                        [HTTP_ACCEPT_LANGUAGE] => de
                        [HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
                        [REMOTE_ADDR] =>
                        [HTTP_ACCEPT_CHARSET]
                        [HTTP_X_WAP_PROFILE]
                        [HTTP_PROFILE]

                        Des Weiteren möchte ich in die php - Datei ein php Script includen welches mir den Inhalt von $_SERVER in eine Datenbank schreibt. Jetzt ist es aber so das $_SERVER ein Array ausgibt welches unterschiedliche Größe und Inhalte haben kann. Ich möchte jetzt das bei jedem Aufruf des Bildes die Informationen über den Aufrufenden aus der $_SERVER in die Datenbank gespeichert wird. Mit einer einfachen

                        PHP-Code:
                        <?php
                        foreach ($_SERVER as $key => $value
                        {
                           echo 
                        "[$key]:  $value<br />\n";
                        }
                        ?>
                        Schleife habe ich jetzt mir den Inhalt immer ausgegeben. Nun soll der sich ändernde Inhalt in eine Datenbank.
                        Ich habe mir 2 Ansätze:
                        A) die Datenbank hat eine Tabelle mit 3 Spalten
                        Spalte A: Nummer (einmalige Nummer in der Spalte)
                        Spalte B: Serverzeit (Timestamp)
                        Spalte C: Nummer die alle Elemente bekommen die zu diesem Aufruf gehören (kommt somit genau so oft vor wie $_SERVER Werte für diesen Aufruf ausgegeben hat)

                        B) die Datenbank ergänzt sich seine fehlenden Spalten selber
                        das Script überprüft ob es in der Tabelle schon eine Spalte mit dem Namen des Schlüsselwertes schon gibt und trägt dann den Wert dort ein, wenn die Spalte fehlt dann soll es die Spalte anlegen, auch wenn schon vorher Datensätze in der Datenbank eingetragen waren die diese Spalte nicht haben.

                        Welche Variante ist die geeigneter oder gibt es eine bessere?

                        Wie realisiere ich das Vorgehen mit den entsprechenden Varianten?

                        MfG

                        Kommentar


                        • #13
                          Wähle vorher aus, welche Werte du wirklich speichern willst und leg deine DB entsprechend an.


                          PHP-Code:
                          //image.php

                          include("db.inc.php");

                          $db = new db('meine_db''mein_server''mein_user''mein_pass');

                          $sql "INSERT INTO tab1 SET remote_addr = '".$_SERVER['REMOTE_ADDR']."', 
                                  user_agent='"
                          .$_SERVER['HTTP_USER_AGENT']."', 
                                  visit_time = now()"
                          //etc.

                          $db->Execute($sql);

                          header("Content-Type: image/png");
                          readfile("meinbild.png"); 

                          EDIT:
                          Dadurch das du die Werte so einzeln in der DB schreibst, kannst nachher sehr gut Statistik Queries drauf los lassen um zB raus zu finden, welcher Browser am meisten dort war. Wenn du deinen Array zb serialisiert (serialize()) musst du jede Zeile mit PHP anpacken um informationen daraus zu bekommen.
                          Zuletzt geändert von prego; 28.03.2006, 18:16.

                          Kommentar


                          • #14
                            EDIT:
                            Es muss nicht jedes Mal ein Fullquote sein.
                            wahsaga



                            Das Problem ist folgendes: User 1 der die Seite besucht sitzt hinter einer NAT so kann nur die IP seines DSL Anschlusses ermittelt werden. User B sürft aber über einen Proxy, so ist seine Private IP auch sichtbar. Dies zeigt dir [HTTP_X_FORWARDED_FOR] und [HTTP_VIA] an. Jetzt ist bei User A das aber gar nicht im Array drin, wie soll das Scrippt das dann in die DB eintragen. Weiter kenne ich nicht alle $_SERVER Variabel die es gibt oder mein WebSpace unterstützt. Deswegen wollte ich erstmal alle sammel die es so gibt und später dann ausortieren welche mich nicht interresiern.

                            MfG
                            Zuletzt geändert von wahsaga; 28.03.2006, 20:23.

                            Kommentar


                            • #15
                              PHP-Code:
                              phpinfo(); 

                              Kommentar

                              Lädt...
                              X