Website-Benutzer nicht die Möglichkeit geben HTML-Code einzufügen

Hallo,


ich hab nun zwei versionen versucht:

Bei dieser Methode, wird in der Datenbank überhaupt nichts mehr eingetragen:


$patterns[0] = "<";
$patterns[1] = ">";
$replacements[0] = " ";
$replacements[1] = " ";
$video = str_replace($patterns, $replacements, $video );



Und bei dieser Methode, erscheint die Fehlermeldung:

Warning: preg_replace() [function.preg-replace]: No ending matching delimiter '>' found in C:\xampp\htdocs\projekt\Templates\update.php on line 747

$a1 = array("<", ">");
$a2 = array("nixda", "nixda");
$interessen = preg_replace($a1, $a2, $interessen );



Was mach ich denn Falsch?

LG
 
Das sollte alle Größer- und Kleiner-als-Zeichen in ihre entsprechenden HTML-Codes umwandeln:
PHP:
$text = str_replace(array('<', '>'), array('&lt;', '&gt;'), $text);
 
Hi

warum das Rad denn neu erfinden?
PHP:
<?php
$str = "Ein 'Anführungszeichen' ist <b>fett</b>";

// Gibt aus: Ein 'Anf&uuml;hrungszeichen' ist &lt;b&gt;fett&lt;/b&gt;
echo htmlentities($str);

// Gibt aus: Ein 'Anf&uuml;hrungszeichen' ist &lt;b&gt;fett&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

Entnommen von: php.net

Du kannst auch den reinen HTML-Code in die Datenbank schreiben. Wichtig ist nur, dass beim darstellen auf der Website der Code gesichert ist.
 
An thehasso: Natürlich siehst du in deiner Datenbank < und >, denn so wird letztendlich &lt; und &gt; angezeigt. Der entscheidende Unterschied ist, dass dieser Code so angezeigt wird und nicht so als HTML-Tags verstanden wird.

An timestamp: Fällt dir ein Unterschied zwischen deiner und meiner Lösung auf? Nein, dann sollte ich es dir vielleicht mal erklären: meine Lösung ersetzt nur Größer- und Kleiner-als-Zeichen, was verhindert, dass Tags als solche interpretiert werden. Deine Lösung verändert allerdings auch Umlaute, was bei heutigen Lösungen mit beispielsweise UTF-8 überflüssig wurde.
 
Zuletzt bearbeitet:
Zurück