hotti: Sonderzeichen richtig speichern

Beitrag lesen

mhh...

Genau ;-)

dann muss ich das wohl nochmal genauer erklären.
Sobald der User seine Eingaben getätigt hat, wird alles an ein save.php-Script gesendet. Dort werden dann alle Variablen auf gültigkeit überprüft. Ist alles richtig, werden die Eingaben in die Datenbank gespeichert ist etwas fehlerhaft, schicke ich den ganzen kram mit header location zurück an das formular. Dabei setze ich sämmtliche Usereingaben mit einem ; getrennt in eine Variable. Das Formular empfängt also eine etwas längere Variable, in der die begriffe mit ; getrennt sind.

das ist schonmal ein etwas unschicklicher Ansatz, weil: Der User könnte ja auch ein ";" eingeben und damit ist deine Datenstruktur kaputt.

Durch die list() split() Funktionen drösel ich den ganzen kram auf und gebe dem User seine eingaben wieder vor mit dem Zusatz, wo ein Fehler enthalten ist etc.

Das Problem ist nun, wenn der User das & Zeichen irgendwo verwendet, wird durch das zurückgeben der Variablen alles zerschossen.

Same issue as above.

Daher - war meine Idee - scanne ich die Variablen nach dem &-Zeichen und ersetze es durch %26 (oder was das jetzt war). Somit klappt die Rückgabe der Variablen und sie werden auch richtig - also als & - dargestellt.

Eine zeichenorientiere Strukturierung ist Mist. Zumal sich bei Deinem "Eigenbau" mit den Zeichen "&" und ";" Überschneidungen ergeben mit einer Zeichenorientierten Strukturierung, die mit enctype="application/x-www- form-urlencoded" ohnehin gemacht wird, da haben '&' und ';' schon Sonderfunktionen.

Nur beim speichern haut er da jetzt halt %26 rein.

Strukturiere Deine Daten unabhängig von Zeichen, die auch ein Benutzer eingeben kann, somit ist und bleibt alles konsistent.

Horst Heizer

--
Auch wenn keine Kohle im Haus ist, richtig heizen will gelernt sein.