Probleme mit HTML-Erlauben und CODE-Tag

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
kickaha
Mitglied
Beiträge: 24
Registriert: 19.02.2003 20:18

Beitrag von kickaha »

Hi,
Ich hab´s jetzt mal der bbcode.php von 2.0.3 versucht - da gehts :roll:

Also steckt bei mir irgendwo ein Fehler drin... :cry:

... okay problem ist erstmal behoben... hab ein compare auf die beiden bbcode.php gemacht und alle meine änderungen in die bbcode.php von 2.0.3 übernommen...
das klappt jetzt... war wohl in der 2.0.1 noch ein kleiner fehler drinn ?!

Gruß
Kickaha
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag von esperitox »

Hi,
@Jason ich hatte das Problem auch (im 2.0.0), damals hatte ich auf phpbb.com eine heisse Diskussion zu dem thema mit den "machern" von phpBB (ka ob der thread noch existiert damals wurde ja das Forum von phpbb.com komplett neu aufgesetzt) irgendjemand hatte mir dort ein script gegeben das aus dem HTML Code die Zeilenumbrüche entfernt siehe hier: Line Break Stripper vieleicht kannst du ja damit was anfangen?

esperitox

Edit: Hier ist auch ein Threads zu diesem thema auf phpbb.com:
http://www.phpbb.com/phpBB/viewtopic.ph ... light=HTML
kickaha
Mitglied
Beiträge: 24
Registriert: 19.02.2003 20:18

Beitrag von kickaha »

Hallo...

Also wenn ich es richtig sehe wird der HTML-Code in der functions_post.php bearbeitet...
siehe hier:

Code: Alles auswählen

	if ( $html_on )
	{
		$allowed_html_tags = split(',', $board_config['allow_html_tags']);

		$end_html = 0;
		$start_html = 1;
		$tmp_message = '';
		$message = ' ' . $message . ' ';

		while ( $start_html = strpos($message, '<', $start_html) )
		{
			$tmp_message .= preg_replace($html_entities_match, $html_entities_replace, substr($message, $end_html + 1, ( $start_html - $end_html - 1 )));

			if ( $end_html = strpos($message, '>', $start_html) )
			{
				$length = $end_html - $start_html + 1;
				$hold_string = substr($message, $start_html, $length);

				if ( ( $unclosed_open = strrpos(' ' . $hold_string, '<') ) != 1 )
				{
					$tmp_message .= preg_replace($html_entities_match, $html_entities_replace, substr($hold_string, 0, $unclosed_open - 1));
					$hold_string = substr($hold_string, $unclosed_open - 1);
				}

				$tagallowed = false;
				for($i = 0; $i < sizeof($allowed_html_tags); $i++)
				{
					$match_tag = trim($allowed_html_tags[$i]);

					if ( preg_match('/^<\/?' . $match_tag . '\b/i', $hold_string) )
					{
						$tagallowed = true;
					}
				}

				$tmp_message .= ( $length && !$tagallowed ) ? preg_replace($html_entities_match, $html_entities_replace, $hold_string) : $hold_string;

				$start_html += $length;
			}
			else
			{
				$tmp_message .= preg_replace($html_entities_match, $html_entities_replace, substr($message, $start_html, strlen($message)));

				$start_html = strlen($message);
				$end_html = $start_html;
			}
		}

		if ( $end_html != strlen($message) && $tmp_message != '' )
		{
			$tmp_message .= preg_replace($html_entities_match, $html_entities_replace, substr($message, $end_html + 1));
		}

		$message = ( $tmp_message != '' ) ? trim($tmp_message) : trim($message);
	}
	else
	{
		$message = preg_replace($html_entities_match, $html_entities_replace, $message);
	}
Schult an den <br /> ist wohl die Funktion preg_replace.
Der HTML-Code (mit den <br />) steht dann in $message ?!
kann man jetzt dann nicht einfach alle <br /> aus $message wieder ausfiltern ?!

Ist das ne Idee, oder liege ich da ganz falsch ?! Was meint Ihr ???
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag von esperitox »

Möglich wäre das schon denke ich aber dann würden alle Zeilenumbrüche gefiltert auch die in der normalen Nachricht und ich glaube kaum das deine User dann noch was posten ;)

esperitox
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“