Warning: A non-numeric value encountered

Bonjour à tous,

J’ai rencontré un message d’erreur dans la page de gestion des entrepôts : /htdocs/product/stock/list.php

Les message d’erreur est le suivant :

Warning: A non-numeric value encountered in /chemin/vers/mon/fichier/htdocs/product/stock/list.php on line 47

Warning: Cannot modify header information - headers already sent by (output started at /chemin/vers/mon/fichier/htdocs/product/stock/list.php:47) in /chemin/vers/mon/fichier/htdocs/main.inc.php on line 1061

Warning: Cannot modify header information - headers already sent by (output started at /chemin/vers/mon/fichier/htdocs/product/stock/list.php:47) in /chemin/vers/mon/fichier/htdocs/main.inc.php on line 1064

Warning: Cannot modify header information - headers already sent by (output started at /chemin/vers/mon/fichier/htdocs/product/stock/list.php:47) in /chemin/vers/mon/fichier/htdocs/main.inc.php on line 1065

Résolution (provisoire) du problème

Voici le contenu des lignes 40 à 47 du fichier /htdocs/product/stock/list.php

$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
$sortfield = GETPOST("sortfield");
$sortorder = GETPOST("sortorder");
if (! $sortfield) $sortfield="e.ref";
if (! $sortorder) $sortorder="ASC";
$page = GETPOST("page");
if ($page < 0) $page = 0;
$offset = $limit * $page;

J’ai simplement forcé le type de $page à la ligne 45 à travers un cast de String vers Integer

$page = (int)GETPOST("page");

Mais voilà, même si cette solution fonctionne, il est clair que ce n’est qu’une rustine.

Aussi, je m’adresse à vous afin de savoir si vous aviez une idée de la raison du mauvais typage de $page issu de GETPOST(« page ») et si vous aviez, le cas échéant, une solution plus académique pour résoudre ce bug.

J’avais également ce souci j’ai modifié la version de PHP de 7.1 et à 7.0 et tout est rentré dans l’ordre. Le typage doit être strict avec PHP 7.1.

1 « J'aime »