Berti: Umlaute aus Datenbank

Hallo,

ich habe eine Datenbank, aus dieser zieht sich meine Seite die benötigten Daten (Namen). Z.B. Fritz Müller.

Ich habe jetzt zu jedem Namen ein Foto angelegt und das so gemacht, dass die Fotos z.B. mit ThomasFrank.jpg aufgerufen werden. Das klappt auch ganz gut, außer bei dem og FritzMüller.jpg, sehr wahrscheinlich wohl wegen der Umlaute. Wie kann ich das denn am besten lösen?

Vielen Dank, Gruß

  1. Wie kann ich das denn am besten lösen?

    Den Namen mit dem richtigen Zeichensatz aus der Datenbank holen (direkt nach dem mysql_select_db ein "SET NAMES 'zeichensatz'" ausführen).

  2. Hi Berti!

    Ich habe jetzt zu jedem Namen ein Foto angelegt und das so gemacht, dass die Fotos z.B. mit ThomasFrank.jpg aufgerufen werden.

    Heißt "aufgerufen werden", dass du den Namen nutzt, um ein img-Element mit der passenden Quelle auszustatten?
    Wenn ja, solltest du darauf achten, diese Quelle ihrem Kontext entsprechend zu maskieren, also die Quelle so zu schreiben, dass ein entsprechender Request des anfordernden User-Agents diese Quelle auch vom Server ausgeliefert bekommt.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
  3. Hallo

    ich habe eine Datenbank, aus dieser zieht sich meine Seite die benötigten Daten (Namen). Z.B. Fritz Müller.

    Ich habe jetzt zu jedem Namen ein Foto angelegt und das so gemacht, dass die Fotos z.B. mit ThomasFrank.jpg aufgerufen werden. Das klappt auch ganz gut, außer bei dem og FritzMüller.jpg, sehr wahrscheinlich wohl wegen der Umlaute.

    Vorausgesetzt, der Name wird so, wie es sein soll, aus der Datenbank ausgegeben (keine Zeichenkodierungskonflikte zwischen DB, verarbeitendem Skript und Servereinstellungen für den Charset), müsstest du die Umlaute für die Verwendung in URLs maskieren. In URLs dürfen beispielsweise keine Umlaute oder auch Leerzeichen verwendet werden, deshalb müssen sie den Regeln der RFC 1738 entsprechend maskiert werden. Dazu ist (in PHP, falls dir das zur Verfügung steht) die Funktion rawurlencode zuständig.

    Tschö, Auge

    --
    Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
    Terry Pratchett, "Wachen! Wachen!"
    Veranstaltungsdatenbank Vdb 0.3
    1. Hi!

      Ich habe jetzt zu jedem Namen ein Foto angelegt und das so gemacht, dass die Fotos z.B. mit ThomasFrank.jpg aufgerufen werden. Das klappt auch ganz gut, außer bei dem og FritzMüller.jpg, sehr wahrscheinlich wohl wegen der Umlaute.
      Vorausgesetzt, der Name wird so, wie es sein soll, aus der Datenbank ausgegeben (keine Zeichenkodierungskonflikte zwischen DB, verarbeitendem Skript und Servereinstellungen für den Charset), müsstest du die Umlaute für die Verwendung in URLs maskieren.

      Obendrein kann es auch noch ein Problem mit dem Dateisystem geben. Die potentiell kritischen Stellen sind also Datenbank, PHP (oder was als Programmiersprache verwendet wird), Dateisystem, URL, HTML, Browser. Der OP müsste schon genauer untersuchen und spezifizieren, was das Problem ist, wenn er zielführendere Hinweise bekommen möchte.

      Lo!