Bonsoir bonsoir,
J'ai upgradé à la force du poignet (et du rtfm) php sur mon serveur perso, pour passer en 4.3.4.
J'ai un peu galéré en route avec le php.ini version "optimisée", et en particulier sur la fin : un certain nombre de pages générées par bdgweb me balançaient des floppées d'erreurs alors que mes autres sites plein de php et même mon forum phpbb tournaient impec'...
Après 2 heures de bricolage (oui c long quand on veut faire le malin mais qu'on n'est pas doué...
) j'ai compris le problème.
Auparavant j'avais la variable error_reporting comme suit :
error_reporting = E_ALL & ~E_NOTICE
... c'est-à-dire qu'on ne log pas les "notice", juste les méga erreurs.
Et désormais par défaut la version optimisée du php.ini ets livrée configurée comme suit :
error_reporting = E_ALL
...c'est-à-dire un report pour toutes les erreurs, même les ptits "notice" en général pas bien graves.
Sauf qu'avec :
display_errors = On
(= log des erreurs php directement dans les pages affichées), ben ya une volée de "notice" qui vient taper l'incrust dans les pages php, foutant tout en l'air au passage.
Et c'est quoi ces notice me demanderas-tu ? (ouaip il est tard, j'anticipe un peu les questions, quitte à anéantir un peu le suspens...) Ben c'est juste un certain nombre de variables que tu testes dans les pages, et qui sous certaines conditions n'ont pas été déclarées avant. Et là php balance un superbe "notice" au milieu du code de la page pour dire que la variable sort de nulle part... :grrr:
Ca le fait par exemple sur la première page du site, à l'ouverture de _accueil.php : $w_current et $i que tu glisses dans un test dans les dernières lignes de la page n'ont pas été déclarées avant quand on arrive de but en blanc sur cette page, et là ça gueule.
Ok ok, c'est pas vraiment un bug, c'est très bien contournable en configurant son php.ini (soit avec error_reporting = E_ALL & ~E_NOTICE pour ne pas logger les notices, soit display_errors = Off pour qu'il les balance pas dans les pages, soit les deux !
), mais je pense que quelques petites déclarations à droite à gauche rendraient le code plus propre (ok, on s'en fout de cet argument, on veut juste que ça marche
), ça éviterait 2 heures de galères aux mauvais dans mon genre (tout le monde est chez Free donc ça n'intéresse QUE moi ??
), mais surtout corriger un notice c'est un peu le truc qui permettra peut-être de pas se retrouver face à un problème plus lourd et pas évident à débugger à l'avenir, donc là c'est ptet vraiment utile pour éviter une future galère...
Euh sinon j'aime toujours autant BDGweb moi, et je t'encourage de toutes mes ptites forces de padawan du php à poursuivre tes développements !! (un ptit coup de polish pour la route, ça fait de mal à personne !
)
EDIT : heu bien sûr si tu veux un exemple, des screenshots, que je te fasse tourner un php.ini avec les anciens paramètres, n'importe quoi d'autre pour aider, je suis super volontaire, ya qu'à demander.