HTML/PHP: Array mit Sonderzeichen im name Tag von Formularfeldern

klausschreiber

Well-known member
ID: 162475
L
6 Mai 2006
247
8
Hallo,

Ich habe ein Formular aus textarea Feldern, wo man bestimmte Notizen machen kann. Zur richtigen Zuordnung der Notizen benötige ich mehrere Informationen (in diesem Beispiel Kategorie und Nickname). Da ich Intern das Ganze als Array verarbeite und gelesen habe, dass assoziative Arraynamen auch Sonderzeichen enthalten dürfen, habe ich das folgendermaßen gelöst:

HTML:
<textarea name="notes[Kategorie][Nickname]">blablub</textarea>
Das klappt auch eigentlich super und es kommt auch schön in dem Array-Format an, wie ich es brauche. Allerdings, kann ich es, auch wenn es sehr unwahrscheinlich ist, nicht ganz vollständig ausschließen, dass auch "[" und "]" Zeichen im Nickname vorkommen (ich habe darauf keinen Einfluß). Kommt nun im Nickname ein "]" vor, so wird der Rest danach beim Senden des Formulars angeschnitten, weil der Quelltext dadurch ja z.B. so aussieht:
HTML:
<textarea name="notes[Kategorie][klausschre]iber]">blablub</textarea>
Ich habe es schon versucht, das "[" und "]" Zeichen durch die äquivalenten Angaben "[" und "]" mittels str_replace zu ersetzen. Dies hilt jedoch auch nichts. Es wird trotzdem ab den "]" bzw. halt dem abgeschnitten "]" abgeschnitten.

Gibt es eine Möglichkeit, das Problem zu umgehen, außer das "]" durch ein eigenens Zeichen zu ersetzen und nach dem Empfang dann wieder zurück zu verwandeln? Falls nicht, kann ich dafür problemlos ein nicht darstellbares Zeichen nehmen, oder kann das Probleme geben?


Danke im Vorraus für eure Antworten.

Gruß,
Klaus
 
danke für deine flotte Antwort.

UserId's habe ich leider nicht, da die Informationen mittels preg_match aus den Dateien von Fremdprogrammen geholt werden und dot nur der Nickname gespeichert ist.
 
vielen Dank, das scheint zu funktionieren.

Weiß zufällig jemand, ob rawurlencode sehr performancefressend ist, weil ja alles Sonderzeichen umgewandelt werden? Ob ich urlencode oder rawurlencode nehme, ist egal, oder? Der Unterschied besteht ja nur in der Behandlung von Leerzeichen. Oder ist die eine Funktion schneller als die Andere?
 
war doch nur ne Frage, weils halt viele Zeichen ersetzt kann und halt theoretisch auch 100 oder mehr textarea Felder vorkommen können^^.
Aber wenn es nicht viel aus macht, passts ja.