Alle Kategorien:
  E V T Z Allgemein
 EVTZ-Datenbank
  E V T Z Dokumente
 Kommentare
 Literaturdatenbank
  E V T Z Literatur2003
  E V T Z Literatur2004
  E V T Z Literatur2005
  E V T Z Literatur2006
  E V T Z Literatur2007
  E V T Z Literatur2008
  E V T Z Literatur2009
  E V T Z Literatur2010
  E V T Z Literatur2011
  E V T Z Literatur2012
  E V T Z Literatur2013
  E V T Z Literatur2014
  E V T Z Literatur2015
  E V T Z Literatur2016
  E V T Z Literatur2017
  E V T Z Literatur2018
  E V T Z Literatur2019
  E V T Z Literatur A
  E V T Z Literatur Arbe...
  E V T Z Literatur B
  E V T Z Literatur C
  E V T Z Literatur D
  E V T Z Literatur Deut...
  E V T Z Literatur E
  E V T Z Literatur E C ...
  E V T Z Literatur Engl...
  E V T Z Literatur F
  E V T Z Literatur Fran...
  E V T Z Literatur G
  E V T Z Literatur Gesu...
  Berzi2013
  Burger Wieland2010
  C E S C I Legal Acc...
  E V T Z Gesundheits...
 Literaturdatenbank
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  Balogh Pete2018
 Literaturdatenbank
  Engstroem2011
  Pallagst Caes...
  Pallagst Hart...
  Pancer Cybuls...
  Pechstein Dej...
  Pechstein Web...
  Peille2010
  Peine Starke2...
  Perez2008
  Perez2010
  Perez2010a
  Perez2012
  Perkowski2016
  Perkowski Zon...
  Perrin2011
  Persson2013
  Pfeil2011
  Piotrowska2011
  Plociniczak2008
  Popoviciu Toc...
  Portolés2015
  Proto2008
  Pucher2015
  Pucher2016
  Pucher Hamza2...
  Pucher Radzyn...
  Pyrgiel2013
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Literatu...
  E V T Z Urteile
  E V T Z Vergaber...
  M O T2013
 Startseite
  Cerdanya E G T C
  Commission2016
  Commission2016a
  Deutz2010
  Footman2014
  G O E F P2018
  Glinos Wismar2013
  Gonzalez2013
  Gyelnik2016
  I S I G2013
  Kortese2018
  Krajewski2010
  Mueller2006
  Sanjuan Gil2013
  Svensson2016
  Svensson2017
  Tiedemann2011
  Zygmunt Et Al2013
  E V T Z Literatur H
  E V T Z Literatur I
  E V T Z Literatur Ital...
  E V T Z Literatur J
  E V T Z Literatur K
  E V T Z Literatur L
  E V T Z Literatur M
  E V T Z Literatur Mult...
  E V T Z Literatur N
  E V T Z Literatur O
  E V T Z Literatur P
  E V T Z Literatur Poli...
  E V T Z Literatur Poln...
  E V T Z Literatur R
  E V T Z Literatur Raum...
  E V T Z Literatur Raum...
  E V T Z Literatur S
  E V T Z Literatur Slow...
  E V T Z Literatur Span...
  E V T Z Literatur T
  E V T Z Literatur U
  E V T Z Literatur V
  E V T Z Literatur W
  E V T Z Literatur Z
  E V T Z Literatur Zeit...
  E V T Z Urteile
  E V T Z Vergaberecht
  M O T2013
 Startseite
  E V T Z Praxis
 Rechtsprechungsdatenbank
 Rechtsvorschriften
  Kooperationsinstrumente
 Startseite

WikkaWiki => SafeHTML

Umstellung von alter PHP-Version

Meldung:
Fatal error: Uncaught Error: Attempt to modify property "handler_default" on null in /usr/local/www/wdb/3rdparty/core/safehtml/classes/HTMLSax.php:556... und noch viel länger (statt 556 auch 494)

Lösung: nicht so einfach...

A. Neuere Version von safehtml nehmen
Bei WackoWiki wird SafeHTML wohl entwickelt. Der Versuch, die neueste Version von dort in 1.4.2 zu integrieren, schlug fehl. Deshalb sind die nachstehend genannten Schritte obsolet => Lösung weiter unten!
Einbindung neuer Version - einzelne Schritte:

1. Neue Version bei Wacko-Wiki geholt
2. Unter 3rdparty/core/safehtml/ gespeichert
3. Änderungen bei Einbindung:

in libs / wakka.class.php:
=> function ReturnSafeHTML($html) ab ca. Zeile 712

in wikka.config.php:
=> 'safehtml_path' => '3rdparty/safehtml', (ca. Zeile 35)
(Pfad auf neue Version geändert)

in 3rdparty / safehtml / safehtml.php
=> alle includes wurden direkt eingespeichert (HTMLSax3, Decorate, States)




Nach Erläuterung bei Wacko-Wiki wird es so eingebunden:
<b>Example:</b>
$parser = new SafeHTML;
$result = $parser->parse($doc);

Benötigt wird aber auch HTMLSax3 - mit folgenden Dateien:
_HTMLSax3
|_HTMLSax3.php
|_HTMLSax3
|_Decorators.php
|_States.php



B. Wie wird SafeHTML in WikkaWiki allgemein eingebunden

Folgende Dateien sind betroffen / hier taucht ein Verweis darauf auf:

Variablen:
  • wikka.php
  • wikka.config.php

Funktionen werden aufgerufen:
  • formatters / wakka.php (2x)
  • formatters / html.php (2x)
  • libs / Wakka.class.php (viele)
  • actions / rss / rss.php
  • actions / image / image.php
  • actions / files / files.php
  • actions / googleform / googleform.php
  • actions / textsearchexpanded / textsearchexpanded.php

Sonstige:


Ergebnis von grep -r -i "safehtml" wdb:
wdb/wikka.php: 'safehtml_path' => '3rdparty/core/safehtml',
wdb/wikka.config.php: 'safehtml_path' => '3rdparty/core/safehtml',
wdb/setup/inc/db_update_mysql.php: rmdirr("safehtml");
wdb/formatters/wakka.php: SafeHTML will treat this but 'raw' may end up with invalid code!
wdb/formatters/wakka.php: return $wakka->ReturnSafeHTML($newembedded);
wdb/formatters/html.php:
SafeHTML will treat this but 'raw' may end up with invalid code!
wdb/formatters/html.php: return $wakka->ReturnSafeHTML($newembedded);
wdb/libs/Wakka.class.php: * @uses Config::$safehtml_path
wdb/libs/Wakka.class.php: * @uses SafeHTML::parse()
wdb/libs/Wakka.class.php: function ReturnSafeHTML($html)
wdb/libs/Wakka.class.php: $safehtml_classpath = $this->GetConfigValue('safehtml_path').'/classes/safehtml.php';
wdb/libs/Wakka.class.php: require_once $safehtml_classpath;
wdb/libs/Wakka.class.php: $safehtml = instantiate('safehtml');
wdb/libs/Wakka.class.php: $filtered_output = $safehtml->parse($html);
wdb/libs/Wakka.class.php.save: * @uses Config::$safehtml_path
wdb/libs/Wakka.class.php.save: * @uses SafeHTML::parse()
wdb/libs/Wakka.class.php.save: function ReturnSafeHTML($html)
wdb/libs/Wakka.class.php.save: #print $safehtml_classpath;
wdb/libs/Wakka.class.php.save: #$safehtml = instantiate('safehtml');
wdb/libs/Wakka.class.php.save: #$filtered_output = $safehtml->parse($html);
wdb/libs/Wakka.class.php.save: $safehtml_classpath = $this->GetConfigValue('safehtml_path').DIRECTORY_SEPARATOR.'classes'.DIRECTORY_SEPARATOR.'safehtml.php';
wdb/libs/Wakka.class.php.save: require_once $safehtml_classpath;
wdb/libs/Wakka.class.php.save: $safehtml = instantiate('safehtml');
wdb/libs/Wakka.class.php.save: $filtered_output = $safehtml->parse($html);
wdb/lang/pl/defaults/FormattingRules.txt:Domyślnie niektóre polecenia HTML są usuwane, celem zabezpieczenia przed potencjalnie niebezpiecznym kodem. Więcej informacji na ten temat: Wikka:SafeHTML.
wdb/lang/en/defaults/FormattingRules.php:printf(T_('By default, some HTML tags are removed by the %s parser to protect against potentially dangerous code. The list of tags that are stripped can be found on the %s page.'), 'SafeHTML', 'Wikka:SafeHTML');
wdb/actions/rss/rss.php: * @uses Wakka::ReturnSafeHTML()
wdb/actions/rss/rss.php: echo $this->ReturnSafeHTML($cached_output);
wdb/actions/image/image.php:wdb/actions/table/table.php: * @uses Wakka::ReturnSafeHTML()
wdb/actions/table/table.php: echo $this->ReturnSafeHTML($cached_output);
wdb/actions/googleform/googleform.php: Sanitization: Passing $query to htmlspecialchars_ent instead of ReturnSafeHTML(). Inside the value parameter of the input field,
wdb/actions/files/files.php: * @uses Wakka::ReturnSafeHTML()
wdb/actions/files/files.php:
Although $output is passed to ReturnSafeHTML, it's better to sanitize $text here. At least it can avoid invalid XHTML.
wdb/actions/files/files.php: $output = $this->ReturnSafeHTML($output);
wdb/actions/files/files.php: $output = $this->ReturnSafeHTML($output);
wdb/actions/textsearchexpanded/textsearchexpanded.php: * @uses Wakka::ReturnSafeHtml()
wdb/actions/textsearchexpanded/textsearchexpanded.php:$result_page_list = $this->ReturnSafeHtml($result_page_list);
wdb/3rdparty/core/safehtml/classes/HTMLSax_old.php: If you'll use unmodified HTMLSax, Safehtml will be NOT SAFE!
wdb/3rdparty/core/safehtml/classes/safehtml.php: SafeHTML Parser.
wdb/3rdparty/core/safehtml/classes/safehtml.php: http://pixel-apes.com/safehtml
wdb/3rdparty/core/safehtml/classes/safehtml.php:class safehtml {
wdb/3rdparty/core/safehtml/classes/safehtml.php: function safehtml() {
wdb/3rdparty/core/safehtml/classes/HTMLSax.php: If you'll use unmodified HTMLSax, Safehtml will be NOT SAFE!
wdb/3rdparty/core/safehtml/readme.txt:SafeHTML
wdb/3rdparty/core/safehtml/readme.txt:http://pixel-apes.com/safehtml
wdb/3rdparty/core/safehtml/readme.txt:Please, subscribe to http://pixel-apes.com/safehtml/feed/rss feed in order to receive notices
wdb/3rdparty/core/safehtml/readme.txt:when SAFEHTML will be updated.
wdb/3rdparty/core/safehtml/readme.txt: * New array, closeParagraph, contains list of block-level elements. When we open such elemet, we should close paragraph before. . It allows SafeHTML to produce more XHTML compliant code.
wdb/3rdparty/core/safehtml/readme.txt: * Now SafeHTML strips down table elements when we are not inside table.
wdb/3rdparty/core/safehtml/readme.txt: * Now SafeHTML correctly closes unclosed "li" tags: before opening "li" of the same nesting level.
wdb/3rdparty/core/safehtml/readme.txt: Bug fix: safehtml hangs on <style></style></style> code.
Binary file wdb/sql/wikka_sqlite3.db matches



C. Zweiter Anlauf mit Verbesserung des ursprünglichen Codes
Dieser Versuch war erfolgreich:

1. Code für Klassen verbessert
Die meisten Stellen können mit dem Tool rector korrigiert werden.

=> es mussten Konstruktoren in allen Klassen neu geschrieben werden und
=> ferner einige Deklarationen von Arrays

2. Problem des Konstruktors bei Vererbung!
Nach Umsetzung der standardmäßigen Korrekturen (Vorschlag rector) kam immer noch ein Fehler bei ca. Zeile 300 in der Funktion _parse($state = XML_HTMLSAX_STATE_START) => $state = $this->State[$state]->parse($this);.

offensichtliches Problem:

Die Klassen, die von der Klasse XML_HTMLSax_StateParser in HTMLSax.php abgeleitet werden (=> XML_HTMLSax_StateParser_Gtet430 und - eigentlich obsolet - XML_HTMLSax_StateParser_Lt430)

Lösung:
explizit die Konstruktion-Routine der Parent-Klasse aufrufen:
parent::__construct($htmlsax);


Auf dieser Seite sind keine Kommentare vorhanden