Autor Beitrag
mats
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Do 22.11.18 18:55 
Hallo,

ich hab da ein Problem. Eingabefelder sollen die Daten des Kunden einsammeln, beim abschicken die deutschen Umlaute durch Escape-Sequenzen ersetzen und übers Netz in eine MySQL-Datenbank eingetragen werden. Ich habe eine Funktion geschrieben, die alle Umlaute ersetzt, und auf der Serverseite im Prinzip das Gegenstück in PHP, dann wird der String in die einzelnen Variablen geteilt und in die DB eingetragen.
Dazu benutze ich (auf Delphiseite) eine CharList = ['ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü', 'ß', ' ', ',']; Doch was ist mit dem Hochkomma/Apostroph. Das nimmt der Compiler nicht -> ...,''',... ?
Da dachte ich, ich könnte es über eine MaskEdit machen. Das gleich während der Eingabe ausgesondert wird (wie NumbersOnly) oder reguläre Audrücke benutzen?
Vielleicht hab ich's auch zu kompliziert gemacht. Aber es muß in Delphi und PHP (Serverseite) funktionieren.

Hat jemand eine Idee? Vielleicht?

mats
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Do 22.11.18 21:06 
Man kann in Delphi Hochkommas durch doppelte Ausführung 'escapen':

ausblenden Delphi-Quelltext
1:
Writeln('''Hello World'''); // 'Hello World'					

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 23.11.18 13:30 
- Nachträglich durch die Entwickler-Ecke gelöscht -
mats Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Sa 24.11.18 11:12 
Hallo Frühlingsrolle,

das hab ich auch schon probiert, hat aber nicht geklappt (meine Schuld), deshalb bin ich ja auf das Hin- und Her mit den 'blöden' Umlauten gekommen. Es sind ja letztlich nicht nur die Umlaute. Als da währen noch alle Sonderzeichen, Leerzeichen usw., was der User so alles eingeben kann.
(Ich hab auch schon daran gedacht, den kompletten String mit Base64 quasi einzupacken und auf der Serverseite wieder auszupacken)
Ich hab noch nicht alle Ausnahmen und/oder Möglichkeiten durchgespielt, welche für meine Aufgaben die Beste ist.
In der DB jedenfalls sind alle Textfelder Varchar + UTF8. Und die Memo's/Edit's in Delphi stellen die Umlaute etc. korrekt dar. Das Problem liegt in der Übertragung. Vielleicht kann ich den zu übertragenden String durch einen HTML-Parser bearbeiten lassen. Hab aber jetzt noch keine Idee dazu. Z.Z. läuft es mit den Ausnahmen -> siehe oben Charlist, ganz gut, aber eben nicht optimal.
Und wenn Menschen Software benutzen, gibt es immer welche, die einen Punkt suchen um den Hebel ansetzen zu können!

mats
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 25.11.18 02:26 
- Nachträglich durch die Entwickler-Ecke gelöscht -
mats Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mo 26.11.18 08:54 
Hallo Frühlingsrolle,

das mit dem Header in PHP hatte ich schon gemacht, zeigte aber keine direkten Auswirkungen. Die htmlspecialchars() hatte ich nicht, muß ich ausprobieren. Ich habe auch die Indy-Komponente benutzt, aber ich habe es nicht hinbekommen, die Stringlist (die ja quasi wie datei.php?Anhang funktioniert) anzuhängen. Die übergebenen Variablen konnte ich auf der Serverseite nicht auswerten. Deshalb habe ich einen ganz langen String zusammengesetzt, lassen den durch meinen Filter laufen und hänge in ran. Serverseitig ($KundenID = @$_GET['KundenID'];).
Es ist noch nicht aller Tage Abend, man lernt NIE aus.

Danke

mats