bbcode einbinden in extra Seite

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

bbcode einbinden in extra Seite

Beitrag von Dave »

Hi.

Ich will den bbcode auf einer Foren seite nutzen.
Ich habe ihn folgender masen eingebunden:

Code: Alles auswählen

//
// If the board has HTML off but the post has HTML
// on then we process it, else leave it alone
//
if ( !$board_config['allow_html'] )
{
	$message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message);
}

//
// Parse message and/or sig for BBCode if reqd
//
$bbcode_uid = $clan['bbcode_uid'];

echo $message.'<br />';
if ( $board_config['allow_bbcode'] )
{
	if ( $bbcode_uid != '' )
	{
		$message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
	}
}
echo $message;
$message = make_clickable($message);
//
// Parse smilies
//
if ( $board_config['allow_smilies'] )
{
	$message = smilies_pass($message);
}
if (count($orig_word))
{
	$post_subject = preg_replace($orig_word, $replacement_word, $post_subject);
	$message = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1));
}
$message = str_replace("\n", "\n<br />\n", $message);
Nur will der so nicht. ltext klappt. alles andere nicht :roll:


MfG
Dave
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

Mh naja wenn du die bbcode.php mit include eingebunden hast, dann sollte es eigentlich auch klappen.

Mh wenn gar nichts geparst wird, würde ich es ja verstehen, aber warum er [url] parst *seltsam. Wie rufst du denn die Message ab??? Aus einer DB?? Wenn ja, dann prüf mal ob in der DB in jedem BBCode auch die UID steht, wie folgt:

Code: Alles auswählen

 [code:UID] [/code:UID] 
Er parst nämlich nur die BBCodes die auch die richtige UID besitzt.

Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

wie erstelle ich die UID?
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

Das ist die Funktion in der bbcode.php die die UID dir gibt:

Code: Alles auswählen

// Need to initialize the random numbers only ONCE
mt_srand( (double) microtime() * 1000000);

function make_bbcode_uid()
{
	// Unique ID for this message..

	$uid = md5(mt_rand());
	$uid = substr($uid, 0, BBCODE_UID_LEN);

	return $uid;
}
Aber diese UID muss du auch immer in der DB mitspeichern, damit er es auch richtig interpretiert.

PS: Such mal in der KB nach BBCodes und UID, da findest du acuh noch einen Artikel darüber.

Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Das Teil soll vor bösen überraschungen schützen da nur die IDs und dem BBCODE ersetzt werden.....

Man kann sagen das zuerst die BBCODES geparst werden und dann mit der ID in der DB liegen. Dann bei der Anzeige werden nur BBCODES mit stimmiger BBCODE Start und END ID also die Gegenparts berrücksichtigt dadurch ist die Abarbeitung etwas schneller......

Müsste also theoretisch schon beim Einfügen geparst werden und dann noch obligatorisch bei der Ausgabe...
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

Blutgerinsel hat geschrieben:Das Teil soll vor bösen überraschungen schützen da nur die IDs und dem BBCODE ersetzt werden.....

Man kann sagen das zuerst die BBCODES geparst werden und dann mit der ID in der DB liegen. Dann bei der Anzeige werden nur BBCODES mit stimmiger BBCODE Start und END ID also die Gegenparts berrücksichtigt dadurch ist die Abarbeitung etwas schneller......

Müsste also theoretisch schon beim Einfügen geparst werden und dann noch obligatorisch bei der Ausgabe...
genau und zwar erst ne UID erstellen:

Dann die Funktion aufrufen die alle BBcodes mit der UID versieht und dann in die DB sichern + der UID in ein extra Feld.
Beim ausgeben, die UID wieder an die passende Funktion übergeben.

Beim editieren weiß ich jetzt net wie das abläuft, aber in meiner BBCode Klasse die ich anhand des wissens von der phpBB bbcode.php angelegt hatte, habe ich ne extra Funktion, die diese UID wieder aus den BBCodes entnimmt, damit dem User nichts auffällt etc.

Und beim editieren wird ne neue UID genommen, sonst besteht ein Sicherheitsrisiko.

Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

MrMind hat geschrieben: genau und zwar erst ne UID erstellen:

Dann die Funktion aufrufen die alle BBcodes mit der UID versieht und dann in die DB sichern + der UID in ein extra Feld.
Beim ausgeben, die UID wieder an die passende Funktion übergeben.

Beim editieren weiß ich jetzt net wie das abläuft, aber in meiner BBCode Klasse die ich anhand des wissens von der phpBB bbcode.php angelegt hatte, habe ich ne extra Funktion, die diese UID wieder aus den BBCodes entnimmt, damit dem User nichts auffällt etc.

Und beim editieren wird ne neue UID genommen, sonst besteht ein Sicherheitsrisiko.

Mfg
MrMind
So steht ja auch in dem Knowledge Beitrag ungefähr drinnen....
Hab mich erstmals auch gefragt wozu das Ganze....
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

Dann liegt es wohl mien Problem auch daran das ich nix beim einfügen mache :D
Ich werde mich dann mal später daran begeben.

Weiß einer die genaue funktion dafür?


MfG
Dave
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

Also eintragen ist nun kein problem mehr das klappt :D

Was mich noch interessieren würde ob es möglich bestimmte bbcodes zu verbieten.

Code: Alles auswählen

 oder [list ] brauche ich nicht.


MfG
Dave
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Dave hat geschrieben:Also eintragen ist nun kein problem mehr das klappt :D

Was mich noch interessieren würde ob es möglich bestimmte bbcodes zu verbieten.

Code: Alles auswählen

 oder [list ] brauche ich nicht.


MfG
Dave[/quote]

Definiere mal verbieten:
[ ] Nicht umwandeln
[ ] Error produzieren "Hr. User diese Funktion wurde deaktiviert"
[ ] Stillschweigend entfernen

BTW: Es ist alles möglich was verbieten anbelangt  :D
Antworten

Zurück zu „Coding & Technik“