Formular hat Probleme Zeichen zu verabeiten

Divo1984

Erfahrenes Mitglied
Hallo und schon wieder ich:-)

Ich habe heute den ganzen Tag hier rumgeschaut und mein erstes Problem behoben:-)

Nun habe ich folgendes Problem:

Ich habe ein Formular + dazugehörigen PHP Code, die Prüfung und die Übergabe funktioneren einwandfrei, mit einer Ausnahme:

Wenn ich in der definierten Textarea nen code sog, bannercode eingebe der dieses ' Zeichen enthält, kommt zwar die Bestätigung

Bestellung wurde gesendet!

aber das:

Sie haben " .$_POST["Paket"] ." bestellt! wird nicht ausgegeben und auch die Übergabe an die DB findet nicht statt!

Ich hänge die Datei mal an, wäre schön wenn mir wer helfen könnte:-)

Danke im Vorraus!
 

Anhänge

Moin,

du musst Strings, bei denen du nicht weisst, was sie beinhalten, mit [phpf]mysql_real_escape_string[/phpf] bearbeiten.
Vorher musst du den String, gesetzt den Fall, magic_quotes_gpc ist an, noch per stripslashes() bereinigen.

Oder aber du machst es richtig gut und verwendest Prepared Statements.

Weil du nichts von alledem tust, ist dein Query fehlerhaft durch das enthaltene ' und es wird nichts ausgegeben(weil du die Ausgabe an ein erfolgreiches Query gekoppelt hast).
 
Wie Sven schon gesagt hat, aber wenn das die Datei ist mit der du arbeitest ist da sowieso irgendwie der Wurm drin.

- Du erstellst dei INSERT-Anweisung doppelt, führst sie aber gar nicht aus!?
- Du verwendest in der eMail Variablen z.B. für den Namen, definierst sie aber nicht.
- Außerdem würde ich beim Fehlertext den Inhalt nicht immer überschreiben sondern erweitern:

PHP:
if ($_POST["name"] == "") {
  $fehlertext = "Geben Sie Ihren Namen ein.";
} elseif ($_POST["strasse"] == "") {
  $fehlertext .= "Geben Sie die Strasse ein.";
} elseif $_POST["email"] == "") {
  $fehlertext .= "Geben Sie Ihre eMail Adresse ein.";
}

Hätte den Vorteil das gleich alle Fehler angezeigt werden und nicht der eine Text mit dem anderem überschrieben wird.
 
Zurück