Chino
Erfahrenes Mitglied
moin !
ich hab ein news system, in dem ich html code verbieten möchte, aber dennoch einige html befehle durchlassen möchte (links, fontformatierung etc.) in dem system gibt es auch eine vorschau funktion, die den eintrag erst nochmals (bereits formatiert) angezeigt und beim nochmaligem abschicken des formulars in die datenbank eingeträgt.
und hier liegt das problem :
obwohl ich den eintrag nur beim ersten durchlauf umformatieren lasse, wird, wenn ich mir den eintrag anzeigen lasse, hier zwar alles korrekt gefiltert und dementsprechend angepasst. wenn ich dann den eintrag in der db speichern lasse, werden die zuvor als textdargestellten html befehle wieder zurück in html befehle umgewandelt. die ganzen sonderzeichen, werden danach auch wieder zurück ungewandelt, obwohl die auf der vorschau seite richtig umformatiert wurden.
hier mal der code der funktion:
im formular gibt es ne checkbox (= variable $vorschau). bevor der eintrag umformatiert wird, wird die value abgefragt. der eintrag wird nur umformatiert, wenn die variable die value "preview" (eintrag umformatieren und anzeigen) oder "" (eintrag umformatieren und direkt in die db eintragen) hat.
ich bin ratlos. warum macht das script irgendwas, was ich nirgendwo gesagt habe ?
ich hab ein news system, in dem ich html code verbieten möchte, aber dennoch einige html befehle durchlassen möchte (links, fontformatierung etc.) in dem system gibt es auch eine vorschau funktion, die den eintrag erst nochmals (bereits formatiert) angezeigt und beim nochmaligem abschicken des formulars in die datenbank eingeträgt.
und hier liegt das problem :
obwohl ich den eintrag nur beim ersten durchlauf umformatieren lasse, wird, wenn ich mir den eintrag anzeigen lasse, hier zwar alles korrekt gefiltert und dementsprechend angepasst. wenn ich dann den eintrag in der db speichern lasse, werden die zuvor als textdargestellten html befehle wieder zurück in html befehle umgewandelt. die ganzen sonderzeichen, werden danach auch wieder zurück ungewandelt, obwohl die auf der vorschau seite richtig umformatiert wurden.
hier mal der code der funktion:
PHP:
function normalCode_message($post) {
global $vorschau;
if($vorschau == "preview" OR $vorschau == "") {
$post = stripslashes($post);
$post = htmlspecialchars($post);
$post = trim($post);
// umlaute, ß, &, ' und ´ konvertieren:
$post = str_replace("ä","ä",$post);
$post = str_replace("ö","ö",$post);
$post = str_replace("ü","ü",$post);
$post = str_replace("ß","ß",$post);
$post = str_replace("& ","& ",$post);
$post = str_replace("'","´",$post);
$post = str_replace("´","´",$post);
$post = str_replace('"','"',$post);
// bold text
$post = preg_replace("/\[b\](.*)\[\/b\]/iUms","<b>\\1</b>",$post);
// italic text
$post = preg_replace("/\[i\](.*)\[\/i\]/iUms","<i>\\1</i>",$post);
// underline text
$post = preg_replace("/\[u\](.*)\[\/u\]/iUms","<u>\\1</u>",$post);
{ hier stehen noch ein paar preg_replace funktionen für links ,
die lass ich mal weg}
// absatz einfügen:
$post = str_replace("\n","<br>",$post);
}
if($vorschau == "previewed") {
$post = str_replace("<br>","<br>",$post);
}
return $post;
}
im formular gibt es ne checkbox (= variable $vorschau). bevor der eintrag umformatiert wird, wird die value abgefragt. der eintrag wird nur umformatiert, wenn die variable die value "preview" (eintrag umformatieren und anzeigen) oder "" (eintrag umformatieren und direkt in die db eintragen) hat.
ich bin ratlos. warum macht das script irgendwas, was ich nirgendwo gesagt habe ?
