• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

HTML-Inhalte mit Zeilenumbrüchen an MySQL übergeben

Status
Für weitere Antworten geschlossen.
Hallöle, ich will ja einen Scriptposte in meinem Forum machen. aber ich bekomme es nicht hin, dass die HTML-Tags umgeandelt werden.

Wie muss ich das denn am besten machen? Das wichtigste hab ich schon mit preg_replace versucht:

PHP:
 preg_replace('/</', '&lt;', $_POST['Inhalt']);
 preg_replace('/>/', '&gt;', $_POST['Inhalt']);
 preg_replace('/\"/', '\\\"', $_POST['Inhalt']);
 preg_replace('/\'/', '\\\'', $_POST['Inhalt']);
 
[phpnet]nl2br[/phpnet] Oder was meinst du damit?

Und es empfiehlt sich noch [phpnet]trim[/phpnet] und [phpnet]addslashes[/phpnet] (letzteres falls magic_quotes deaktiviert ist).

/E: Wbei sich eine eigene funktion anbieten würde, die alle von diesen Funktionen auf eine Zeichenkette anwendet. Sonst muss man bei jedem Eintrag schreiben
PHP:
$eingabe = addslashes(nl2br(htmlspecialchars(trim($eingabe))));
 
Zuletzt bearbeitet von einem Moderator:
-.- In der DB kommt das immer leer an.

Wenn ich <img src=""> eingebe, und diesen Source benutze:

PHP:
 $_POST['Inhalt'] = htmlspecialchars(addslashes(nl2br($_POST['Inhalt'])));
  
 $sql = "INSERT INTO bb1_scripts (id, Cat, Titel, Inhalt, User) VALUES ( '', '".$_POST['Cat']."', '".$_POST['Titel']."', '".$_POST['Inhalt']."', '".$_POST['User']."')";
 mysql_query($sql);
 $ausgabe = "Danke, dein Script wurde eingetragen.";

Wird alles bis auf den Inhalt in die DB eingetragen...
 
Keine Fehlermeldung und magic_quotes sind an steht in der phpinfo von ohost

EDIT: War nen Syntaxfehler, wurde aber komischerweise net von error_reporting ausgegeben... -.- Jetzt funktioniert alles
 
Zuletzt bearbeitet:
Ich vermute mal, dass der Dyntax-Fehler in dem Query stand. Am besten, wenn du nach jedem query noch das OR die() hineinpackst:

PHP:
$erg = mysql_query($sql) OR die(mysql_error());

Wenn es nun einen Fehler beim Eintragen in die DB gibt, dann wird es eine Fehlermeldung geben, und die restliche Abarbeitungs des Scripts hört auf.

Das ganze kann man auch in eine eigene Funktion packen:

PHP:
function query($sql){
var tmp = mysql_query($sql) OR die(mysql_error());
return tmp;
}

Dann brauchste nur noch query("dein query); zu schreiben :-)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben