Fehler wenn ' im Textfeld

Ich hab 'n Formular das in eine Datenbank übertragen wird. Funktionier auch alles soweit ganz gut. Nur wenn im Textfeld ein ' vorkommt gibs fehler.

Also will ich beispielsweise übertragen "hugo hat 'nen apfel verputzt"

kommt folgendes:

"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 'nen apfel verputzt',NOW())' at line 1"

Das Script zum übertragen sieht so aus:

PHP:
<?php

require('connect.php');

$kategorie= $_POST['kategorie'];
$titel= $_POST['titel'];
$inhalt= $_POST['inhalt'];

$sql = "INSERT test (kategorie,titel,inhalt,datum) VALUES ('$kategorie','$titel','$inhalt',NOW())";

 if (("" == $inhalt)) {
        echo "Fehler!";
    } else {

  echo "Wählt Quimby!";
}
echo '<br/><a href="index.php">zurück</a>.';

$result = mysql_query($sql) OR die(mysql_error());
?>
Is vermutlich nur 'ne Frage der Formatierung aber sql is nich mein Gebiet ;)
 
Du bist Wahnsinnig ^^

Mit Solchen Statements kann jemand dir deine Komplette MySQL Datenbank löschen *angstmach* Wenn jemand dir böse will und eben mit einem ' aus dem Feld "ausbricht" und anschließend eigene SQL Befehle mitsenden kann.

Du musst auf jeden Fall die Benutzereingaben immer Validieren. Dein Script könntest du zB leicht um die funktion mysql_real_escape() erweitern. Würde dann so aussehen:

PHP:
$kategorie= mysql_real_escape_string($_POST['kategorie']);
$titel= mysql_real_escape_string($_POST['titel']);
$inhalt= mysql_real_escape_string($_POST['inhalt']);
 
Juhu jetzt gehts, tausend dank :)

Sicherheit is in dem Falle allerdings eher wurscht. Das entsprechende Script benutz eh nur ich und man braucht 'n Passwort um überhaupt an den ordner zu kommen.
 

Neue Beiträge

Zurück