Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

moziloGB: Fehlermeldung nach Umstellung auf php 7.2

Begonnen von rolinux, 21. Oktober 2018, 11:52:30

« vorheriges - nächstes »

rolinux

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
"Vergiss nie, dass die Musik viel zu wichtig ist,
um sie ganz den Profis zu überlassen."
(Robert Fulghum, amerikanischer Philosoph)

"Die Deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du sollst sie nicht verändern oder in veränderter Form veröffentlichen."
(Verfasser unbekannt)

rolinux

"Vergiss nie, dass die Musik viel zu wichtig ist,
um sie ganz den Profis zu überlassen."
(Robert Fulghum, amerikanischer Philosoph)

"Die Deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du sollst sie nicht verändern oder in veränderter Form veröffentlichen."
(Verfasser unbekannt)

marusti

#2
Die zweite Meldung ist die gleiche Meldung wie hier https://www.mozilo.de/forum/index.php/topic,4382.0.html

rolinux

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.
"Vergiss nie, dass die Musik viel zu wichtig ist,
um sie ganz den Profis zu überlassen."
(Robert Fulghum, amerikanischer Philosoph)

"Die Deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du sollst sie nicht verändern oder in veränderter Form veröffentlichen."
(Verfasser unbekannt)

marusti

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.

marusti

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);
    }

hausl78

#6
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

rolinux

Hallo Hausl,

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

Gruß
Rolf
"Vergiss nie, dass die Musik viel zu wichtig ist,
um sie ganz den Profis zu überlassen."
(Robert Fulghum, amerikanischer Philosoph)

"Die Deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du sollst sie nicht verändern oder in veränderter Form veröffentlichen."
(Verfasser unbekannt)

marusti

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?

rolinux

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
"Vergiss nie, dass die Musik viel zu wichtig ist,
um sie ganz den Profis zu überlassen."
(Robert Fulghum, amerikanischer Philosoph)

"Die Deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du sollst sie nicht verändern oder in veränderter Form veröffentlichen."
(Verfasser unbekannt)

rolinux

Und schöne Feiertage und alles Gute für 2019 Euch allen!
"Vergiss nie, dass die Musik viel zu wichtig ist,
um sie ganz den Profis zu überlassen."
(Robert Fulghum, amerikanischer Philosoph)

"Die Deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du sollst sie nicht verändern oder in veränderter Form veröffentlichen."
(Verfasser unbekannt)

marusti

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.

rolinux

Ist bei mir Revision 13. Dann muss ich wohl mal aktualisieren.
Wie mache ich das, ohne mein aktuelles Gästebuch zu verlieren?
"Vergiss nie, dass die Musik viel zu wichtig ist,
um sie ganz den Profis zu überlassen."
(Robert Fulghum, amerikanischer Philosoph)

"Die Deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du sollst sie nicht verändern oder in veränderter Form veröffentlichen."
(Verfasser unbekannt)

marusti

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

Thorstn

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...
www.mad-it.de - Wir lösen keine Probleme. Wir machen sie.
Webdesign aus Bochum