benannt maskierter Unicode

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
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.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
friedels-home
Mitglied
Beiträge: 333
Registriert: 19.02.2006 00:59
Wohnort: Weingarten/Pfalz
Kontaktdaten:

Beitrag von friedels-home »

Leider musste ich feststellen, dass das nur eine Teillösung ist. In den Überschriften kann man immer noch kein Unicode verwenden. Weiß jemand, wo die Maskierung für die Überschriften gemacht wird?



@Olli Oberhausen: Und wo ist der Vorteil? Wozu soll das & maskiert werden?
Benutzeravatar
friedels-home
Mitglied
Beiträge: 333
Registriert: 19.02.2006 00:59
Wohnort: Weingarten/Pfalz
Kontaktdaten:

Beitrag von friedels-home »

Ich habe immer noch keine Lösung gefunden und die falsche Anzeige der Überschriften stört sehr.

Die & werden als & in die phpbb_topics eingetragen. Weiß denn keiner, wo das maskiert wird? Ich habe es, wahrscheinlich wegen meinen mangelhaften Phpkenntnissen, nicht gefunden.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Die & werden in der functions_posts.php Umgewandelt.

Code: Alles auswählen

	// Check subject
	if (!empty($subject))
	{
		$subject = htmlspecialchars(trim($subject));
	}

Eine alternative wäre vielleicht:

Code: Alles auswählen

	
	// Check subject
	if (!empty($subject))
	{
		$subject = preg_replace($html_entities_match, $html_entities_replace, $subject);
	}
Dann aber:
global $html_entities_match, $html_entities_replace;
in der funktion nicht vergessen.

EDIT: Habs mal getestet - geht...
& wird maskiert, &# 9603; &# 9604; &# 9605; &# 9606; &# 9607; &# 9608; jedoch nicht...
Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
friedels-home
Mitglied
Beiträge: 333
Registriert: 19.02.2006 00:59
Wohnort: Weingarten/Pfalz
Kontaktdaten:

Beitrag von friedels-home »

Danke für die Bemühung. Leider verstehe ich nicht, was du mir sagen willst.
Olli Oberhausen hat geschrieben:Dann aber:
global $html_entities_match, $html_entities_replace;
in der funktion nicht vergessen.
Was bedeutet das? In welcher Funktion soll ich was machen?
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

// Check Subject wird in der Funktion prepare_post() durchgeführt.

Da dort die variablen $html_entities_match und $html_entities_replace benötigt werden, mußt du sie erst globalisieren.

Dazu einfach $html_entities_match, $html_entities_replace in die erste zeile der funktion eintragen:

Hier mal der ganze code:

Ersetze (in der datei functions_post.php):

Code: Alles auswählen

$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#', '#"#');
$html_entities_replace = array('&', '<', '>', '"');
mit:

Code: Alles auswählen

$html_entities_match = array('#&(?!(\#\d{2,4};|\w{2,6};))#', '#<#', '#>#', '#"#');
$html_entities_replace = array('&', '<', '>', '"');
Ersetze (in der funktion prepare_post):

Code: Alles auswählen

   // Check subject
   if (!empty($subject))
   {
      $subject = htmlspecialchars(trim($subject));
   }
Mit:

Code: Alles auswählen

	if (!empty($subject))
	{
		$subject = preg_replace($html_entities_match, $html_entities_replace, $subject);
	}
Ersetze (in der funktion prepare_post):

Code: Alles auswählen

	global $board_config, $userdata, $lang, $phpEx, $phpbb_root_path;
Mit:

Code: Alles auswählen

	global $board_config, $userdata, $lang, $phpEx, $phpbb_root_path, $html_entities_match, $html_entities_replace;
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
friedels-home
Mitglied
Beiträge: 333
Registriert: 19.02.2006 00:59
Wohnort: Weingarten/Pfalz
Kontaktdaten:

Beitrag von friedels-home »

Wenn ich das richtig sehe, wird dann z.B. & und &hearts; und > maskiert. Das darf doch nicht maskiert werden. Und mir ist immer noch nicht klar, wozu das & maskiert werden soll.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Ein alleinstehendes & wird in & amp; umgewandelt und < > auch, alle anderen bleiben wie sie sind...

so wolltest du das doch haben....

Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
friedels-home
Mitglied
Beiträge: 333
Registriert: 19.02.2006 00:59
Wohnort: Weingarten/Pfalz
Kontaktdaten:

Beitrag von friedels-home »

Es wird wohl Zeit, dass ich endlich mal Zeit finde um mich etwas mehr mit Php zu befassen.

Ich muss das mit dem Unicode erst mal etwas zurückstellen. Wichtiger ist, dass die bereits eingebauten Änderungen richtig funktionieren. Ich habe festgestellt, dass es mit der jetzigen Unicodelösung Probleme gibt. In meinem Board wird oft Quellcode gepostet. Im Moment habe ich keine Zeit um mich damit ausreichend auseinander zu setzen. Ich melde mich wieder, wenn ich mehr Zeit habe. Jedenfalls ist es jetzt so, dass die maskierten Zeichen so in der Datenbank stehen, wie sie eingegeben wurden. Aber wenn man einen Beitrag editiert, ändert sich das. Wenn ich also z.B. &amp;amp; in das Textfeld eingebe, erscheint im Posting &amp;. Das soll auch so sein. In der Datenbank steht dann auch &amp;amp;. Aber wenn man auf Editieren klickt, steht im Textfeld nur noch &amp;, wie es vorher im Posting stand. Wenn man also an dieser Stelle nichts editiert (sondern wo anders im selben Posting), ändert sich der Eiontrag in der Datenbank. Das darf natürlich nicht sein.
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“