Entwickler-Ecke

Sonstiges (Delphi) - MaskEdit vs. Reguläre Ausdrücke


mats - Do 22.11.18 18:55
Titel: MaskEdit vs. Reguläre Ausdrücke
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 - Do 22.11.18 21:06

Man kann in Delphi Hochkommas durch doppelte Ausführung 'escapen':


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


Delete - Fr 23.11.18 13:30

- Nachträglich durch die Entwickler-Ecke gelöscht -


mats - 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


Delete - So 25.11.18 02:26

- Nachträglich durch die Entwickler-Ecke gelöscht -


mats - 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