Beiträge: 337
Themen: 85
Registriert seit: 06.02.2008
MyBB-Version: 1.4.9
Hallo,
ich programmiere zur Zeit ein Webinterface. Bin soweit schon fertig. Es gibt nur noch ein Problem. Bei der E-Mail Valisierung sieht der zu aufrufende Link so aus:
validate.php?domain=xxxx.de&id=xxxxxxxxx
Wenn jedoch die Domain ein Umlaut enthält und ich den URL String abfragen möchte steht das z.B:
testdomäne1.de statt testdomäne1.de
Hat jemand ne Idee wie ich das Problem löse?
Vielen Dank!
mfg
Beiträge: 2.318
Themen: 13
Registriert seit: 09.11.2008
01.05.2009, 14:38
(Dieser Beitrag wurde zuletzt bearbeitet: 01.05.2009, 14:39 von frostschutz.)
Umlaute in Domains erfordern ein spezielles Encoding. Kannst du auf Wikipedia nachlesen.
http://de.wikipedia.org/wiki/Internation...plications
Das was du da hast könnte allerdings UTF-8 interpretiert als ISO-8859/latin1 sein... also ein einfaches Zeichensatzproblem.
Beiträge: 337
Themen: 85
Registriert seit: 06.02.2008
MyBB-Version: 1.4.9
Hallo,
also an dem Zeichensatz lag es nicht.
Ich habe es versucht os zu lösen.
User gibt folgende URL ein:
www.xxxx.de/validate.php?domain=testdomäne.de
Per folgenden Code URL String abfragen:
PHP-Code:
$domain = rawurlencode($_GET['domain']);
Ausgabe: testdom%C3%A4ne.de
Dann habe ich die Zeichen per Schleife umwandeln lassen.
Ergebnis: testdomäne.de
Leider tritt ein gewaltiges Problem auf, dass ich mir leider nicht erklären kann.
Wenn die URL angeklickt wurde läuft alles, falls man sie manuell eingibt wiederrum nicht. Dann wird folgendes ausgegeben:
testdom%E4ne.de
Kann mir da jemand helfen?
mfg
Beiträge: 2.318
Themen: 13
Registriert seit: 09.11.2008
0xE4 ist der Codepoint für den Buchstaben ä im latin1 Zeichensatz.
0xC3 0xA4 ist ä in UTF-8.
Je nachdem welchen Zeichensatz der Server bzw. das validate.php erwartet, ist das eine oder andere falsch.
Beiträge: 337
Themen: 85
Registriert seit: 06.02.2008
MyBB-Version: 1.4.9
Code:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Das steht ganz klar drin. Ich verstehe nicht warum, mal utf8 mal latin.
Ich habe es doch eingestellt.
Ich denke meine Methode ist daher nicht geeignet.
Ich benötige immernoch Hilfe. Kann mir da jemadn nochmal helfen??