Seite 1 von 1

BBCODE bei Antwort deaktivieren

Verfasst: 06.12.2005 13:25
von ttobsen
Hi Leute

Ich habe mir nenn Hack gemacht bei dem ich Latex Code auf einem Server der bei mir läuft, als gif erzeugen kann. Nun habe ich allerdings ein kleines Problem das ich beheben möchte.

Wenn ich zum Beispiel auf ein Thema antworten möchte das als Beitrag schon einen solchen Latex Code im [math] [/math] Tag enthält, dann wird mir in der Themen Überblick Tabelle auch der Latex Code generiert. Allerdings möchte ich da die BBCodes stehen haben.

Der Quelltext schaut so aus:

In Zeile 191 der includes/bbcode.php habe ich folgendes includiert

Code: Alles auswählen

// [math] and [/math] fuer mathematische Formeln
include("includes/function_bbmath.php");
Und meine function_bbmath.php schaut so aus:

Code: Alles auswählen

<?php

$fp = @fsockopen("tcp://elpra.dyndns.biz", 3000, $errno, $errstr, 3);

if ($fp)
{

	preg_match_all("#\[math:$uid\](.*?)\[/math:$uid\]#si",$text,$tex_matches);


	for ($i=0; $i < count($tex_matches[0]); $i++)
	{
        $pos = strpos($text, $tex_matches[0][$i]);
        $Formel = html_entity_decode($tex_matches[1][$i]);

        $Username = 'herbert';
		$Passwort = 'ichbins';


  		$md5User = md5($Username);                                            //md5 Hash aus Username generieren
  		$md5Passwort = md5($Passwort);                                        //md5 Hash aus Userpasswort generieren
  		$md5EndString = md5($md5User.$md5Passwort);

  		$anfrage = $md5User.$md5Passwort."$".$Formel."$".$md5EndString;               //Anfrage zusammenfügen

		fwrite($fp,$anfrage);

		$laenge = fread($fp, 3);

		$FormelImage = fread($fp, $laenge);



        $url = $FormelImage;

		$alt_latex_formula = htmlentities($latex_formula, ENT_QUOTES);
		$alt_latex_formula = str_replace("\r","
",$alt_latex_formula);
		$alt_latex_formula = str_replace("\n","
",$alt_latex_formula);

        if ($url != false) {
        $text = substr_replace($text, "<img src='".$url."' title='".$alt_latex_formula."' alt='".$alt_latex_formula."' align='absmiddle' border='2'>",$pos,strlen($tex_matches[0][$i]));
        }
        else
        {
            $text = substr_replace($text, "[unparseable or potentially dangerous latex formula]",$pos,strlen($tex_matches[0][$i]));
        }
    }
}

?>
Den parse und auswert Vorgang braucht man normalerweise nciht durchgehen um das Problem zu lösen.

Versucht habe ich schon das ich das ganze in eine if Verzweigung gepackt habe und geschrieben habe

Code: Alles auswählen

<?php

if ($HTTP_GET_VARS['mode'] != "reply")
{

....
}
Allerdings ohne erfolg. Die [math] Tags werden trotzdem dargstellt.

Also um das Problem zu konkretisieren:

Wie schaffe ich es das bei dem Themenüberblick die [math] Tags nicht erzeugt, sondern eifnach als normalen Text da stehen?

Anschauen könnt ihr euch das zum Beispiel hier:

http://www.elpra.de/forum/viewtopic.php?p=24#24

Und dann auf Antwort schreiben, dort soll dann der [math] Tag dastehen und nicht der erzeugte Code.

Vielen Dank!

Gruß Tobi

EDIT:

Ich mekre gerade das es wohl sinnvoll wäre wenn Gäste auch Antworten dürfen, sonst ist es doof zum schauen. Das ist jetzt egrade eingestellt, sry.

Verfasst: 06.12.2005 20:47
von ttobsen
Hab jetzeine JAva Script version gemoddet, bei dem auf klick sich ein popup öffnet mit den math Tag Inhalt.

Allerdings hat nicht jeder Java Script, daher wäre eine Java script Überprüfung nicht schlecht und dann gegenfalls die math Tags nicht ausführen und den text stehen alssen. Ist solch eien Java Script Prüfung überhaupt ohne weiteres möglich?

Sry für doppelpost, aber das werden anfangen zuviele Informationen für ein Posting um damit kalr zu kommen. So bleibts übersichtlicher.

Gruß Tobi