Warning PHP Problem


Sonne389

Grünschnabel
Hallo zusammen,
ich erstelle mir zur Zeit eine Webseite auf Wordpress aber jetzt habe ich folgende Warnings und leider kenne ich mich mit PHP nicht wirklich aus und nach recherchieren habe ich auch keine Lösungen gefunden und hoffe das ihr mir helfen könnt, weil ich nicht mehr weiter weiß :(

Warning: A non-numeric value encountered in /home/www/portrait-art/wp-content/themes/saint/lib/modules/core.layout/functions.layout.php on line 235

$width = $container * ( $main_span / 12 ) - $gutter;


Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/portrait-art/wp-content/plugins/pixproof/features/metaboxes/init.php on line 718


public static function set_object_type( $object_type ) {


Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/portrait-art/wp-includes/class-wp-comment-query.php on line 399

$this->comment_count = count( $this->comments );
 

tklustig

Erfahrenes Mitglied
Meldung 1: PHP erwartet eine Zahl, bekommt aber keine. Überprüfe mit
PHP:
var_dump($width);
die();
welcher Wert geliefert wird
Meldung2: PHP erwartet ein Array, bekommt aber Keines.
Überprüfe mit
PHP:
var_dump($object_type);
die();
welcher Wert geliefert wird
Meldung3: $this->comments ist eine Property der eigenen Klasse, kein Array. So kann das nicht funktionieren! Siehe count();
 

Sonne389

Grünschnabel
Meldung 1: PHP erwartet eine Zahl, bekommt aber keine. Überprüfe mit
PHP:
var_dump($width);
die();
welcher Wert geliefert wird
Meldung2: PHP erwartet ein Array, bekommt aber Keines.
Überprüfe mit
PHP:
var_dump($object_type);
die();
welcher Wert geliefert wird
Meldung3: $this->comments ist eine Property der eigenen Klasse, kein Array. So kann das nicht funktionieren! Siehe count();

o_O Oh je ich blamiere mich jetzt hier bestimmt :rolleyes:
Meinst Du ich soll Meldung 1 und 2 mit den Codes die Du mir gibst ersetzen?
Ich kann Html aber PHP verstehe ich gar nicht *schäm*
Vorher hatte alles so gut funktioniert und auf einmal kam diese Warnmeldung... :rolleyes:
 

tklustig

Erfahrenes Mitglied
WordPress ist ein CMS. Wenn das Warnungen ausgibt, ist das eigentlich nicht weiters tragisch. Errors sind da eine andere Nummer. Der Code von mir hilft Dir nur, den Grund zu erkennen. Beseitigen musst Du die Ursache dann schon selbst. Wenn du willst, dass die Warnungen nicht mehr ausgegeben werden, setzte folgende Codezeile zu Beginn des Scriptes, die die Warnungen erzeugt:
PHP:
error_reporting(E_ALL & ~E_WARNING);
Sollte das nicht funktionieren, kannst Du alternativ folgenden Befehl verwenden:
PHP:
error_reporting(E_ERROR | E_PARSE);
Alternativ kannst Du auch in der php.ini festlegen, welche Fehlermeldungen angezeigt werden sollen, oder ob sie überhaupt angezeigt werden sollen. Nicht vergessen: Nach Editierung der php.ini den Webserver neu starten! Vorher ein Backup der php.ini anlegen, sicher ist sicher!
P.S.: In der php.ini müssten folgene Einträge zu finden sein:
Code:
error_reporting  =  YourErrorLevel
display_errors = On
log_errors = On
error_log = YourPath\error.log

Wenn du aus
Code:
display_errors = On
ein
Code:
display_errors = Off
machst, unterdrückst Du die Ausgabe von Fehlern für alle Webseiten des Servers! Für WordPress ist das vertretbar, für die Programmierung ist das tödlich!
 
Zuletzt bearbeitet:

Sonne389

Grünschnabel
WordPress ist ein CMS. Wenn das Warnungen ausgibt, ist das eigentlich nicht weiters tragisch. Errors sind da eine andere Nummer. Der Code von mir hilft Dir nur, den Grund zu erkennen. Beseitigen musst Du die Ursache dann schon selbst. Wenn du willst, dass die Warnungen nicht mehr ausgegeben werden, setzte folgende Codezeile zu Beginn des Scriptes, die die Warnungen erzeugt:
PHP:
error_reporting(E_ALL & ~E_WARNING);
Sollte das nicht funktionieren, kannst Du alternativ folgenden Befehl verwenden:
PHP:
error_reporting(E_ERROR | E_PARSE);
Alternativ kannst Du auch in der php.ini festlegen, welche Fehlermeldungen angezeigt werden sollen, oder ob sie überhaupt angezeigt werden sollen. Nicht vergessen: Nach Editierung der php.ini den Webserver neu starten! Vorher ein Backup der php.ini anlegen, sicher ist sicher!
P.S.: In der php.ini müssten folgene Einträge zu finden sein:
Code:
error_reporting  =  YourErrorLevel
display_errors = On
log_errors = On
error_log = YourPath\error.log

Wenn du aus
Code:
display_errors = On
ein
Code:
display_errors = Off
machst, unterdrückst Du die Ausgabe von Fehlern für alle Webseiten des Servers! Für WordPress ist das vertretbar, für die Programmierung ist das tödlich!

:love: Bin Dir so unendlich Dankbar (y) Fehlermeldung ist weg.
 

tklustig

Erfahrenes Mitglied
Dann markiere eine meiner Antworten bitte auf "Als Lösung markieren" und, wenn Du willst auf "Gefällt mir".
Danke!
P.S.: Was genau hat den Fehler beseitigt: Die Editierung der php.ini oder die Codezeilen? Mich wundert es sowieso, dass die Klasse class-wp-comment-query.php u.a diese Warnungen erzeugen. Eigentlich müssten das Fehler sein. Und außerdem darf WordPress weder Fehler noch Warnungen erzeugen! Woher hast du den Quellcode dieser Klasse? Kannst Du mir Deine WordPress Version zukommen lassen? Irgendetwas kann damit nicht stimmen! Ich würde damit keine WebSites erstellen!
 
Zuletzt bearbeitet:

ComFreek

Mod | @comfreek
Moderator
:love: Bin Dir so unendlich Dankbar (y) Fehlermeldung ist weg.
Würdest du dir bei einem gebrochenen Bein auch Schmerzmittel reinjagen, ohne das Bein richten zu lassen? :)

Genauso hast du hier die Warnungen unterbunden, ohne irgendetwas an der Ursache zu ändern oder gar zukünftige Probleme aus dem Weg zu räumen.

(Das ändert aber nichts daran, dass man auf Production Servern Warnungen oder Fehler generell nicht nach außen darstellen sollte, also display_errors = Off - genau wie tklustig es geschrieben hat.)

Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/portrait-art/wp-content/plugins/pixproof/features/metaboxes/init.php on line 718
Anscheinend löst das pixproof Plugin das Problem aus. Hast du die Autoren des Plugins mal kontaktiert?
 

tklustig

Erfahrenes Mitglied
Wenn all die Warnungen auf dem Widget pixproof basieren, dann gebe ich ComFreek völlig Recht. Ändere die php.ini auf folgende Values:
Code:
error_reporting  =  E_ALL
display_errors = Off
log_errors = On
error_log = YourPath\error.log
...und kontaktiere die Autoren des Widgets. Bis die den Bug nicht behoben haben, würde ich das Widget nicht verwenden! Ich will meinen, es ist Deine unbedingte Pflicht, das zu tun. CMS Systeme wie WordPress sind OpenSource und damit zwingend darauf angewiesen, dass derartige Fehler gemeldet werden! Nur dann können sie auch behoben werden!
Daß da etwas nicht stimmt, kriegst du so nur noch mit, wenn du Dir die error.log ankuckst! Sollte WordPress noch nicht online sein, setze display_errors auf On.
Merkregel: Im Produktionsmodus: display_errors=Off / Im Entwicklungsmodus: display_errors=On und
error_reporting = E_ALL
 
Zuletzt bearbeitet:

basti1012

Erfahrenes Mitglied
mir kommt das so vor als wenn das Plugin älter ist und nicht mit php 7 klar kommt.
Solche Fehler Meldungen hatte ich mal in so ein Fall gehabt ( aber nicht WP ).

Warum sollte sonst das Plugin nicht mehr laufen, wäre ja doof wenn der Ersteller ein Plugin raus gibt mit solchen Meldungen.

Aber das ist nur mein Verdacht. Kann auch vollkommen falsch liegen.
Einen schönen Sonntag noch an alle.

Vettel PLATZ 2 ,JUHU(y):)
 

Neue Beiträge