stefan D.: php_skript aufruf durch ein image?

hallo erstmal,
ich habe in einem brandneuen buch (ISBN:3898422577) gelesen dass es einen trick gibt um ein php skript aufzurufen OHNE eine seite neu laden zu müssen...
wenn ich das richtig verstanden habe wird hierbei die scr eines verborgenen GIF Pixels verändert und darin das skript aufgerufen.

nur teil des codes, habs abgeschrieben:
  document.php.src="umfrageeintrag.php?w1=" + w1 + "&w2="w2;

in dem umfrageeintrag.php steht(im buch auch ohne <?php ... ?>:
  header("Content type: image/gif");
  $fp=fopen("balken.gif,"rb");
  fpassthru("fp); //kein close

jetzt gibt dieses skript ja balken.gif als src an...kann ich gleichzeitig innerhalb dieses skripts auch z.B: Datenbankeinträge machen?

vielen Dank
Stefan D.

  1. Hallo stefan,

    ich habe in einem brandneuen buch (ISBN:3898422577) gelesen

    wie heißt das Buch?

    nur teil des codes, habs abgeschrieben:
      document.php.src="umfrageeintrag.php?w1=" + w1 + "&w2="w2;

    das document.php.src soll js sein, oder? - ohne js geht es dann wieder nicht...

    jetzt gibt dieses skript ja balken.gif als src an...kann ich gleichzeitig innerhalb dieses skripts auch z.B: Datenbankeinträge machen?

    was meinst du mit 'Datenbankeinträge machen'? willst du komplette Texte ausgeben? oder einfach nur in der umfrageeintrag.php eine Datenbankabfrage machen?

    Grüße aus Nürnberg
    Tobias

    --
    sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    (Selfcode -> http://emmanuel.dammerer.at/selfcode.html)
    1. wie heißt das Buch?

      Buchtitel: "Flash MX und PHP,MySQL und XML" (c) 2003 also scheinbar ziemlich neu...

      das document.php.src soll js sein, oder? - ohne js geht es dann wieder nicht...

      stimme ich dir zu. des php is scheinbar die id von dem image, is aber aus dem buch nicht ersichtlich, weil leider nicht der vollständige code geschrieben steht.

      was meinst du mit 'Datenbankeinträge machen'? willst du komplette Texte ausgeben? oder einfach nur in der umfrageeintrag.php eine Datenbankabfrage machen?

      ich möchte datensätze zu einer MySQL Datenbank hinzufügen.

      generell geht es mir darum ob das ein weg ist ein php als serverseitiges skript OHNE laden einer html seite aufzurufen.
      nach meinem verständis ist das ja sonst unmöglich.

      mfg
      Stefan

      1. Hallo Stefan,

        Buchtitel: "Flash MX und PHP,MySQL und XML" (c) 2003 also scheinbar ziemlich neu...

        da habe wir es ja schon "Flash" - dann kann das Buch ja nichts taugen :-) *scnr*
        ob das Buch was taugt kann ich dir jetzt nicht sagen.

        was meinst du mit 'Datenbankeinträge machen'? willst du komplette Texte ausgeben? oder einfach nur in der umfrageeintrag.php eine Datenbankabfrage machen?
        ich möchte datensätze zu einer MySQL Datenbank hinzufügen.

        dann musst du eben die Daten die du eintragen willst an den Aufruf des Scriptes dranhängen und diese dann von dem Script eintragen lassen.

        generell geht es mir darum ob das ein weg ist ein php als serverseitiges skript OHNE laden einer html seite aufzurufen.

        ich halte es für keine gute Idee, da du wieder auf js angewiesen bist, außerdem merkt der User dass was passiert, wenn du die Seite neu lädst - auf 'deine' Art merkt der User vielleicht überhaupt nicht, dass da überhaupt was passiert.

        Grüße aus Nürnberg
        Tobias

        --
        sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        (Selfcode -> http://emmanuel.dammerer.at/selfcode.html)
        1. Hallo Thomas,

          da habe wir es ja schon "Flash" - dann kann das Buch ja nichts taugen :-) *scnr*

          bin auch kein fan davon, will mich aber grad in php und MySQL einarbeiten und des scheint ganz brauchbar zu sein.

          ich halte es für keine gute Idee, da du wieder auf js angewiesen bist,

          äh, na und?

          »»außerdem merkt der User dass was passiert, wenn du die Seite neu lädst - auf 'deine' Art merkt der User vielleicht überhaupt nicht, dass da überhaupt was passiert.
          was manchmal ja auch ganz praktisch sein kann und gerade bei einem datenbankeintrag verändert sich die seite möglicherweise um kein byte, also ist doch ein neuladen verschwendeter traffic und zeit beim user.

          Grüße aus Nürnberg
          Tobias

          Grüße aus St. Pölten
          Stefan

          1. Hallo Stefan,

            Hallo Thomas,

            *grmpf* schau nochmal genau hin... :-)

            ich halte es für keine gute Idee, da du wieder auf js angewiesen bist,
            äh, na und?

            kein js -> keine Daten...

            außerdem merkt der User dass was passiert, wenn du die Seite neu lädst - auf 'deine' Art merkt der User vielleicht überhaupt nicht, dass da überhaupt was passiert.
            was manchmal ja auch ganz praktisch sein kann und gerade bei einem datenbankeintrag verändert sich die seite möglicherweise um kein byte,

            naja, wenn du erst ein Formular ausfüllst, und dann sendest du dieses ab - die zweite Seite ist doch dann schon anderst, als die erste - oder wie meinst du das?

            also ist doch ein neuladen verschwendeter traffic und zeit beim user.

            es sagt ja keiner dass du eine Datei mit 100KB neuladen sollst :-)

            Grüße aus St. Pölten

            wo ist denn _das_? :-)

            Grüße aus Nürnberg
            Tobias

            --
            sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
            (Selfcode -> http://emmanuel.dammerer.at/selfcode.html)
            1. Hallo Tobias!

              *grmpf* schau nochmal genau hin... :-)

              ups, tschuldichkeit. ned persönlich nehmen!

              kein js -> keine Daten...

              ich nehm mal einfach an das javascript aktiviert is, einfach so! gibts da eigentlich eine statistik drüber?

              naja, wenn du erst ein Formular ausfüllst, und dann sendest du dieses ab - die zweite Seite ist doch dann schon anderst, als die erste - oder wie meinst du das?

              mein argument kommt wohl auch nur in seltenen fällen vor, geb ich zu.

              Grüße aus St. Pölten
              Stefan D.

              PS: St. Pölten ist die wunderschöne Landeshauptstadt von Niederösterreich

              1. Hallo Stefan,

                *grmpf* schau nochmal genau hin... :-)
                ups, tschuldichkeit. ned persönlich nehmen!

                nene :-)

                ich nehm mal einfach an das javascript aktiviert is, einfach so!

                warum?

                gibts da eigentlich eine statistik drüber?

                Statistiken gibt es viele - ob die Stimmen (auch für deine Zielgruppe) weiß ich nicht, aber du solltest grundsätzlich davon ausgehen, dass deine Seite ohne js funktionieren muss. Oder willst du die 1-10% ohne js als Kunden verlieren?

                naja, wenn du erst ein Formular ausfüllst, und dann sendest du dieses ab - die zweite Seite ist doch dann schon anderst, als die erste - oder wie meinst du das?
                mein argument kommt wohl auch nur in seltenen fällen vor, geb ich zu.

                in welchen Fällen eigentlich? Ich wüsste keinen.

                PS: St. Pölten ist die wunderschöne Landeshauptstadt von Niederösterreich

                ach in Österreich - kein wunder dass ich davon noch nie gehört habe :-)

                Grüße aus Nürnberg
                Tobias

                --
                sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
                (Selfcode -> http://emmanuel.dammerer.at/selfcode.html)
  2. Hi,

    ich habe das auch schon mal gesehen! Bei diesen "ICQ-Blumen" z.B:
    im image wird irgendein Skript, dem die ICQ-Nummer als Variable bergibst aufgerufen, das prüft ob der user online ist oder nicht, und entsprechend eine grüne oder rote Blume einbindet.

    Weiterhin habe ich diese Möglichkeit gesehen, um eine Statistik über JS-Daten zu erstellen:

    <script type="text/javascript">
    document.write("<img src="jsstats.php?jsenabled=true">");
    </script>

    <noscript>
    <img src="jsstats.php?jsenabled=false">
    </noscript>

    kannst natürlich auch dann noch Auflösung und ä. übermitteln

    ist eigentlich ganz cool, habs selber noch nie ausprobiert.

    Christian

  3. Moin!

    hallo erstmal,
    ich habe in einem brandneuen buch (ISBN:3898422577) gelesen dass es einen trick gibt um ein php skript aufzurufen OHNE eine seite neu laden zu müssen...
    wenn ich das richtig verstanden habe wird hierbei die scr eines verborgenen GIF Pixels verändert und darin das skript aufgerufen.

    Das ist absolut nicht neu. PHP erlaubt ja ohnehin, dass man damit dynamisch Bilder erzeugen kann, warum sollte man es nicht auch für andere Dinge nutzen.

    Das, was du scheinbar willst, ist also, durch Neuladen eines Bildes mit Javascript, dessen URL passende Parameterangaben enthält, auf dem Server irgendwas auszulösen.

    Bedenke dabei nur:
    1. Die Änderung der URL eines Bildes erfordert zwingend Javascript - ohne passiert gar nichts.
    2. Die Länge des URL-Parameters ist zwar theoretisch unbegrenzt, die real existierenden Browser, Proxys und Server aber begrenzen die Datenmenge auf Werte zwischen 1 bis 8 KB. Mehr Daten sind also auf diese Weise nicht übertragbar.
    3. Dein Ansatz ist für gewisse, optionale Dinge, die im Hintergrund laufen sollen, durchaus ganz nett, aber ich würde auf diese Weise keinesfalls elementare Funktionen realisieren wollen. Und gewisse Dinge wie POST-Formulare versenden (z.B. mit Dateiuploads) geht eben gar nicht.

    Dein Einwand, dass damit nicht immer eine neue Seite geladen werden muß, mag zwar korrekt sein, das halte ich aber für das kleinere Übel. Die Benutzer sind es so gewohnt. Wenn du hingegen still und leise nur einfach ein Bild austauschst (und dein Code tauscht da noch nicht mal unbedingt irgendwas sichtbar aus, sondern überträgt immer nur dasselbe Bild), ist das für den Benutzer sehr ungewöhnlich.

    - Sven Rautenberg

    --
    "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)