[GastForen Programmierung/Entwicklung PHP und MySQL Apostroph (') im Formularfeld verhindert Eintrag in Datenbank

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Apostroph (') im Formularfeld verhindert Eintrag in Datenbank

macmac
Beiträge gesamt: 394

2. Okt 2019, 12:01
Beitrag # 1 von 3
Bewertung:
(49022 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag zusammen
Ich bin am Rotieren und kann dieses Problem zur Zeit nicht lösen, weil ich ziemlich nervig bin, denn das Formular muss jetzt online.

In einem Textfeld kann man alles eingeben, jedoch verindert das Apostroph (') die Übergabe an die Datenbank.

Ich habe folgenden Zeichenersatz ins Kontrollfile geschrieben.

$tag = array("\"", "\'");
$replace = array("ˮ", "ʼ");

$htext=str_replace($tag, $replace, $htext);

Ich weiss nicht wie ich das Apostroph ersetzen kann, es blockiert die Eingabe, weil es als Befehlszeichen gesehen wird(??). --> Fehlerausgabe: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Text'')' at line 1

Kann mir jemand einen Tipp geben? Es gibt sicher andere, die die typografischen Zeichen auf der Tastatur auch ersetzt haben.

Danke für euren Rat.
X

Apostroph (') im Formularfeld verhindert Eintrag in Datenbank - Gelöst

macmac
Beiträge gesamt: 394

2. Okt 2019, 14:43
Beitrag # 2 von 3
Beitrag ID: #572048
Bewertung:
(48999 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So, gelöst: Folgende Änderung hat nun funktioniert:

NEU: $tag = array("\"", "'");

ALT: $tag = array("\"", "\'"); -> vor dem Apostroph das \ weggelassen.

Ersetzt mit: $replace = array("ˮ", "ʹ");

Dies hat nun geholfen - je nach Schriftsatz halt in der Darstellung unterschiedlich. Aber der Eintrag wird nicht mehr geblockt.

Viellciht gibt es da aber eine einwandfreie Lösung - gerne lerne ich dazu.

Gruss Macmac


als Antwort auf: [#572047]

Apostroph (') im Formularfeld verhindert Eintrag in Datenbank - Gelöst

crisies
  
Beiträge gesamt: 138

14. Okt 2019, 14:06
Beitrag # 3 von 3
Beitrag ID: #572267
Bewertung:
(48624 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi MacMac,

Denke deine Lösung wäre "prepared statements" oder mysql_real_escape_string oder ähnliches. Die User-Werte welche ungefiltert in die DB gehen, müssten zwingend maskiert werden, damit Du dir dort kein Loch aufmachst. Dazu gibt es eben diese DB eigenen Methoden, welche dafür verwendet werden sollten.

mfg
chris.w


als Antwort auf: [#572048]