Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
11 Dec 2008, 21:59
Message
#1
|
|
|
Ceinture verte OSC Groupe : Membres Messages : 576 Inscrit : 11-August 04 Membre no 3034 |
Suite à la demande de Corbin, voici un résumé de la méthodologie que j'ai appliquée pour migrer un script php en respectant les nouvelles règles de php5 et ne pas être pris au dépourvu avec php6.
Je ne parlerai ici que des directives de configuration register_global et register_long_array. php5 est un état de transition, php6 ne permettra pas de choisir ce que l'on veut à ce niveau. Je ne vais pas m'étendre sur l'intérêt de passer à register_global sur off et register_long_array sur off, la littérature en parle suffisamment. Sachez seulement que php6 obligera ces valeurs sur off. Rendre osc compatible register_long_array est très simple, on remplace automatiquement les $HTTP_*_VARS par $_*. Ex: $HTTP_POST_VARS devient $_POST. Par contre devenir register_global off compatible est bien plus complexe. Ce post ne va pas expliquer les détails, c'est parfois lourd, notamment sur les sessions. L'idée est ne pas remettre en place la faille de sécurité que register_global sur off supprime en faisant quelque chose du genre : Code <?php while (list($key, $val) = each($_GET)) {$$key=$val;} ?> La caractéristique du passage a register_global sur off est grosso-modo que cela ne plante pas (on ne voit pas de message d'erreur), mais le script ne marche pas. Donc pas d'erreur, à part des notice qui alertent (d'où l'étape 1). Le problème vient qu'il faut trouver dans le code des variables php type $mavariable et la remplacer par $_GET['mavariable']. C'est souvent facile car en lisant le code, ces variables étant issues d'un formulaire, elles sont filtrées par sécurité. Mais on a parfois des surprises (avec des contribs que l'on a insuffisamment épluchées) 1) Je loggue toutes les erreurs, et y compris les Notice et les corrige. C'est assez pénible, car les notice il y en a, surtout avec les contributions. Mais bon, on obtient un code plus propre, plus "pro". C'est à mon sens l'étape la plus longue, mais on gagne du temps après. Pour logger les erreurs, soit on fait un trigger spécifique (voir doc php), soit via une directive dans le htacess. Cette dernière à l'avantage de logger les erreurs fatales également. Attention à ne pas faire ça sur un site en prod au début car les logs peuvent exploser. Une fois tout débugger, passer en prod permettra de logger des erreurs oubliées. 2) Je passe en revue les problèmes évidents dans le code et quelques tests. C'est long, mais on évite les grosses erreurs. Il suffit généralement de s'attarder sur le début des fichiers traitant des formulaires. 3) Je passe en register_global sur off, et je fais une sorte de béta publique en loggant les erreurs (et les notice). 4) Je corrige les notice. On détectera un problème avec register_global en voyant une variable appelée sans être créer. 5) Je passe en prod Les erreurs à ne pas faire : sous-estimer le temps. C'est très long, cela explique pourquoi les solutions permettant d'activer register_global ou de le simuler fleurissent. Les hébergeurs proposent très souvent une configuration alternative. Si vous lisez ce post, je pense qu'il est inutile de dire de faire une sauvegarde, mais peut-être que dire qu'un gestionnaire de version, même s'il faut une paire d'heure pour le mettre en place, vous fera gagner un temps fou serait une bonne idée Pourquoi faire tout ça ? Pour moi :
Voilà, en espérant que cela sera utile, n'hésitez pas à corriger si besoin, commenter, développer -------------------- Raccourcisseur d'url foe.hn (se dit fun !)
|
|
|
13 Aug 2009, 21:06
Message
#2
|
|
![]() Ceinture orange OSC Groupe : Membres Messages : 247 Inscrit : 11-November 06 Lieu : Lille Membre no 13197 |
Bravo et merci ! voilà ce que je cherchais.
Par contre je bloque au point 1 : comment faire "Pour logger les erreurs, soit on fait un trigger spécifique (voir doc php), soit via une directive dans le htacess. Cette dernière à l'avantage de logger les erreurs fatales également." Je ne suis pas parvenu à trouver -------------------- Allons sagement et doucement : trébuche qui court vite
|
|
|
14 Aug 2009, 06:56
Message
#3
|
|
|
Ceinture verte OSC Groupe : Membres Messages : 576 Inscrit : 11-August 04 Membre no 3034 |
http://www.google.fr/#hl=fr&q=trigger+...8560435f438fb24
http://www.google.fr/#hl=fr&q=log+erre...8560435f438fb24 Premiers liens à chaque fois. -------------------- Raccourcisseur d'url foe.hn (se dit fun !)
|
|
|
14 Aug 2009, 07:02
Message
#4
|
|
![]() Ceinture orange OSC Groupe : Membres Messages : 247 Inscrit : 11-November 06 Lieu : Lille Membre no 13197 |
J'avais pourtant cherché...
Mais pas sur les bons termes Merci -------------------- Allons sagement et doucement : trébuche qui court vite
|
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 25th May 2013 - 18:33 |
| Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |