Bonjour
Avertissement: ceci, juste pour aider et ou comprendre.
A ce jour je cherche à me débarrasser de petit bug actuellement non bloquant.
Après analyse, je me suis attaquer à un warning récurent chez moi, mais non bloquant dans le log http.error lié surtout apriori à la version de PHP 8.2:
0138|[Sat Jan 17 09:07:36.789582 2026] [php:warn] [pid 620590:tid 620590] [client 192.168.1.14:51610] PHP Warning: Undefined array key 1 in /var/www/html/core/class/cmd.class.php on line 1678
0139|[Sat Jan 17 09:07:36.789674 2026] [php:warn] [pid 620590:tid 620590] [client 192.168.1.14:51610] PHP Warning: Undefined array key 1 in /var/www/html/core/class/cmd.class.php on line 1682
Explication:
J’ai repéré la page qui envoyait le warning, puis repéré avec l’aide d’un ancien développeur de jeedom qui habite à coté (aujourd’hui anonyme mais qui continue discrètement) qui m’a aidé à chercher et à comprendre, donc après j’ai repérer ma tuile qui à priori déclenchait ce warning (pas compliqué j’avais qu’une tuile sur cette page (bonheur)
.
Cette commande est liée à une de liste de choix sous le format et ce depuis 3ans: Aucuns;Pelouse;Potager;Robinet ext;Haie;Terrasse
Aujourd’hui étant sous débian 12 php8.2 et jeedom 4.5, la version PHP passait sous
silence le warning, mais maintenant non: et une question m’a brulé les lèvres, pourquoi? ![]()
Ma réflexion perso; si cela était le cas, avec la version 8.2 doit signifier, alerte à la prochaine version si pas de correctif au fichier PHP je bloquerai le système. (bon j’exagère surement).
- Donc je revois la syntaxe de cette liste je m’aperçois qu’il faut faire : Aucuns|Aucuns;Pelouse|Pelouse;Potager|Potager;Robinet ext|Robinet ext;Haie|Haie;Terrasse|Terrasse
Bon cela ne change rien, toujours le même warning, bon je vais dans le
fichier php.
- Donc je prend une partie du code qui entoure les lignes warning concerner du fichier et je l’envoi à IA
if (is_object($cmdValue) && $cmdValue->getType() == 'info') {
if ($cmdValue->execCmd() == $coupleArray[0] || $cmdValue->execCmd() == $coupleArray[1]) {
$listOption .= '<option value="' . $coupleArray[0] . '" selected>' . $coupleArray[1] . '</option>';
$foundSelect = true;
} else {
$listOption .= '<option value="' . $coupleArray[0] . '">' . $coupleArray[1] . '</option>';
}
} else {
if (isset($coupleArray[1])) {
$listOption .= '<option value="' . $coupleArray[0] . '">' . $coupleArray[1] . '</option>';
} else {
$listOption .= '<option value="' . $coupleArray[0] . '">' . $coupleArray[0] . '</option>';
}
}
et me répond, corrige avec ceci. (remplace les lignes de 1678 à 1689)
if (is_object($cmdValue) && $cmdValue->getType() == 'info') {
if (
$cmdValue->execCmd() == $coupleArray[0]
|| (isset($coupleArray[1]) && $cmdValue->execCmd() == $coupleArray[1])
) {
$listOption .= '<option value="' . $coupleArray[0] . '" selected>' . $coupleArray[1] . '</option>';
$foundSelect = true;
} else {
$listOption .= '<option value="' . $coupleArray[0] . '">' . (isset($coupleArray[1]) ? $coupleArray[1] : $coupleArray[0]) . '</option>';
}
} else {
$listOption .= '<option value="' . $coupleArray[0] . '">' . (isset($coupleArray[1]) ? $coupleArray[1] : $coupleArray[0]) . '</option>';
}
et à ce jour, plus de warning pour ce type (liste de choix).
J’espère apporter ma p’tit contribution sous forme de pertinence au développeurs.
Et là c’est mon premier message de cette nature, je vais m’attaquer au plugin CloudSync qui ne comprend pas les cases vides ou nul (toujours lié à version PHP8.2)
Merci de m’avoir lu et vous souhait un Bon weekend
Aujourd’hui il pleut donc je vais continuer.
N’hésiter pas à confirmer ou affirmer ou autres