Ankündigung

Einklappen
Keine Ankündigung bisher.

imagejpeg - temporäre Dateien mit unterschiedlichen Dateinamen

Einklappen

Neue Werbung 2019

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

  • imagejpeg - temporäre Dateien mit unterschiedlichen Dateinamen

    Hallo Zusammen!

    Ich habe ein PHP-Problem, das wahrscheinlich recht trivial ist. Allerdings sehe ich den Wald vor lauter Bäumen nicht.

    Aus einer Datenbank lese ich die an einem Spiel teilnehmenden Sportler aus. Die Sportler sollen dann mit einem Bild angezeigt werden.

    In einer WHILE-Schleife wird ein PHP-Script aufgerufen, das die Bilder erzeugen soll.

    echo "<img src="grafik_erstellen.php" width="200" alt="".$spieler."">";

    Das JPEG wird dann (mit Wasserzeichen und Spielernamen) mit folgendem Befehl erstellt.

    imagejpeg($diagramm, NULL, 100);

    Klappt alles prima - bis auf den Umstand, dass immer dann, wenn mehrere Spieler angezeigt werden, immer nur das gleiche Bild erscheint. In einem Spiel mit 9 Spielern kommt 9mal das gleiche Bild (immer das des letzten eingesetzten Spielers).

    Ich vermute (nach stundenlanger Recherche), dass 9mal eine Grafik mit dem Namen "grafik_erstellen.php.jpg" erstellt wird und deswegen immer nur die zuletzt erzeugte Datei angezeigt wird.

    Das Ziel müssten dann unterschiedliche Dateinamen sein. Nur hier scheitere ich gnadenlos.

    Gibt es eine Möglichkeit, mit dem PHP-Befehl imagejpeg temporäre Dateien mit unterschiedlichen Namen zu erstellen? Oder sieht jemand da einen anderen Ansatz?

    Viele Dank für Eure Hilfe im Voraus.

    Viele Grüße aus der Pfalz,

    Markus

  • #2
    Du musst die ID des Spielers als Parameter mitgeben und das im PHP-Script natürlich auch auswerten:

    PHP-Code:
    <img src="spieler_grafik.php?spieler_id=<?= urlencode($spieler_id?>" alt="<?= htmlspecialchars($spieler_nameENT_COMPAT'UTF-8'?>" />

    Kommentar


    • #3
      Zitat von ochsenkiller Beitrag anzeigen
      Ich vermute (nach stundenlanger Recherche), dass 9mal eine Grafik mit dem Namen "grafik_erstellen.php.jpg" erstellt wird
      Gute These, die kannst du ja auch selber ganz einfach mal prüfen: Ruf die URL einfach immer wieder auf und guck zwischendurch, was für ein Bild erstellt wird. Da du keinen Dateinamen bei imagejpeg() angibst, erstellst du aber wohl keine Datei. Nächste Frage ist dann: Woher soll das Script wissen, bzw. woher weiss es denn überhaupt schon jetzt, welches Bild es erstellen soll? Die URL ist ja immer die selbe. Dazu hat hellbringer ja schon was geschrieben.
      [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

      Kommentar


      • #4
        Wenn Du nur ein Bild erstellen willst, und
        HTML-Code:
        <img src="grafik_erstellen.php" width="200" alt="".$spieler."">
        deutet darauf hin, dann macht eine while schleife wenig Sinn.

        Die id des jeweiligen Spielers zu übergeben, auch so spieler_grafik.php/:id kann da nicht schaden.
        Die eine Zeile PHP Code ist allerdings etwas dürftig, und wie

        grafik_erstellen.php.jpg zustande kommt hab ich auch nicht verstanden.

        Kommentar


        • #5
          Hallo Heilbringer!

          Vielen Dank für Deine Hilfe.

          Leider löst das das Problem nicht. Daten zu den Spielern werden in eine Session geschrieben. Das klappt auch alles prima.

          Nur wenn ich die PHP-Bilddatei innerhalb eines PHP-Scriptes mehrfach aufrufe (z. B. in einer Schleife), dann bekomme ich immer nur das zuletzt erzeugte Bild angezeigt - und zwar genau so oft, wie die Schleife durchlaufen wurde.

          Die Daten passen, da habe ich mir mittlerweile einen Wolf getestet.

          Es muss - vielleicht rede ich mir das auch nur ein - am immer gleichen Namen der erstellten Bilddatei liegen.

          Viele Grüße,

          Markus

          Kommentar


          • #6
            Hallo chorn, hallo tomBuilder,

            einzelne Bilder zu erstellen funktioniert ohne Probleme. Sobald mehrere Bilder durch ein PHP-Script erstellt werden, erhalte ich immer nur die Anzeige des zuletzt erstellten Bilder. Und das genau so oft, wie das PHP-Script die Bilddatei erstellt hat.

            Ich befürchte, die Ursache liegt in folgender Zeile:

            HTML-Code:
            imagejpeg($diagramm, NULL, 100);
            Ich möchte aber vermeiden, jedes Mal einen Haufen Bilder abzuspeichern (wie auch immer das geht). Die reine Weitergabe an den Browser war für mich bislang ausreichend - bis ich auf die Idee kam, die Bilddatei in einem PHP-Srcipt mehrfach aufzurufen.

            Viele Grüße,

            Markus

            Kommentar


            • #7
              Hallo Jungs,

              Problem gelöst. Habe das Script umgebaut und bin Eurem Rat gefolgt. Es funzt!!!

              Vielen Dank!

              Viele Grüße,

              Markus

              Kommentar


              • #8
                Es muss ja nicht sein, daß man eine detalierte Frage inclusive Code oder eine entsprechnende Antwort postet, ist ja nur ein Forum.

                Kommentar

                Lädt...
                X