PHP Warning: A non-numeric value encountered

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Faar
Beiträge: 1344
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

PHP Warning: A non-numeric value encountered

Beitrag von Faar » Mo 22. Jan 2018, 15:59

Code: Alles auswählen

 PHP Warning:  A non-numeric value encountered in /contenido/includes/pseudo-cron.inc.php on line 253
Das müllt die Log Datei zu und ich weiß nicht, wo die Funktion parseElements() benützt wird und was für Werte dort drin stehen könnten.
Jedenfalls müssten eines oder mehrere der matches[] etwas anderes als ein Zahl enthalten.
New E_WARNING and E_NOTICE errors have been introduced when invalid strings are coerced using operators expecting numbers or their assignment equivalents. An E_NOTICE is emitted when the string begins with a numeric value but contains trailing non-numeric characters, and an E_WARNING is emitted when the string does not contain a numeric value.
Ab PHP 7.1 wird gewarnt.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Faar
Beiträge: 1344
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

gelöst: PHP Warning: A non-numeric value encountered

Beitrag von Faar » Mo 22. Jan 2018, 16:31

Oha, das Problem hatte ein alter Mann auch schon mal und bereits gelöst. :roll:
viewtopic.php?p=173433#p173433

Demnächst in der 4.9.13
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

rethus
Beiträge: 1820
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: PHP Warning: A non-numeric value encountered

Beitrag von rethus » Mo 22. Jan 2018, 16:40

Der Dateiname und die Zeile stehen in der Fehlermeldung.

Aufgerufen wird die Funktion scheinbar nur durch den Codemirror:
Auswahl_515.jpg
(107.61 KiB) Noch nie heruntergeladen
Wenn du die Ursache gefunden hast, geb bitte mal ein Feedback.
ggf. wäre es dann Sinnvoll in der Funktion:

Code: Alles auswählen

function lTrimZeros($number) {
    while ($number[0] == '0') {
        $number = substr($number, 1);
    }
    return $number;
}
eine Validierung auf den Variablentyp oder ein Typecasting (int) einzubauen.


BTW (@frederic.schneider_4fb): Die Funktion parseElement gehört nach dem DRY-Prinzip überarbeitet (Stichwort "matches[6]")!
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable - Onlineshops, Hosting, Domains und Webentwicklung
suther.de - Webentwicklung, IT-Service, IT-Beratung, Linux-Administration

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Faar
Beiträge: 1344
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: PHP Warning: A non-numeric value encountered

Beitrag von Faar » Mo 22. Jan 2018, 16:44

Feedback: Das Problem ist in der 4.9.13 gelöst, Oldperl hatte es schonmal und somit ist auch der Fall vorerst erledigt:
viewtopic.php?p=173433#p173433

Hier die Issues dazu:
https://issues.contenido.org/browse/CON-2717

Danke :)
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

lunsen_de
Beiträge: 192
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: PHP Warning: A non-numeric value encountered

Beitrag von lunsen_de » Mi 7. Nov 2018, 14:56

Hallo,
ich habe die Fehlermeldung in einer neu installierten Version von Contenido 4.9.12 auf einem Strato Account (Hier läuft PHP 7.1).
Nachdem ich Oldperl Lösung eingebaut habe:
Datei contenido/includes/pseudo-cron.inc.php (Zeile 214 ff) die Funktion lTrimZeros($number) durch folgendes ersetzen:

Code: Alles auswählen

/**
*
* @param int $number
* @return string
*/
function lTrimZeros($number) {
while ($number[0] == '0') {
$number = cString::getPartOfString($number, 1);
}
if(empty($number)) {
$number = 0;
}
return (int) $number;
}
Ist die Seite bei Aufruf im Fronend weiß (ohen Inhalt).

In der Errorlog steht dann:

Code: Alles auswählen

[07-Nov-2018 13:53:37 UTC] PHP Fatal error:  Uncaught Error: Call to undefined method cString::getPartOfString() in /.../htdocs/contenido/includes/pseudo-cron.inc.php:221
Stack trace:
#0 /.../htdocs/contenido/includes/pseudo-cron.inc.php(256): lTrimZeros('0')
#1 /.../htdocs/contenido/includes/pseudo-cron.inc.php(431): parseElement('0', Array, 60)
#2 /.../htdocs/contenido/includes/pseudo-cron.inc.php(175): runJob(Array, '/mnt/web401/d1/...', '/mnt/web401/d1/...', 1, false)
#3 /.../htdocs/contenido/includes/api/functions.api.general.php(109): include_once('/mnt/web401/d1/...')
#4 /.../htdocs/contenido/includes/frontend/include.front_content.php(61): cInclude('includes', 'pseudo-cron.inc...')
#5 /.../htdocs/cms/front_content.php(61): include('/mnt/web401/d1/...')
#6 {main}
  thrown in /.../htdocs/contenido/includes/pseudo-cron.inc.php on line 221
(Pfade habe ich ersetzt durch ...)
Hat jemand eine Idee?

Gruß lunsen_de

Faar
Beiträge: 1344
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: PHP Warning: A non-numeric value encountered

Beitrag von Faar » Mi 7. Nov 2018, 15:24

lunsen_de hat geschrieben:
Mi 7. Nov 2018, 14:56

Hat jemand eine Idee?
In der Klasse cString gibt es gar keine Methode (Funktion) die "getPartOfString" heißt. Und schon gar keine public static, die sich mit cString::getPartOfString() aufrufen ließe.
https://api.contenido.org/latest/source ... tring.html
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

xmurrix
Beiträge: 2646
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: PHP Warning: A non-numeric value encountered

Beitrag von xmurrix » Mi 7. Nov 2018, 16:22

lunsen_de hat geschrieben:
Mi 7. Nov 2018, 14:56
...ich habe die Fehlermeldung in einer neu installierten Version von Contenido 4.9.12 auf einem Strato Account (Hier läuft PHP 7.1).
Nachdem ich Oldperl Lösung eingebaut habe...
Bei dieser CONTENIDO-Installation wird das CMS wohl nicht korrekt initialisiert, die Funktion getPartOfString() existiert in der Datei class.string.multi.byte.wrapper.php und die wird ziemlich am Anfang geladen.

Du schreibst, dass du die Lösung von Oldperl verwendest. Frag bei ihm mal nach, was er da anders gemacht hat, wir können das hier nicht wissen, was er da alles an den Sourcen ändert oder auch nicht.

Gruß
xmurrix
CONTENIDO downloads: CONTENIDO 4.9.12
CONTENIDO links: Documentation, API documentation

Faar
Beiträge: 1344
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: PHP Warning: A non-numeric value encountered

Beitrag von Faar » Do 8. Nov 2018, 10:59

xmurrix hat geschrieben:
Mi 7. Nov 2018, 16:22
... die Funktion getPartOfString() existiert in der Datei class.string.multi.byte.wrapper.php und die wird ziemlich am Anfang geladen.
In der api Doku von Contenido habe ich diese Classe nicht gefunden. Wie muss ich da suchen? :|
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

xmurrix
Beiträge: 2646
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: PHP Warning: A non-numeric value encountered

Beitrag von xmurrix » Do 8. Nov 2018, 11:06

Faar hat geschrieben:
Do 8. Nov 2018, 10:59
...In der api Doku von Contenido habe ich diese Classe nicht gefunden. Wie muss ich da suchen?...
Die Klasse cString erbt von cStringMultiByteWrapper und diese Klasse ist vermutlich erst ab 4.9.12 hinzugekommen. Die Api-Doku ist die von 4.9.11.

Nachtrag:
Die Klasse cStringMultiByteWrapper ist noch nicht in einer offiziellen Lieferung vorhanden, sie ist in der CONTENIDO develop-Branch
https://git.contenido.org/projects/CON/ ... ido/browse
CONTENIDO downloads: CONTENIDO 4.9.12
CONTENIDO links: Documentation, API documentation

Faar
Beiträge: 1344
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: PHP Warning: A non-numeric value encountered

Beitrag von Faar » Do 8. Nov 2018, 11:12

Hier im Developer scheint die Klasse zu sein: https://git.contenido.org/projects/CON/ ... rapper.php

Aber hier im Master finde ich sie nicht:
https://git.contenido.org/projects/CON/ ... s%2Fmaster
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 3988
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: PHP Warning: A non-numeric value encountered

Beitrag von Oldperl » Do 8. Nov 2018, 11:12

xmurrix hat geschrieben:
Mi 7. Nov 2018, 16:22
Du schreibst, dass du die Lösung von Oldperl verwendest. Frag bei ihm mal nach, was er da anders gemacht hat, wir können das hier nicht wissen, was er da alles an den Sourcen ändert oder auch nicht.
Solltet ihr aber, zumal es um Änderungen die 4.9.13 betreffend geht :arrow: viewtopic.php?p=173433#p173433
Wobei diese dann auch nur in der dort angegeben Vorabversion funktionieren.
Faar hat geschrieben:
Do 8. Nov 2018, 10:59
In der api Doku von Contenido habe ich diese Classe nicht gefunden. Wie muss ich da suchen? :|
1. Ist diese Funktion noch nicht in einer 4.9.11, und eine neuer API-Dok gibt es nicht, und 2. bezieht sich diese Änderung auf die von Frederic herausgegebene Vorabversion der 4.9.13 und wurde von mir auch im entsprechenden Thread gepostet (siehe oben).

Gruß aus Franken

Ortwin
*NEU* PHP 7.x Community Draft von CONTENIDO 4.9 auf github
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

xmurrix
Beiträge: 2646
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: PHP Warning: A non-numeric value encountered

Beitrag von xmurrix » Do 8. Nov 2018, 11:20

Faar hat geschrieben:
Do 8. Nov 2018, 11:12
Hier im Developer scheint die Klasse zu sein: https://git.contenido.org/projects/CON/ ... rapper.php

Aber hier im Master finde ich sie nicht:
https://git.contenido.org/projects/CON/ ... s%2Fmaster
Die Klasse ist in der CONTENIDO develop-Branch
https://git.contenido.org/projects/CON/ ... ido/browse
also noch nicht in einer offizieller Version draußen.
CONTENIDO downloads: CONTENIDO 4.9.12
CONTENIDO links: Documentation, API documentation

Antworten