moziloCMS Supportforum

moziloCMS => Plugins => Thema gestartet von: rolinux am 21. Oktober 2018, 11:52:30

Titel: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: rolinux am 21. Oktober 2018, 11:52:30
Hallo,

nach der Umstellung meiner Homepage auf php 7.2 werden im moziloGB diese Fehlermeldungen ausgegeben:
Warning: A non-numeric value encountered in /data/web/1/000/016/977/21550/htdocs/rolf/plugins/moziloGB/index.php on line 273 (diese Meldung kommt mehrfach)

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; ShowEntries has a deprecated constructor in /data/web/1/000/016/977/21550/htdocs/rolf/plugins/moziloGB/ShowEntries.php on line 5 (diese Meldung kommt nur einmal)

Homepage: www.rolf-langmann.de
mozilo-Version: 2.0 ("Amalia") Revision 51

Gruß
Rolf
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: rolinux am 19. November 2018, 09:11:21
Weiß niemand, wo das Problem liegt?
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: marusti am 19. November 2018, 12:42:31
Die zweite Meldung ist die gleiche Meldung wie hier https://www.mozilo.de/forum/index.php/topic,4382.0.html
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: rolinux am 28. November 2018, 11:56:03
Die zweite Fehlermeldung kommt jetzt nicht mehr. Warum auch immer. TermContent (Dein Link) wird ja da gar nicht verwendet.
Aber die andere Meldung mit Zeile 273 kommt immer noch.
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: marusti am 28. November 2018, 12:07:15
Zitat von: rolinux am 28. November 2018, 11:56:03
TermContent (Dein Link) wird ja da gar nicht verwendet.
Ich meinte nur das die Fehlermeldung die Gleiche war wie in dem anderen Fall. Wenn sie nicht mehr erscheint noch besser.
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: marusti am 29. November 2018, 21:38:20
Zitat von: rolinux am 21. Oktober 2018, 11:52:30
Warning: A non-numeric value encountered in /data/web/1/000/016/977/21550/htdocs/rolf/plugins/moziloGB/index.php on line 273
Habe es bei mir lokal getestet und die Warnung für Zeile 279 erhalten. Welche Zeile ist bei dir 273?
Konnte es bei mir folgendermaßen lösen:
zwischen function help_makeRandomStr($i) { (bei mir Zeile 277) und $xyz = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; (bei mir Zeile 278) folgendes einfügen $i = 0;

Gesamte Funktion sieht daher bei mir jetzt so aus
function help_makeRandomStr($i) {
    $i = 0;
        $xyz = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $tmp = md5(microtime()+$i);
        $tmp = str_split($tmp);
        shuffle($tmp);
        return $xyz[(rand(0,(strlen($xyz) - 1)))].implode("",$tmp);
    }
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: hausl78 am 30. November 2018, 09:30:37
Das Problem ist das mircotime() einen String zurückgibt.


function help_makeRandomStr($i) {
    $i = 0;
        $xyz = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $tmp = md5(microtime()+$i);
        $tmp = str_split($tmp);
        shuffle($tmp);
        return $xyz[(rand(0,(strlen($xyz) - 1)))].implode("",$tmp);
}

echo help_makeRandomStr(5);


/*
Notice:  A non well formed numeric value encountered in ... on line 6
L880b6885578608bbf37f75ca9036d44a
*/


Somit könnte das so die Lösung sein microtime() ein true mit anzugeben.

function help_makeRandomStr($i) {
        $xyz = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $tmp = md5(microtime(true)+$i);
        $tmp = str_split($tmp);
        shuffle($tmp);
        return $xyz[(rand(0,(strlen($xyz) - 1)))].implode("",$tmp);
}
echo help_makeRandomStr(0); // keine Notivce mehr
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: rolinux am 15. Dezember 2018, 11:20:11
Hallo Hausl,

das wars leider nicht.
Aber 273 ist bei mir genau die Zeile, in der die Funktion microtime aufgerufen wird.

Gruß
Rolf
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: marusti am 17. Dezember 2018, 22:05:11
Hatte das eben nochmal angeschaut. Meine vorherige Lösung hat jetzt bei mir auch nicht mehr funktioniert. Habe aber etwas Neues gefunden und beim ersten Test funktioniert es bei mir auch

function help_makeRandomStr($i) {
        $xyz = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $tmp = md5(microtime() . $i);
        $tmp = str_split($tmp);
        shuffle($tmp);
        return $xyz[(rand(0,(strlen($xyz) - 1)))].implode("",$tmp);
    }


Kann das vielleicht mal jemand Testen?
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: rolinux am 23. Dezember 2018, 16:09:20
Zitat von: marusti am 17. Dezember 2018, 22:05:11
Hatte das eben nochmal angeschaut. Meine vorherige Lösung hat jetzt bei mir auch nicht mehr funktioniert. Habe aber etwas Neues gefunden und beim ersten Test funktioniert es bei mir auch

function help_makeRandomStr($i) {
        $xyz = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $tmp = md5(microtime() . $i);
        $tmp = str_split($tmp);
        shuffle($tmp);
        return $xyz[(rand(0,(strlen($xyz) - 1)))].implode("",$tmp);
    }


Kann das vielleicht mal jemand Testen?

Wenn ich das richtig gesehen habe, ist nur die Zeile mit dem 5 anders. Die habe ich ausgetauscht und bekomme jetzt eine andere Fehlermeldung im Gästebuch:
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; ShowEntries has a deprecated constructor in /data/web/1/000/016/977/21550/htdocs/rolf/plugins/moziloGB/ShowEntries.php on line 5

Da ich nicht weiß, welche Meldung schlechter ist, mache ich die Änderung mal wieder rückgängig.

Gruß
Rolf
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: rolinux am 23. Dezember 2018, 16:16:00
Und schöne Feiertage und alles Gute für 2019 Euch allen!
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: marusti am 17. Januar 2019, 21:09:04
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; ShowEntries has a deprecated constructor in /data/web/1/000/016/977/21550/htdocs/rolf/plugins/moziloGB/ShowEntries.php on line 5
Die Meldung wird aber aktuell auch schon angezeigt bei dir, sprich ohne den vorgeschlagenen Lösungsvorschlag. Welche Version des GB hast du installiert, 22? Meldung tritt bei mir weiterhin nicht auf. Falls es 22 ist: Versuch mal in der ShowEntries.php in Zeile 28 function __construct auf public function __construct ändern ob das einen Einfluss hat.

Zitat von: marusti am 17. Dezember 2018, 22:05:11

function help_makeRandomStr($i) {
        $xyz = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $tmp = md5(microtime() . $i);
        $tmp = str_split($tmp);
        shuffle($tmp);
        return $xyz[(rand(0,(strlen($xyz) - 1)))].implode("",$tmp);
    }

Das funktioniert bei mir als Fix für die anderen Meldungen.
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: rolinux am 22. Januar 2019, 15:18:38
Ist bei mir Revision 13. Dann muss ich wohl mal aktualisieren.
Wie mache ich das, ohne mein aktuelles Gästebuch zu verlieren?
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: marusti am 24. Januar 2019, 16:28:27
Als erstes: Backup des Plugin Ordners anlegen.
Die Daten sind im Ordner data/name-deines-gb_db.php ('name-deines-gb' ist natürlich der Name deiner Datenbank). Die müsstest du nach der Aktualisierung wieder per FTP einspielen.

PS: Falls alle Lösungsvorschläge hier wieder erwartend nicht funktionieren: Der Autor des Plugins hatte seinerzeit eine PHP 7 Version bereit gestellt, hatte nur niemand nach geschaut :) https://github.com/stefanbe/moziloGB
Titel: Re: moziloGB: Fehlermeldung nach Umstellung auf php 7.2
Beitrag von: Thorstn am 24. Januar 2019, 17:14:40
Die Version des Gästebuch-Plugins auf der /media Seite ist seit Monaten "up to date", ich hatte die Plugins alle von Github geladen, sofern das möglich war.

Die Fehlermeldung bleibt ohne Eingriff aber bestehen (mozilo Rev. 51, PHP 7.2.12, Gästebuch Rev. 22). Durch den Vorschlag von Marusti konnte ich die Fehlermeldung entfernen.

Also in Zeile 279 folgendes:
$tmp = md5(microtime()+$i);

austauschen durch:
$tmp = md5(microtime() . $i);

Wenn das für die PHP-Profis unter Euch in Ordnung ist, ändere ich das im Gästebuch-Plugin (ZIP) auf der /media Seite für alle weiteren Downloads...