• Resolved andreasre

    (@andreasre)


    Hallo,
    der Entwikckler hat mir 0.98(Beta) zum Test zur Verfügung gestellt.
    die Versionen 0.97 und 0.98 sind anscheinend nicht kompatibel zu php8.1.2.
    bei php7.x funktionieren beide Versionen.
    Installiert: WP 6.0 auf Linux/Ubuntu 22.04 mit PHP 8.1.2 und MySQL 5.9.3
    Fehlerbeschreibung:
    plugin kann problemlos konfiguriert werden und die Daten werden angezeigt. Nachdem die Daten angezeigt wurden kann die Seite nicht mehr in WP bearbeitet/editiert werden. Fataler Fehler.
    Ich bin auch bereit das Plugin in einer neuen Version zu testen.
    Vielen Dank
    Andreas

    Hier die Fehlerbeschreibung, die WP liefert per eMail

    Fehler-Details
    ==============
    Ein Fehler vom Typ E_ERROR wurde in der Zeile 43 der Datei /srv/www/wordpress/wp-content/plugins/ttlive/inc/ttlive_helpers.php
    verursacht. Fehlermeldung: Uncaught TypeError: fwrite(): Argument #1
    ($stream) must be of type resource, bool given in
    /srv/www/wordpress/wp-content/plugins/ttlive/inc/ttlive_helpers.php:43
    Stack trace:
    #0 /srv/www/wordpress/wp-content/plugins/ttlive/inc/ttlive_helpers.php(43):
    fwrite()
    #1 /srv/www/wordpress/wp-content/plugins/ttlive/inc/ttlive_helpers.php(29):
    create_file()
    #2 /srv/www/wordpress/wp-content/plugins/ttlive/inc/ttlive_mannschaft.php(19):
    refreshTTLiveData()
    #3 /srv/www/wordpress/wp-content/plugins/ttlive/index.php(118):
    getTTLiveMannschaft()
    #4 /srv/www/wordpress/wp-includes/shortcodes.php(356): TTLive_func()
    #5 [internal function]: do_shortcode_tag()
    #6 /srv/www/wordpress/wp-includes/shortcodes.php(228): preg_replace_callback()
    #7 /srv/www/wordpress/wp-includes/class-wp-hook.php(307): do_shortcode()
    #8 /srv/www/wordpress/wp-includes/plugin.php(191): WP_Hook->apply_filters()
    #9 /srv/www/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php(1811):
    apply_filters()
    #10 /srv/www/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php(560):
    WP_REST_Posts_Controller->prepare_item_for_response()
    #11 /srv/www/wordpress/wp-includes/rest-api/class-wp-rest-server.php(1143):
    WP_REST_Posts_Controller->get_item()
    #12 /srv/www/wordpress/wp-includes/rest-api/class-wp-rest-server.php(990):
    WP_REST_Server->respond_to_request()
    #13 /srv/www/wordpress/wp-includes/rest-api.php(519): WP_REST_Server->dispatch()
    #14 /srv/www/wordpress/wp-includes/rest-api.php(2868): rest_do_request()
    #15 [internal function]: rest_preload_api_request()
    #16 /srv/www/wordpress/wp-includes/block-editor.php(601): array_reduce()
    #17 /srv/www/wordpress/wp-admin/edit-form-blocks.php(75):
    block_editor_rest_api_preload()
    #18 /srv/www/wordpress/wp-admin/post.php(187): require('...')
    #19 {main}
      thrown
Viewing 11 replies - 1 through 11 (of 11 total)
  • Plugin Author finalan

    (@finalan)

    Komisch, ich habe heute das aktuellste XAMPP mit PHP8 und MariaDB installiert. Bis auf ein paar “deprecated”-Meldungen (im Debug-Modus) läuft alles bei mir unter Windoof.

    Thread Starter andreasre

    (@andreasre)

    Hallo,
    Mein OS: Linux/Ubuntu 22.04 mit PHP 8.1.2 und MySQL 5.9.3 (alles vom sratch installiert, kein Update von einer vorhandene Ubuntu- oder php-version).
    Windows (Windoof) reagiert halt etwas anders (ist schon immer so gewesen).
    Welche Lösung gibt es für dieses Problem?
    Hat jemand eine Idee?

    Viele Grüße
    Andreas

    Plugin Author finalan

    (@finalan)

    Hmm, PHP8 sollte eigentlich gleich funktionieren, egal auf welchem OS das läuft. Kann es eventuell sein, dass ggf. der Ordner wo die xml-Dateien (plugin-Ordner > ttlive-files) geschrieben werden, nicht die nötigen Rechte hat? Oder das Skript keine Schreibrechte hat? Ich stocher nur rum.

    Plugin Author finalan

    (@finalan)

    Bei mir ist es übrigens PHP 8.1.6

    Thread Starter andreasre

    (@andreasre)

    Hallo Farit,
    Verzeichnisse:
    Installation in /srv/www/wordpress
    dann -> wp-contnent steht auf
    drwxr-xr-x www-data www-data plugin/

    in plugin
    alles auf drwxr-xr-x www-data www-data
    und index.php auf -rw-r–r– www-data www-data
    und ttlive steht mit allen Sub-Dir auf rwxrwxrwx www-data www-data

    dann in ttlive-files haben die Files nach dem anlegen durch TTLive
    -rw-r–r– www-data www-data
    auch nach Ändern auf chmod 777 bleibt der Fehler; egal ob vor oder nach dem Versuch des Bearbeitens/Edit

    Es kann auch nicht sein, dass ich einen Cronjob start um alle x min die Permissions hier zu ändern. Die Permissions wären zu setzen beim erzeugen der Datei.
    m.E. liegt der Fehler NICHT bei den Permissions.

    Viele Grüße
    Andreas

    Thread Starter andreasre

    (@andreasre)

    ein ähnliches Problem wird hier beschrieben mit fwrite()
    https://stackoverflow.com/questions/30783047/php-fwrite-expects-parameter-1-to-be-resource-boolean-given
    hier wird unterschieden in \ oder / (windows oder Linux) im $path
    nur so eine Idee

    Plugin Author finalan

    (@finalan)

    Hi Andreas, kannst Du mir mal ne E-Mail schreiben? Dann schick ich Dir mal “angepasste” Funktion zum testen.

    Thread Starter andreasre

    (@andreasre)

    Hallo Firat,
    zum Abschluss:
    Es hat nicht an den Permissions/Berechtigungen von Linux/Ubuntu gelegen.
    Nach einigen Änderungen und Erweiterungen des Codes hat es dann funktioniert.
    Hier und da gibt es noch so kleinere Probleme, wie der Hallenplan für ein anderes Jahr (wenn die Datei schon existiert) ist nur möglich, wenn die Datei auf Filesystemebene gelöscht wird. Oder ein “=” im Dateinamen wäre zu ersetzen mit z.B. “eq”.
    Vielen Dank für Diene Hilfe
    Und ich hoffe auf ein Update der Software.
    Andreas

    Ich habe das gleiche Problem. Gibt es die angepasste Version irgendwo zum Download?

    Ich habe das jetzt so gefixt.

    In Zeile 111

    if ($myhandle = fopen($params['filename'], "w")){
       if (!fwrite($myhandle, $html)) {
    	print "<br />Kann in die Datei ". $params['filename'] ." nicht schreiben";
    	exit;
    	}
    }
    Thread Starter andreasre

    (@andreasre)

    Hallo theuwe,

    Lösung des Entwicklers:
    if ($html != ”) {
    $myhandle = fopen($params[‘filename’], “w”);
    if ($myhandle === false) {
    print “<br />konnte Datei “.params[‘filename’].” nicht aufmachen”;
    exit;
    {
    if (!fwrite($myhandle, $html)) {
    print “<br />Kann in die Datei “.$params[‘filename’]. “nicht schreiben”;
    exit;
    }
    }
    }

    Viele Grüße
    Andreas

Viewing 11 replies - 1 through 11 (of 11 total)

The topic ‘TTLive-Plugin 0.97&0.98(Beta) – Error fwrite(): Argu’ is closed to new replies.