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
Weiß niemand, wo das Problem liegt?
Die zweite Meldung ist die gleiche Meldung wie hier https://www.mozilo.de/forum/index.php/topic,4382.0.html
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.
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.
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);
}
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
Hallo Hausl,
das wars leider nicht.
Aber 273 ist bei mir genau die Zeile, in der die Funktion microtime aufgerufen wird.
Gruß
Rolf
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?
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
Und schöne Feiertage und alles Gute für 2019 Euch allen!
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.
Ist bei mir Revision 13. Dann muss ich wohl mal aktualisieren.
Wie mache ich das, ohne mein aktuelles Gästebuch zu verlieren?
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
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...