bomberpilotmp3
Erfahrenes Mitglied
Guten Tag, ich habe ein riesen Problem. Ich habe schon das Forum druchsucht, und ähnliche Probleme gefunden. Aber momentan komme ich nicht weiter.
Kurze Vorgeschichte:
Ich habe ein eigenes CMS bzw. ein Forum programmiert. Läuft soweit ganz gut Nur ich biete bei mir BBCode an. Funkionen auch perfekt. Nur ich habe ein Problem beim BBCode mit dem Code Tag.
Ich benutze Geshi (übrigens bestes Highlight Script, danke an den Autor ). Wenn ich eine Funktionfür geshi schreibe und das mit preg_replace() mit BBCode ersetzen will, bekomme ich folgende Ausgabe: http://www.pichost.de/p/180508-165b.png
Das bedeutet es werden alle $ (Dollar) Zeichen nicht richtig gehighlightet. Nun mein Folgener BBCode:
Hier die Funktion mit der ich highlighte (Geshi):
Ich denke eher, das ich ein problem mit den Filtern und dem Eintragen in der Datenbank habe. Hier mal der Code, wie ich den Normalen Text eines Benutzers und den Code speichere:
Was mache ich falsch? Ich möchte doch nur [hl=SCRIPTSPRACHE]CODE[/hl]. Kann mir einer sagen was hier nicht korrekt ist oder was hier noch gemacht werden muss, damit alles stimmt?
Kurze Vorgeschichte:
Ich habe ein eigenes CMS bzw. ein Forum programmiert. Läuft soweit ganz gut Nur ich biete bei mir BBCode an. Funkionen auch perfekt. Nur ich habe ein Problem beim BBCode mit dem Code Tag.
Ich benutze Geshi (übrigens bestes Highlight Script, danke an den Autor ). Wenn ich eine Funktionfür geshi schreibe und das mit preg_replace() mit BBCode ersetzen will, bekomme ich folgende Ausgabe: http://www.pichost.de/p/180508-165b.png
Das bedeutet es werden alle $ (Dollar) Zeichen nicht richtig gehighlightet. Nun mein Folgener BBCode:
PHP:
function ___bbcode($string) {
$bbcode = preg_replace('/\[hl=([^]]+)\](.*?)\[\/hl\]/ies','___highlighting("\1","\2")',$bbcode);
return $bbcode;
}
Hier die Funktion mit der ich highlighte (Geshi):
PHP:
function ___highlighting($string, $language = 'text') {
include_once dirname(__FILE__).'/class.geshi.php';
# Geshi Klasse laden
$geshi = new geshi($string, $language);
$geshi->enable_keyword_links(true);
$geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS, 10);
for ($lines_extra = 1; $lines_extra < 5000; $lines_extra ++) {
$geshi->highlight_lines_extra(array($lines_extra ++));
}
return '<blockquote><u>'.$language.' Codeschnipsel</u>:<hr />'.$geshi->parse_code().'</blockquote>';
}
Ich denke eher, das ich ein problem mit den Filtern und dem Eintragen in der Datenbank habe. Hier mal der Code, wie ich den Normalen Text eines Benutzers und den Code speichere:
PHP:
$db->sql_query('INSERT INTO `FORUM_POST` SET `POST_DATE` = UNIX_TIMESTAMP(),`POST_CHANGE` = "0",
`POST_BBCODE` = "'.mysql_real_escape_string($_POST['BBCODE']).'",
`POST_SMILIE` = "'.mysql_real_escape_string($_POST['SMILIE']).'",
`THREAD_ID` = "'.mysql_real_escape_string($_GET['tid']).'",
`POST_DNS` = "'.mysql_real_escape_string($_SERVER['REMOTE_ADDR']).'",
`POST_AUTOR` = "'.mysql_real_escape_string($_SESSION['USER_USERNAME']).'",
`POST_TEXT` = "'.mysql_real_escape_string($_POST['TEXT']).'"');
Was mache ich falsch? Ich möchte doch nur [hl=SCRIPTSPRACHE]CODE[/hl]. Kann mir einer sagen was hier nicht korrekt ist oder was hier noch gemacht werden muss, damit alles stimmt?