WebsiteBaker Community Forum

WebsiteBaker Support (2.12.x) => General Help & Support => Hilfe & Support (deutsch) => Topic started by: Craxx on June 06, 2018, 03:10:51 PM

Title: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 06, 2018, 03:10:51 PM
Hallo,

ich habe eine Website von Strato WB Version 2.12 zu 1und1 umgezogen. Beides PHP 7.0
Leider funzte jetzt das Modul Dirlist nicht mehr es kommt folgende Fehlermeldung:

There was an uncatched exception
Call to undefined function ereg_replace()
in line (70) of (/modules/dirlist/class.parser.php):


Die class.parser.php hat folgenden Inhalt:
Code: [Select]
<?php
/**
* Simple TemplateParser Class
*
* @author  :  MA Razzaque Rupom <rupom_315@yahoo.com>, <rupom.bd@gmail.com>
*             Moderator, phpResource (http://groups.yahoo.com/group/phpresource/)
*             URL: http://www.rupom.info
*             Additional Features by
*             Ralf Hertsch, Berlin (Germany) - <hertsch@berlin.de>
* @version :  2.0
* Purpose  :  Parsing Simple Template File and Data that Contains Macros
* @abstract template Parsing
*/

class templateParser
{
 var $data = array();
   var 
$html "";

 /**
 * Initializes "macro=>value" array
 * @param Array "macro=>value" array
 * @return none
 */
   
function initData($data,$resetHTML=true)
   {
      
$this->data = array();
      
$this->data $data;
      if (
$resetHTML) unset($this->html);
   }

   
/**
 * Parses template file
 * @param template filename
 * @return parsed template
 */
   
function parseTemplateFile($templateFile)
   {
      
$searchPattern          "/\{([a-zA-Z0-9_]+)\}/i"// macro delimiter "{" and "}"
      
$replacementFunction    = array(&$this'parseMatchedText');  //Method callbacks are performed this way
      
$fileData               file_get_contents($templateFile);
      
$this->html            .= preg_replace_callback($searchPattern$replacementFunction$fileData);
      return 
$this->html;
   }

   
/**
 * Parses template data
 * @param template data
 * @return parsed data
 */
   
function parseTemplateData($templateData)
   {
      
$searchPattern          "/\{([a-zA-Z0-9_]+)\}/i"//macro delimiter "{" and "}"
      
$replacementFunction    = array(&$this'parseMatchedText');  //Method callbacks are performed this way
      
$this->html          preg_replace_callback($searchPattern$replacementFunction$templateData);
      return 
$this->html;
   }

   
/**
   * Callback function that returns value of a matching macro
   * @param Array $matches
   * @return String value of matching macro
   */
   
function parseMatchedText($matches)
   {
      return 
$this->data[$matches[1]];
   }

  function 
encodeSpecialChars(&$value) {
  
$value ereg_replace("ä","&auml;",$value);
  
$value ereg_replace("Ä","&Auml;",$value);
  
$value ereg_replace("ö","&ouml;",$value);
  
$value ereg_replace("Ö","&Ouml;",$value);
  
$value ereg_replace("ü","&uuml;",$value);
  
$value ereg_replace("Ü","&Uuml;",$value);
  
$value ereg_replace("ß","&szlig;",$value);
  
$value ereg_replace("€","&euro;",$value);
    return 
$value;
  }

  function 
decodeSpecialChars(&$value) {
   
$value ereg_replace("&auml;","ä",$value);
   
$value ereg_replace("&Auml;","Ä",$value);
   
$value ereg_replace("&ouml;","ö",$value);
   
$value ereg_replace("&Ouml;","Ö",$value);
   
$value ereg_replace("&uuml;","ü",$value);
   
$value ereg_replace("&Uuml;","Ü",$value);
   
$value ereg_replace("&szlig;","ß",$value);
   
$value ereg_replace("&euro;","€",$value);
    return 
$value;
  }

  
/**
  * Fügt dem "macro=>value" Array Werte hinzu und maskiert Sonderzeichen für die HTML Ausgabe
  * @param string $key Schlüssel
  * @param string $value Wert
  * @param boolean $encode=true Sonderzeichen maskieren
  */
function add($key,$value,$encode=true) {
  
$encode ? $this->data[$key]=$this->encodeSpecialChars($value) : $this->data[$key]=$value;
  }

  
/**
   * Entfernt einen Wert aus dem "macro=>value" Array
   *
   * @param string $key
   */
  
function delete($key) {
    unset(
$this->data[$key]);
  }

  
/**
   * Setzt das "macro=>value" Array zurück
   *
   */
  
function clear($resetHTML=false) {
  
$this->data = array();
    if (
$resetHTML) unset($this->html);
  }

  function 
echoHTML($resetHTML=true) {
  
echo $this->html;
    if (
$resetHTML) unset($this->html);
  }

  function 
getHTML($resetHTML=true) {
   
$result $this->html;
    if (
$resetHTML) unset($this->html);
    return 
$result;
  }

//End Of Class

/**
 * Fuer BookShop angepasste Variante des Parsers
 *
 * @author Ralf Hertsch, Berlin (Germany)
 */

?>


Vielleicht gibts inzwischen ja auch ein anderes Modul, was ähnlich funktioniert und neuer ist.
Vielen Dank für Eure Unterstützung.
Craxx

edit: Code formatiert
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 06, 2018, 03:36:06 PM
ereg_replace( auf beiden Versionen und nur einer diese Meldung?
Ist die Umgebung/inkl. Einstellungen wohl nicht dieselbe.

ereg_replace( war als deprecated gekennzeichnet, und mit 7.xx "verschwunden"/entfernt
Also sollte irgendwer das Modul korrigieren.

Für Codes bitte die Raute im Editor nutzen.

MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 06, 2018, 03:36:57 PM
Hallo, Code bitte immer mit dem Code-Button # einfügen.
Die schnellste Lösung für dich ist die gleiche PHP-Version wie bei Strato zu verwenden.

2. Lösung, den Codeabschnitt ab Zeile 69 austauschen mit diesem:
Code: [Select]
  function encodeSpecialChars(&$value) {
  $value = preg_replace("/ä/","&auml;",$value);
  $value = preg_replace("/Ä/","&Auml;",$value);
  $value = preg_replace("/ö/","&ouml;",$value);
  $value = preg_replace("/Ö/","&Ouml;",$value);
  $value = preg_replace("/ü/","&uuml;",$value);
  $value = preg_replace("/Ü/","&Uuml;",$value);
  $value = preg_replace("/ß/","&szlig;",$value);
  $value = preg_replace("/€/","&euro;",$value);
    return $value;
  }

  function decodeSpecialChars(&$value) {
    $value = preg_replace("/&auml;/","ä",$value);
    $value = preg_replace("/&Auml;/","Ä",$value);
    $value = preg_replace("/&ouml;/","ö",$value);
    $value = preg_replace("/&Ouml;/","Ö",$value);
    $value = preg_replace("/&uuml;/","ü",$value);
    $value = preg_replace("/&Uuml;/","Ü",$value);
    $value = preg_replace("/&szlig;/","ß",$value);
    $value = preg_replace("/&euro;/","€",$value);
    return $value;
  }

Ganz erledigt ist das Problem dann noch nicht, weil neue Fehlermeldungen im errorlog auftauchen.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 06, 2018, 03:41:01 PM
Hy Ihr beiden vielen Dank.
Wie bekomme ich den Code jetzt in # damit ich hier den Boardregeln mich gegenüber korrekt verhalte? Sorry dafür ;-)

Und auf Strato und 1und1 ist es PHP 7.0 also gleich???
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 06, 2018, 03:43:34 PM
@dbs

Super vielen lieben Dank, jetzt funzt es erstmal. DANKE.

Klasse wäre natürlich, wenn es da auch eine neue Variante gäbe wo es nix ins errorlog schreibt.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 06, 2018, 03:46:19 PM
Ist das v0.2?
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 06, 2018, 03:47:10 PM
0.22
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 06, 2018, 03:48:08 PM
Da hoffen wir mal, dass einer mit Ahnung von PHP vorbeischaut.
Die nächsten Meldungen wären:
Quote
[E_NOTICE] /modules/dirlist/class.dirlist.php:[437] from /modules/dirlist/modify.php:[45] dirlist->dlgModify "Uninitialized string offset: -1"
[E_DEPRECATED] /modules/dirlist/class.dirlist.php:[525] from /modules/dirlist/modify.php:[45] dirlist->dlgModify "The each() function is deprecated. This message will be suppressed on further calls"
[E_NOTICE] /modules/dirlist/class.parser.php:[42] from /modules/dirlist/view.php:[49] dirlist->dlgView "Undefined property: templateParser::$html"

Meine Version
 *  v0.21 - 14.05.2008
 *    fixed:    problem reading WB settings from database
 *
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 06, 2018, 03:49:45 PM
Kannste ja mal anhängen.
Hab' hier auch noch eine 0.29 -nennt sich aber KitDirList.
Weiß also im Moment noch nix genaues, muß oder sonstwer erstmal reinschauen, kommt vielleicht noch was...

Je nach Modul gabs da auch Abhängigkeiten (Kit). Falls da noch was dranhängt wirds u.U. spaßig -ähm
MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 06, 2018, 03:52:22 PM
ich hänge mal die 0.22 mit dem Fix von dbs an ;-)

Ja danach kam KitDirlist, da benötigt man noch ne Menge an anderem Kram, ist also aus meiner Sicht nicht brauchbar...
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 06, 2018, 03:55:23 PM
Hab gerade mal im Archiv gewühlt
0.17, 0.18, 0.20, 0.22, 0.29

Da werd ich zumindest mal reinschauen.
Vorerst läufts bei Dir ja (noch)   :-D

Aber vielleicht hat ja jemand schon....

MfG. Evaki

Die gepatchte 0.22 schreit bei der Installation bei mir zumindest vor Schmerzen.
Guck ich mir halt am Abend nochmal an.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 06, 2018, 04:16:12 PM
freue mich darauf :-D

Wobei die 0.22 zip von mir nur aus Modules vom Server kopiert und gezippt war....
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 07, 2018, 09:23:41 AM
@dbs
Kleiner Zwischenbericht
Hab mich mal an v0.22 "rangemacht", unter php7 und MySql-strict.
Da ging "garnix", also erstmal strict abgeschaltet.
Konflikte mit Klassen (same name etc) und Funktionen (benötigte constructors) beseitigt.
Nun funktionierte es.  :-)
Aktuell Umschaltung auf php7.2 und somit neuer Spaß  (Y)
Wobei die each() function schon in Kürze auf der Abschußliste steht.
" templateParser::$html" Das kommt mir bekannt vor, aber bei meinem Gedächtnis mit Wegschmeißfunktion() bleibt nicht viel davon hängen.

Jedenfalls ist da noch was zu tun. Install und Deinstall käme noch vor MySQL-Anpassung dran
MySql-Strict hat wie üblich wg. unkorrekter Tabelleneinträge gemeckert, kommt sowieso erst am Schluß.

Vielleicht am Nachmittag ein neuer "Reinblick", hab noch anderes aufm Zettel. Je mehr man da drauf hat, wird Zeit zum kostbaren Gut.
MfG. Evaki

Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: DarkViper on June 07, 2018, 10:25:24 AM
Hab mir das Teil gestern Abend auch zu Gemüte geführt....  und ganz schnell wieder von der Platte gelöscht.
Da sind so viele Reparaturen nötig, um das Teil stabil und vor allem SICHER an's laufen zu bringen, da ist ein komplett neues Modul schneller und einfacher erstellt.
Da werden zwar Klassen benutzt, diese sind jedoch nichts anderes als einfache Funktionssammlungen ... und das auch noch im uralten PHP-4 Stil.
Haufenweise werden Parameter als ByReference übergeben, so dass erst mal ein Studium des "Codes" nötig ist, um festzustellen, wo sich die Änderungen überhaupt überall auswirken..
Also halbwegs übersichtlicher Code ist etwa das Gegenteil des vorhandenen.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 07, 2018, 10:29:06 AM
Vielen Dank an Euch beide :-D

Freue mich wenn was kommt, gefixed oder neu.

Liebe Grüße
Craxx
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 07, 2018, 11:10:56 AM
Also Manu, statt nur zu meckern, hättest ja auch noch ein paar Tipps dalassen können um 1 oder 2 Probleme zu lösen. :-)
Dazu muss man nicht gleich den ganzen Code studieren.

Das Modul ist jedenfalls nicht schlecht, wenn man nur mal eine kleine Liste von Downloads anbieten will.
Die DownloadGallerie wird ja auch nicht gerade empfohlen, wenn ich mich recht erinnere.

Irgendwas muss man aber nehmen.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 07, 2018, 11:13:17 AM
Quote from: evaki
" templateParser::$html" Das kommt mir bekannt vor, aber bei meinem Gedächtnis mit Wegschmeißfunktion() bleibt nicht viel davon hängen.
Ja, kommt mir auch bekannt vor aus Modulen wie feedback und noch eins. Ich schau mal.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 07, 2018, 11:41:21 AM
Ich hab jetzt mal in die class.dirlist.php geschaut, Zeile 231
Der angepasste Code sieht so aus (3 Zeilen mit Kommentar dahinter):
Code: [Select]
class dirlist extends sql_dirlist {

  var $is_Frontend;
  var $pageLink;
  var $page_id;
  var $section_id;

  /**
   * Constructor
   *
   * @param INT $sectionID
   * @param INT $pageID
   * @param ARRAY $language
   * @param BOOL $isFrontend
   * @return dirlist
   */
  // function dirlist($pageID, $sectionID, $isFrontend=true) {
  public function __construct($pageID, $sectionID, $isFrontend=true) {    // <<<<<<<<<<<<<<<<<<<< geändert
    parent::__construct();                    // den constructor der elternklasse aufrufen <<<<<<<<<<  neu
    // $this->sql_dirlist();                            <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< weg damit
    $this->record = array();
    $this->is_Frontend = $isFrontend;
    $this->pageLink = '';
    $this->page_id = $pageID;
    $this->section_id = $sectionID;
    if (!$this->sql_getPageLinkByID($this->page_id,$this->pageLink)) {
    $this->print_error(); }
    else {
      $settings = $this->sql_getWBSettings();
    $this->pageLink = WB_URL.$settings['pages_directory'].$this->pageLink.$settings['page_extension'];  }
  }

Vielleicht ist es richtig so? :)
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 07, 2018, 12:58:14 PM
Soweit ich mit nem kurzen Überfliegen sehen konnte, ist das exakt mitdem überein, was ich schon fertiggestellt habe.
Quote
Evaki: Konflikte mit Klassen (same name etc) und Funktionen (benötigte constructors) beseitigt.
Trotzdem Dank, da mich das in meinem Vorgehen bestätigt und natürlich motiviert, auch zukünftig "sowas" anzugehen.
Gefragt ist jetzt halt die Parsergeschichte (templateParser::$html) und each(), wobei letzteres durch ein Konstrukt XY ersetzt werden muß, soweit ich die bisher gelesenen Netzbeiträge verstanden habe. Den Kram mit foreach und anderem Schleifengedaddel inkl. Sortierungen habe ich mir bisher noch nie angetan. Ob ich das jetzt unbedingt heute oder morgen bringen muß, oder ein gescheiter Tip die Lösung etwas näher bringt -weiß nich. Bin ja schon froh mich mit etwas Logik solchen Sachen nähern zu können.
Wir schaun mal was kommt  :-D Der Tag ist ja noch jung.
MfG. Evaki

Nachtrag: Du lagst anscheinend richtig mit dem Parsergedöns  (Y) Hab eben mal das Forum durchsucht. Dann guck ich halt mal später, wie ich das verwerten kann. Pause=Schulz

Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 07, 2018, 01:29:05 PM
Anscheinend ists doch "nur" noch each().
Wir werden sehen...
MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 07, 2018, 02:51:48 PM
Zwischenstand: " Nur zum Testen! "
v23c
php 7.2
MySql NONstrict

each() ist noch offen

Bitte um Rückmeldungen

MfG. Evaki
p.s. " templateParser::$html" Fehler barg eine Überraschung. Es war in irgendeiner Version wohl dort ein Punkt reingerutscht, wo er nicht hingehört. Dachte zuerst, es wäre ein Fleck aufm LCD, aber nee nich. Un sowat sollste als Laie finden -tröteröööö Da wirste allein von Gucken blöd.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 07, 2018, 03:12:19 PM
Sehe mit der Version nur noch 2 Meldungen.
Code: [Select]
[E_NOTICE] /modules/dirlist/class_dirlist.php:[444] from /modules/dirlist/modify.php:[45] dirlist->dlgModify "Uninitialized string offset: -1"
[E_DEPRECATED] /modules/dirlist/class_dirlist.php:[532] from /modules/dirlist/modify.php:[45] dirlist->dlgModify "The each() function is deprecated. This message will be suppressed on further calls""
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 07, 2018, 03:17:03 PM
Die Notiz
Quote
[E_NOTICE] /modules/dirlist/class_dirlist.php:[444] from /modules/dirlist/modify.php:[45] dirlist->dlgModify "Uninitialized string offset: -1"
wundert mich, weil es die einzige ist, die ich noch nicht zu Gesicht bekommen habe.
Kannste Dein/e System/Konfiguration angeben? Vielleicht krieg ichs ja dann auch zu sehen.  :-D
MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 07, 2018, 03:19:08 PM
Lösung für each()
class_dirlist.php Zeile 532 (auskommentiert und darunter neu eingefügt)
Code: [Select]
    // while (list($key,$val) = each($media_dirs)) {
      foreach ($media_dirs as $key => $val) {

Quote
Kannste Dein/e System/Konfiguration angeben? Vielleicht krieg ichs ja dann auch zu sehen
PHP7.2.6
utf8mb4
mysql5.7
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: DarkViper on June 07, 2018, 03:24:46 PM
Ich hab mir den Parser mal 'kurz' vorgenommen....
Da war noch eine ganze Reihe mehr Probleme drin als nur das $html.

so mehrere &$this->  aufrufe... was seit (glaub) 5.3 falsch ist.. (in PHP-4 hat das noch gepasst)
noch ein paar ByRef-Aufrufe..  etc.etc..

Es sind übrigens auch fast alle Dateien noch Windooflike...
Also noch umstellen auf utf-8, 4 Leerstellen anstatt Tabs und LF am Zeilenende anstatt CRLF

ach ja.. das auch noch:  Wenn man durchgehend utf-8 benutzt, wird die ganze html-entity-Schieberei auch noch überflüssig
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 07, 2018, 03:25:50 PM
Werde es einfügen?
Warum war das so einfach? Hab ich den Wald nicht mehr gesehen? -heul
MfG. Evaki
p.s. Gibts irgendwo ne Erläuterung zu dem Teil? (Netz oder so)
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 07, 2018, 03:26:53 PM
@DV Wie geil is das denn  (Y)
Kann man ja weiterbauen -die Welt geht ja noch nicht unter

>>Es sind übrigens auch fast alle Dateien noch Windooflike
Ja, ich weiß. Wenns halbwegs fertig ist, werden die alle übern Editor autom auf utf8/Lin gesetzt
Im Moment läufts wie gehabt unter php-embedded-server/win, damit kein Server die Tests behindert.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 07, 2018, 03:30:26 PM
Leider ist der Link zur Lösung verloren, aber kam durch Googlesuche zu stackoverflow und sah ziemlich identisch aus.
Sollte passen und wenn Manu nix sagt, passt es. :-)
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: DarkViper on June 07, 2018, 04:04:41 PM
öhm...  von der Sorte Schleifen ham mer die letzten 2-3 Jahre genügend 'umgebaut ;)
so sieht übrigens bei mir eine Originaldatei aus, wenn ich sie lade:
(http://isteam.dynxs.de/charset.png)
wird als ISO-8859-1 erkannt...  und der utf8-Code für das €-Zeichen dazwischen wird als Fehler angezeigt.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 07, 2018, 05:50:57 PM
Dat mit 'PAD' hab isch jesehen.
Das Bild (screenshot) ist bei mir nicht mehr zu sehen.

Bei mir siehts so aus:
Code: [Select]
function encodeSpecialChars(&$value) {
  $value = preg_replace("/ä/","&auml;",$value);
  $value = preg_replace("/Ä/","&Auml;",$value);
  $value = preg_replace("/ö/","&ouml;",$value);
  $value = preg_replace("/Ö/","&Ouml;",$value);
  $value = preg_replace("/ü/","&uuml;",$value);
  $value = preg_replace("/Ü/","&Uuml;",$value);
  $value = preg_replace("/ß/","&szlig;",$value);
  $value = preg_replace("/€/","&euro;",$value);
    return $value;
  }

  function decodeSpecialChars(&$value) {
    $value = preg_replace("/&auml;/","ä",$value);
    $value = preg_replace("/&Auml;/","Ä",$value);
    $value = preg_replace("/&ouml;/","ö",$value);
    $value = preg_replace("/&Ouml;/","Ö",$value);
    $value = preg_replace("/&uuml;/","ü",$value);
    $value = preg_replace("/&Uuml;/","Ü",$value);
    $value = preg_replace("/&szlig;/","ß",$value);
    $value = preg_replace("/&euro;/","€",$value);
    return $value;
  }
 
Dateiformat: unix, utf-8, html (utf-8 ohne BOM)

Nachtrag: Hab mal die von DV genommen, doch:
Code: [Select]
There was an uncatched exception
syntax error, unexpected 'unset' (T_UNSET)
in line (121) of (\modules\dirlist\class_parser.php):

Zu beachten ist vielleicht, daß v23c die aktuelle ist, und dort alle class-Dateien nun mit Unterstrich statt Punkt versehen sind. Das war eine Möglichkeit mir viel Code-Gewusel zu ersparen.

Werde nun erstmal die v23c mit dem Code von "dbs" versehen, und schauen...
Läuft und funktioniert das alles bei Dir dbs? Also auch weiterhin die Sortierung?
Und ohne Fehlermeldung?

Statt dann alles für sql-strict usw. aufzubereiten, würde ich dann vorher noch gerne 'nen Test auf Sicherheit machen. Ich erinnere, daß mit Media, Download und Sortierung ja auch schon ein anderer Kandidat Probleme in Sachen Sicherheit hatte. Also, besser is.
MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 08, 2018, 08:10:00 AM
Die nächste Testversion wäre jetzt schon fertig, wenn nicht, wie geahnt, noch ein Sicherheitaspekt hinzu käme. Die Suite meldet (Possible) CSRF auf dem niedrigsten Level.

Code: [Select]
[Possible] Cross-site Request Forgery (low)

Form Name(s)
btn_file_6
btn_size_6
btn_date

Die befinden sich in modules/dirlist/htt/frontend.htt

Abhilfe
#Senden Sie in jedem HTTP-Request zusätzliche Informationen, anhand derer festgestellt werden kann, ob der Request von einer autorisierten Quelle stammt. Dieser "Validierungstoken" sollte für Angreifer, die noch keinen Zugriff auf das Benutzerkonto haben, schwer zu erraten sein. Wenn einem Request ein Validierungstoken fehlt oder der Token nicht dem erwarteten Wert entspricht, sollte der Server den Request ablehnen.


#Wenn Sie ein Formular in einer Ajax-Anfrage posten, können benutzerdefinierte HTTP-Header verwendet werden, um CSRF zu verhindern, da der Browser verhindert, dass Sites benutzerdefinierte HTTP-Header an eine andere Site senden, aber es Sites erlaubt, benutzerdefinierte HTTP-Header mit XMLHttpRequest an sich selbst zu senden.

For native XMLHttpRequest (XHR) object in JavaScript;
xhr = new XMLHttpRequest();
xhr.setRequestHeader('custom-header', 'value');

For JQuery, if you want to add a custom header (or set of headers) to
a. individual request
$.ajax({
    url: 'foo/bar',
    headers: { 'x-my-custom-header': 'some value' }
});

b. every request
$.ajaxSetup({
    headers: { 'x-my-custom-header': 'some value' }
});
OR
$.ajaxSetup({
    beforeSend: function(xhr) {
        xhr.setRequestHeader('x-my-custom-header', 'some value');
    }
});
Übersetzt mit www.DeepL.com/Translator

Kommt hier ein "Validierungstoken" zum Zuge?

Frage: "Wer kanns und machts, welche Lösung auch immer?"

Oder gehörts in die Tonne (false positive)?

MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: DarkViper on June 08, 2018, 12:34:17 PM
Nachtrag: Hab mal die von DV genommen, doch:
Code: [Select]
There was an uncatched exception
syntax error, unexpected 'unset' (T_UNSET)
in line (121) of (\modules\dirlist\class_parser.php):
in Zeile 120 fehlt nur eine schließende Klammer. ;)  :oops:
sollte so sein:

    public function delete($key)
    {
        if (array_key_exists($key, $this->data)) {
            unset($this->data[$key]);
        }
    }


Zu beachten ist vielleicht, daß v23c die aktuelle ist, und dort alle class-Dateien nun mit Unterstrich statt Punkt versehen sind. Das war eine Möglichkeit mir viel Code-Gewusel zu ersparen.
War ned gaanz so gut , die Idee.. ;)
Die meisten Autoloader suchen in der Reihenfolge:   Klasse.php  >  class.Klasse.php  also erst ohne, dann mit Präfix 'class.'.
Soweit ich jetzt informiert bin, ist Dietmar dabei, immer weiter auf Nutzung des Autoloaders umzustellen, so dass endlich das ganze include, include_once, require, require_once  Gemantsche verschwindet. Und da ist es eben sinnvoll, wenn bei Änderungen gleich die Standards dafür eingehalten werden....   gibt nachher weniger Arbeit.

Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 08, 2018, 01:01:10 PM
Na gut, dann eben nochmal von vorne, damit der "Autoloader" Zucker in den Hintern kriegt.
Versuche ja nur aus vorhandenem Code noch was zu machen.
Hätte, hätte Fahrradkette, hätte ich das naturlich nicht auf diese Weise gelöst.

Ist halt doof, wenn man kein Programmierer ist, sondern nur Code-Bastler und nur das nötigste dazu liest.
Aber schön positiv denken, man hat was dazu gelernt und das Essen schmeckte heute trotzdem noch.

MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 08, 2018, 04:44:54 PM
RESPEKT, klasse!!!
Es tut sich was, freue mich, weil so ein Modul echt für viele Anwendungsbereiche klasse ist. Danke schon mal dafür :-D
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 08, 2018, 05:01:55 PM
Liegt schon wieder korrigiert und optimiert vor (v23e)
Aber wie einige Kommentare vorher schon erläutert, gehts erst mal um Sicherheit, auch wenn die klitzekleine Lücke für Spitzmäuse bisher (in all den Versionen vorher) noch nicht gefährdend in Erscheinung trat. Danach halt noch "die anderen Sachen".  <ironie>Hab ja sonst nix um die Ohren</ironie)
Oft klappt das hier auch mit alten Modulen prima, wenns Unterstützung gibt, und man Biß hat. Man sollte aber wissen, daß es auch viele hoffnungslose Fälle gibt
MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 08, 2018, 05:48:11 PM
Quote
Läuft und funktioniert das alles bei Dir dbs? Also auch weiterhin die Sortierung?
Und ohne Fehlermeldung?
Die Frage hattest später nachgeschoben, deshalb total übersehen von mir.
Sortierungen und Ausschlüsse funktionieren tadellos bei mir.
Frontend verursacht keine Meldungen.
Nur Backend erzeugt bei jedem Aufruf:
Code: [Select]
[E_NOTICE] /modules/dirlist/class_dirlist.php:[444] from /modules/dirlist/modify.php:[45] dirlist->dlgModify "Uninitialized string offset: -1
Ich würde aus der frontend.css die Zeile 17 mit background und color rausnehmen oder nur color: #000 stehen lassen. Denn weiß (Schrift) auf grau (Button) lässt sich schwer lesen.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 08, 2018, 06:14:55 PM
Dasch'ja'n Ding.
Diese Meldung krieg ich einfach nicht, trotz dev und error... -1 + config debug_true
egal wie oft ich in die Tasten haue.

Bekommst Du die mit schon eingebundenen Inhalt, oder wenn "noch nix drin" ist?
MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 08, 2018, 07:34:46 PM
Schon nach Anlegen des Abschnittes und dann bei jedem weiteren Aufruf, egal ob ein Verzeichnis gewählt wurde oder nicht.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 08, 2018, 08:42:10 PM
Bisher hatte ich immer mit Inhalt auf logs geschaut.
Nun, nach Entfernung des Inhalts, habe ich zwar immer noch nicht (wahrscheinlich erst wenn ich mal neu starte) Deine Notiz, dafür aber
Code: [Select]
Fri, 08 Jun 2018 18:27:32 +0000 [E_NOTICE] \modules\dirlist\class.dirlist.php:[361] from \modules\dirlist\modify.php:[45] dirlist->dlgModify "Undefined index: section_id"
Fri, 08 Jun 2018 18:27:32 +0000 [E_NOTICE] \modules\dirlist\class.dirlist.php:[361] from \modules\dirlist\modify.php:[45] dirlist->dlgModify "Undefined index: exclude"
Fri, 08 Jun 2018 18:27:32 +0000 [E_NOTICE] \modules\dirlist\class.dirlist.php:[361] from \modules\dirlist\modify.php:[45] dirlist->dlgModify "Undefined index: extensions""
Ich glaube, daß ich noch eine Weile "Spaß" haben werde. Wer hätte das gedacht  8-)

Wenn ich recht erinnere, hatten vor langer Zeit einige Module (eben die "alten") diese Art von Macke, also ohne Inhalt Fehlermeldungen. Hatste dann was inititiert, waren se wech.

Wenn man das nicht neu programmieren will, aufs Weglegen hatte DV ja schon hingewiesen, wird man -erst recht ich, der von nix was weiß- als Folge da wohl Kompromisse eingehen müssen, und sogar können, weil keine Funktionen eingeschränkt werden. Aber noch gehts ja um Fehlersuche.
Und nicht zu vergessen, es läuft ja noch. Ist ja kein Totalausfall.

MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 08, 2018, 09:36:40 PM
Deine Meldungen bekomme ich auch, wenn kein Verzeichnis gewählt und dann abgespeichert wurde.
+ Meine Meldung. Aber, wenn das nur ein Einzelfall ist, kann man das ignorieren.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 11, 2018, 11:45:26 AM
Ich packs immer noch nicht beiseite, sondern schau immer mal rein, wenns die Zeit erlaubt.
Gibt ja auch noch anneres. Essen muß man auch mal un so.
Das hat natürlich wieder zu neuen Erkenntnissen geführt.
DV kann man durchaus zustimmen (sinngemäß: teilweise neu programmieren), wenn man erkennt, daß -hier nur ein Beispiel genannt- der Parser das Form (htt) schluckt, aber das Form deshalb nicht mit php gegen CSFR (post) abgesichert werden kann. Ajax geht ja in diesem Fall der Sortierung nicht. 

Einige Fehlermeldungen scheinen jetzt abgestellt.

Aber die Installation unter MySql-strict stellt mich aktuell schon wieder vor neue Probleme.
Gibts bei der Erzeugung der Tabelle "BLOB/TEXT column can't have a default value"
und man korrigiert das, indem man DEFAULT rausschmeißt, hat man sich ein neues Problem eingehandelt "[sql_addEntry()] Field 'xxx' doesn't have a default value".  Da kommt Freude auf  :roll:
Als Laie ist mir dann nicht klar, ob der Code besch... ist oder ich mal wieder bei nem Denkfehler hängen geblieben bin. Jedenfalls find ichs beknackt, daß hier für jederlei Furz 'ne Funktion geschrieben wurde. Das Zeugs funktioniert wie festgenagelt. Vielleicht bin ich ja auch nur zu doof...

Fürn Programmierer ist das alles wohl leicht zu durchschauen, aber ich -heul -nee nee  :-D
Vielleicht löst jemand das Problem mit 'nem Tip auf, möglicherweise 'nen Denkfehler.
Boah macht dat Spaß...

MfG. Evaki

 
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 11, 2018, 11:54:43 AM
Da hilft nicht mal Google wirklich weiter  :-(
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 12, 2018, 12:32:34 PM
gibts die 23e zum Download ;-) ?
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 12, 2018, 12:38:24 PM
Keine Ahnung was die letzte war, sollte aber unter "non-strict" weiterhin laufen..
Bin schon bei der 0.24dev, was heißen soll, daß ich soweit mache wie ich kann, und dann muß der ein oder andere möglicherweise noch nachlegen. Da ich in der Woche nur häppchenweise gucke und mache, kanns dauern. Scheint ja ok zu sein, bei Dir läufts und andere haben sich noch nicht gemeldet.
MfG. Evaki
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 12, 2018, 08:17:06 PM
vielen Dank für Deinen Einsatz.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: Craxx on June 28, 2018, 06:26:29 PM
Gibts was neues zum Testen ?  ;-)
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: evaki on June 28, 2018, 06:42:03 PM
Nö.
Gibts tatsächlich sonst niemanden, der das Ding für strict tauglich machen könnte?

Mal abgesehen von der Tatsache, daß ich -noch- nicht einschätzen kann, ob ich persönlich das noch hinkriege (bin leider nicht streßtauglich, es gab aber schon konkrete Hinweise per  PM  (Y) , wäre also schon drin ), stellt es sich vom Gefühl her eher als ein Zeitproblem dar. Habe tatsächlich auch noch eine Leben neben der WB-Selbsthilfegruppe, manchmal "Sandkasten" genannt. Wenns nur einer aus dieser Gruppe wäre, der das Ding nutzen würde, läge schon etwas auf dem Tisch.

Aber vielleicht hat dbs ja noch was in der Schublade  :-D Für derartige Überraschungen ist er -mit Verlaub- immer mal gut.
MfG. Evaki
p.s. Bin wahrscheinlich ab Montag erstmal wech, da auf Reisen.
Title: Re: Nach Umszug von Strato auf 1und1 funzt Dirlist nicht mehr, beides bereits WB2.12
Post by: dbs on June 28, 2018, 07:10:07 PM
Eigentlich war immer ein anderer gut für sowas.
Die 0.24dev als Grundlage könntest du aber hier reinstellen. Vielleicht erbarmt sich jemand es zu vollenden.