hi,
Nö, hab ich nicht. Aber der Reihenfolge nach:
Ich sehe, dass die Seite test1.php keine charset-Angabe im HTTP-Header Content-Type mitsendet, aber es gibt als Ersatz ein Meta-Element dafür.
wie lege ich in der datei im header das charset fest? ich habe überall nur hinweise auf die meta-angabe gefunden, und diverse web-editoren machen das meines wissens nach auch so. ist das also wirklich notwendig? weim w3c hab ich auch nur die meta-variante gefunden. ein link wäre hier sehr hilfreich;-)
ich habe jetzt in der url-weiterleitung urlencode() eingefügt. jetzt zeigt auch der safari die umlaute richtig an... passt das so, was die url-weitergabe betrifft??
Das Anfügen eines Leerstrings an einen String ist eine sinnlose Handlung. Es ändert an dem String nichts und hat auch keine Nebenwirkungen (à la Integer verknüpft mit Leerstring ergibt einen Typecast des Integers nach String), die man vielleicht ausnutzen könnte.
hab ich entfernt. es kam zustande, weil ich die datei, die eigentlich ein sehr umfangreiches formular behandelt, auf ein minimum zusammengekürzt habe, da hab ich das übersehen...
Nicht beachtet hast du, dass ein Location-Header gemäß Vorschrift eine vollständige URL benötigt. In den meisten Fällen machen die Browser trotzdem das von dir Vorgesehene. Wichtiger ist, dass du da einen URL-Kontext hast, und die Daten URL-kodiert einfügen musst. Ansonsten kann man dir beliebig den Querystring manipulieren.
ok, die URL sollte follständig sein, aber abgesehen davon passt das jetzt?
Obendrein fummelt das PHP-Feature Magic Quotes in den Daten rum, ohne dass das da sinnvoll wäre. Zu den Magic Quotes kannst du den Abschnitt PHP-Besonderheit Magic Quotes lesen. Auch der Rest (der Vorabversion) des Artikels Kontextwechsel erkennen und behandeln wird einge Sachen enthalten, die du vielleicht bisher noch nicht berücksichtigst. Die Magic Quotes jedenfalls sorgen bei der ersten Runde dafür, dass aus dem " ein " wird. Beim Redirect wird aus dem \ ein \ und das " wiederum zum ", zusammen ergibt das: \"
Magic Quotes solltest du deaktiveren und die Kontextwechsel zur Datenbank hin und in alle anderen Richtungen selbst und passend behandeln.
ok, das ist wohl ein eigenes kapitel, das jetzt nicht unbedingt mit dem umlaut-problem zusammenhängt, oder? ich habe nämlich ein sehr umfangreiches projekt daran hängen, das eigentlich bis auf die umlaute sehr gut funktioniert, und ich möchte da jetzt kein risiko eingehen, bzw. hab ich auch nicht die zeit, zig dateien umzuschreiben. ich heb mir das lieber fürs nächste projekt auf. oder glaubst du, spielt das doch eine rolle bei der umlaut-problematik?
Jedoch empfehle ich dir, zunächst den Ablauf selbst einmal nachzuvollziehen, so wie ich das gemacht habe. Nimm dir dazu die Livehttpheaders-Extension und den FF oder ein ähnlich arbeitendes Tool für deinen Browser.
hast du einen tipp für mich, ich habe firefox 3.0.6 installiert, und da geht die extension nicht. ausserdem hab ich safari 3.2.1 zur verfügung (ich bin nicht auf meinem heim-pc...)
Wenn du das Problem nicht lösen kannst, so solltest du nun ein paar neue Beobachtungen gemacht haben, aus denen man vielleicht weitere Schlüsse ziehen kann.
wie gesagt, safari gibt die umlaute jetzt richtig aus, nachdem ich urlencode() eingefügt habe...
Zum Abschluss noch:
Beschäftige dich mal mit dem Thema EVA-Prinzip und der Aufteilung des Codes in Dateneingabe, -verarbeitung und -ausgabe. Dann sollte es dich auch nicht mehr wundern, wenn PHP-Blöcke vor dem HTML rumstehen.
hat mich bis jetzt auch nicht gewundert- ich hab es schon oft wo gesehen und selbst verwendet...
danke für deine hilfe, ich bin jetzt richtig abhängig von dir;-)
p