Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Umlaute Problem bei POST/GET von HTML-Formular

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.05.2003
    Beiträge
    127

    Umlaute Problem bei POST/GET von HTML-Formular

    Hallo,
    ich bekomme per GET Daten von einer HTML-Seite (also nicht php) an mein PHP-script und suche anhand dieser Daten Einträge in einer Datenbank.
    Solange keine Umlaute im Formular eingegeben werden, geht das auch. Wenn ein Textbasierter Browser verwendet wird, wie zum Beispiel w3m, geht das auch ganz prima. Nehme ich Firefox oder den IE, geht das nicht mehr.
    In der URL steht zum Beipiel:
    Code:
    http://irgendwer.dyndns.info/umfrage.php?vorname=Steve&nachname=M%FCller
    Mit dem w3m sieht das im Terminalfenster auf der Ergebnisseite so aus:
    Code:
    nachname='MA~1/4ller'
    Wie behandle ich die Umlaute richtig? Ist das ein Problem, das ich mit HTML oder eines, das ich mit PHP habe?

    Danke,
    mamue

  2. #2
    wollow
    Gast
    Wenn du Umlaute per GET weitergeben willst musst du sie vor der Übergabe umwandeln...

    Schau mal: http://www.php3.de/urlencode

    ~edit~

    Achja und um weiteren Fragen vorzubeugen
    Nach der Übergabe natürlich wieder "zurück" umwandeln:

    http://de3.php.net/manual/de/function.urldecode.php
    Geändert von wollow (11-06-2005 um 18:05 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    07.05.2003
    Beiträge
    127
    Mhm, ja. Aber das ist kein PHP-script, das die Daten weitergibt, sondern eine normale HTML-page. Ich nehme an, das geht so nicht und ich muß den Autor bitten, die Daten vorherh zu encodieren?

    Danke,
    mamue

  4. #4
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Code:
    http://irgendwer.dyndns.info/umfrage.php?vorname=Steve&nachname=M%FCller
    das %FC ist die encodierte Form (urlencode("ü")="%FC"), also musst du im PHP-Skript ein urldecode auf deine Daten anwenden: urldecode($_GET['nachname'])=Müller

  5. #5
    Registrierter Benutzer
    Registriert seit
    07.05.2003
    Beiträge
    127
    Das klingt völlig einleuchtend, funktioniert aber nicht.
    Ich habe
    Code:
    $nachname = trim( $_GET[ "nachname" ] );
    $nachname = urldecode( $nachname );
    //oder auch alternativ:
    $nachname = urldecode( $_GET[ "nachname" ] );
    versucht. Beides führt nicht zum Erfolg. Ich denke, ich muß sehen, dass ich die Daten "urlencoded" bekomme, sonst werde ich wohl nicht erkennen können, was
    ich da falsch gemacht habe.

    Danke,
    mamue

  6. #6
    Registrierter Benutzer
    Registriert seit
    10.02.2005
    Ort
    Hückelhoven
    Beiträge
    26
    Hi!

    Die Werte im $_GET-Array sind bereits dekodiert. Darauf solltest du kein urldecode anwenden.

    Könnte es in deinem Fall nicht einfach ein Zeichensatzproblem sein?
    Verwende am besten die Funktion htmlentities(), um die Umlaute in HTML-Entitäten zu konvertieren.

    Gruß
    fuffy

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •