benannt maskierter Unicode
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.
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.
- friedels-home
- Mitglied
- Beiträge: 333
- Registriert: 19.02.2006 00:59
- Wohnort: Weingarten/Pfalz
- Kontaktdaten:
- friedels-home
- Mitglied
- Beiträge: 333
- Registriert: 19.02.2006 00:59
- Wohnort: Weingarten/Pfalz
- Kontaktdaten:
- Olli Oberhausen
- Mitglied
- Beiträge: 561
- Registriert: 22.10.2004 01:03
- Wohnort: Oberhausen NRW
- Kontaktdaten:
Die & werden in der functions_posts.php Umgewandelt.
Eine alternative wäre vielleicht:
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
Code: Alles auswählen
// Check subject
if (!empty($subject))
{
$subject = htmlspecialchars(trim($subject));
}
Code: Alles auswählen
// Check subject
if (!empty($subject))
{
$subject = preg_replace($html_entities_match, $html_entities_replace, $subject);
}
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
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
- friedels-home
- Mitglied
- Beiträge: 333
- Registriert: 19.02.2006 00:59
- Wohnort: Weingarten/Pfalz
- Kontaktdaten:
- Olli Oberhausen
- Mitglied
- Beiträge: 561
- Registriert: 22.10.2004 01:03
- Wohnort: Oberhausen NRW
- Kontaktdaten:
// 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):
mit:
Ersetze (in der funktion prepare_post):
Mit:
Ersetze (in der funktion prepare_post):
Mit:
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('&', '<', '>', '"');
Code: Alles auswählen
$html_entities_match = array('#&(?!(\#\d{2,4};|\w{2,6};))#', '#<#', '#>#', '#"#');
$html_entities_replace = array('&', '<', '>', '"');
Code: Alles auswählen
// Check subject
if (!empty($subject))
{
$subject = htmlspecialchars(trim($subject));
}
Code: Alles auswählen
if (!empty($subject))
{
$subject = preg_replace($html_entities_match, $html_entities_replace, $subject);
}
Code: Alles auswählen
global $board_config, $userdata, $lang, $phpEx, $phpbb_root_path;
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
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
- friedels-home
- Mitglied
- Beiträge: 333
- Registriert: 19.02.2006 00:59
- Wohnort: Weingarten/Pfalz
- Kontaktdaten:
- Olli Oberhausen
- Mitglied
- Beiträge: 561
- Registriert: 22.10.2004 01:03
- Wohnort: Oberhausen NRW
- Kontaktdaten:
Ein alleinstehendes & wird in & amp; umgewandelt und < > auch, alle anderen bleiben wie sie sind...
so wolltest du das doch haben....
Olli
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
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
- friedels-home
- Mitglied
- Beiträge: 333
- Registriert: 19.02.2006 00:59
- Wohnort: Weingarten/Pfalz
- Kontaktdaten:
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; in das Textfeld eingebe, erscheint im Posting &. Das soll auch so sein. In der Datenbank steht dann auch &amp;. Aber wenn man auf Editieren klickt, steht im Textfeld nur noch &, 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.
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; in das Textfeld eingebe, erscheint im Posting &. Das soll auch so sein. In der Datenbank steht dann auch &amp;. Aber wenn man auf Editieren klickt, steht im Textfeld nur noch &, 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.