hi,
ich bin echt zu dusselig, den fehler zu finden...
mal vorweg, ihr könnt das folgende beispiel unter:
http://crazzytastatur.cr.funpic.de/profil.html nachvollziehen.
bb codes [fett] [kursiv] und das code tag, wie hier...(wenn ichs jetzt hinschreib sieht mans nimmer, sondern wird als bb interpretiert)...
also das problem ist bei code...
ins textfeld gibt man beliebigen schmarrn rein... zuerst mache ich die zeilenumbrüche "sichtbar" mit nl2br()
dann formatiere ich mit htmlspecialchars die html tags weg, damit keiner irgendwie html da reinschmuggln kann...
also das ist der code. wenn ich zwischen den code tags jetzt z. B. das eingebe:
echo "<b>test</b>";
kommt komischerweise das raus:
normalerweise hab ich mit htmlspecialchars() und strip_tags() die html tags als darzustellende zeichen gemacht, oder hab ich wieder einen kompletten denkfehler drin?
ich bin echt zu dusselig, den fehler zu finden...
mal vorweg, ihr könnt das folgende beispiel unter:
http://crazzytastatur.cr.funpic.de/profil.html nachvollziehen.
bb codes [fett] [kursiv] und das code tag, wie hier...(wenn ichs jetzt hinschreib sieht mans nimmer, sondern wird als bb interpretiert)...
also das problem ist bei code...
ins textfeld gibt man beliebigen schmarrn rein... zuerst mache ich die zeilenumbrüche "sichtbar" mit nl2br()
dann formatiere ich mit htmlspecialchars die html tags weg, damit keiner irgendwie html da reinschmuggln kann...
Code:
<html>
<head>
<title>Dein Text</title>
<link rel="stylesheet" type="text/css" href="http://crazzytastatur.cr.funpic.de/images/style.css">
</head>
<body>
<?php
htmlspecialchars($text);
strip_tags($text);
$text = nl2br($text);
$text = preg_replace("(\[fett\](.+?)\[\/fett])is",'<b>$1</b>',$text);
$text = preg_replace("(\[kursiv\](.+?)\[/kursiv\])is",'<i>$1</i>',$text);
$text = preg_replace("(\[code\](.+?)\[/code\])is",'<table border=1 length=100%><tr><td><p>Code:</p><p>$1</p></td></tr></table>',$text);
echo $text;
?>
</body>
</html>
also das ist der code. wenn ich zwischen den code tags jetzt z. B. das eingebe:
echo "<b>test</b>";
kommt komischerweise das raus:
Code:
echo \"[ b ]test[ /b ]\";