Sylvain SF a écrit :
alainL a écrit :
J'ai installé un script qui fonctionne sur le site distant mais
produit des erreurs en local. Voici la première, je pense que
les autres sont la conséquence de celle-ci... :
Notice: Undefined variable: start in e:\easyphp1-7\www\essais\alcay\index.php on line 89
function affichimgs(...){ if (isset($_REQUEST['start'])){
$start = $_REQUEST['start'];
}
if(is_null($start)){ ## <----- ligne 89
$start = 0;
}
Comment configurer mon EasyPHP ou que modifier dans le script pour pouvoir bricoler sans avoir recours au site distant ?
le serveur distant est mal configuré et permissif,
Non. Il est normal que sur un serveur de prod, les notices n'apparaissent pas à l'utilisateur. Par contre il est clair que sur un serveur de dev, au contraire...
votre machine
est plus propre, généralement c'est le contraire.
dans:
if (isset($_REQUEST['start'])){
$start = $_REQUEST['start'];
}
il y a une accolade ouvrante et une fermante, $start est défini
dans ce bloc et donc n'existe plus à la sortie de ce bloc.
Pardon ??? C'est du PHP, pas du C.
un code (plus) correct est simplement:
$start = 0
if (isset($_REQUEST['start']))
$start = $_REQUEST['start'];
Mettre ou enlever les accolades ne change rien au problème - et il est préférable de les mettre systématiquement, pour éviter des erreurs lorsqu'on ajoute une autre instruction dans la branche.
Quant à définir d'abord une valeur par défaut *puis* a essayer de récupérer la vraie valeur, c'est une instruction potientiellement inutile, et ça n'aide pas la lisibilité.
le pb est en parti du à la config. de easyphp,
Si easyphp lui affiche les notices, alors c'est la bonne config pour un poste de dev.
mais surtout
du à un code invalide.
Sauf que tu es passé à côté de ce qui était invalide, à savoir tester une variable non définie.
Sylvain.