OVH Cloud OVH Cloud

PHP 4 a PHP 5

12 réponses
Avatar
Stefan
Bonjour à tous
Mon hébergeur ( Claranet ) migre sur une nouvelle plateforme avec PHP 5. Un
espace est en test.
Mais voilà, la plupart sinon de mes scripts ne fonctionnent plus :-(
Problème chez l'hébergeur ( encore en test ) ou de la migration php4 à php 5
?
Il me semblait qu'en principe dans ce sens il ne devrait pas y avoir de
problèmes ?

--

10 réponses

1 2
Avatar
Olivier Miakinen

Mon hébergeur ( Claranet ) migre sur une nouvelle plateforme avec PHP 5. Un
espace est en test.
Mais voilà, la plupart sinon de mes scripts ne fonctionnent plus :-(
Problème chez l'hébergeur ( encore en test ) ou de la migration php4 à php 5
?


La première chose à faire est de comparer le résultat du phpinfo() entre
php4 et php5 : register_globals par exemple. Tu le fais et tu nous dis
quelles différences il y a ?

Il me semblait qu'en principe dans ce sens il ne devrait pas y avoir de
problèmes ?


Il peut même y avoir des différences entre deux php4, selon la config.

--

Avatar
marc.quinton-PAS-DE-
Stefan wrote:
Bonjour à tous
Mon hébergeur ( Claranet ) migre sur une nouvelle plateforme avec PHP 5
...
Il me semblait qu'en principe dans ce sens il ne devrait pas y avoir de
problèmes ?



quelles genres d'erreur ?

sur les grands principe tout fonctionne ...

quel style de programmation utilises-tu ?
- POO, procédural ?
- avec des variables globales ?

--

Avatar
Stefan
a écrit dans le message
de news: claa50$lt1$
Stefan wrote:
Bonjour à tous
Mon hébergeur ( Claranet ) migre sur une nouvelle plateforme avec PHP 5
...
Il me semblait qu'en principe dans ce sens il ne devrait pas y avoir de
problèmes ?



quelles genres d'erreur ?

sur les grands principe tout fonctionne ...

quel style de programmation utilises-tu ?
- POO, procédural ?
- avec des variables globales ?



Il n'y a pas de messages d'erreurs. Les pages de n'affichent pas ou
certaines parties du script ne fonctionnent plus.
Les scripts sont des scripts divers qui ne sont pas de moi ( je n'en suis
pas capable ) à part un seul. ( Et le pire, c'est que celui là n'a pas de
problèmes ou presque )

Par contre, j'ai un script d'info avec l'extention phpb. Il fonctionne avec
php4 mais plus avec php5. A l'époque cette extention avait était mise afin
d'éviter les problèmes avec les accents et les ' / ... C'est le support de
Claranet qui m'avait dit de rajouter phpb à la place de php3

--


Avatar
Olivier Miakinen

Il n'y a pas de messages d'erreurs.


Il n'y a pas de message parce qu'il n'y a pas d'erreur, ou il n'y a pas
de message parce que le script n'est pas configuré pour les afficher ?

S'il n'y est pas déjà, essaye de rajouter ça au début de chacun des
scripts :

<?php
error_reporting(E_ALL);
?>

--

Avatar
Stefan
"Olivier Miakinen" <om+ a écrit dans le message de news:
claa0d$4hi$


La première chose à faire est de comparer le résultat du phpinfo() entre
php4 et php5 : register_globals par exemple. Tu le fais et tu nous dis
quelles différences il y a ?


Voilà !! Repiqué sur Claranet.fr.support. (ça va plus vite ) Il n'y a pas
que moi qui se pose des questions.

Directive PHP4 PHP5
------------ --------- ---
------
allow_call_time_pass_reference ON OFF
default_charset no value iso-8859-1
display_errors OFF ON
Annoncé
error_reporting 2039 2047
expose_php ON OFF
extension_dir ./
/usr/local/lib/php/20040412
log_errors OFF ON
precision 12 14
register_argc_argv ON OFF
register_globals ON OFF
sendmail_from no
value
upload_max_filesize 8M 2M
variables_order EGPCS GPCS

--

Avatar
Olivier Miakinen

La première chose à faire est de comparer le résultat du phpinfo() entre
php4 et php5 : register_globals par exemple. Tu le fais et tu nous dis
quelles différences il y a ?


Voilà !! Repiqué sur Claranet.fr.support. (ça va plus vite ) Il n'y a pas
que moi qui se pose des questions.


Voilà une différence concernant les erreurs :
display_errors OFF ON


En voilà une autre :
error_reporting 2039 2047


Ceci me conforte dans l'idée que les erreurs existaient déjà dans le
code PHP4, mais qu'elles étaient masquées.


Une solution rapide et sale consisterait à baisser le niveau des erreurs
dans tes scripts en PHP5 pour que cela passe. Par exemple tu peux
essayer ceci pour avoir le même niveau que celui signalé dans le
phpinfo() du PHP4 :

<?php
error_reporting(2039);
?>


La solution propre consiste au contraire à vérifier que tu obtiens les
mêmes erreurs en PHP 4 si tu mets le niveau maximum pour error_reporting
puis à corriger lesdites erreurs.

--


Avatar
Stefan
"Olivier Miakinen" <om+ a écrit dans le message de news:
clc39m$gf7$
Une solution rapide et sale consisterait à baisser le niveau des erreurs
dans tes scripts en PHP5 pour que cela passe. Par exemple tu peux
essayer ceci pour avoir le même niveau que celui signalé dans le
phpinfo() du PHP4 :

<?php
error_reporting(2039);
?>


La solution propre consiste au contraire à vérifier que tu obtiens les
mêmes erreurs en PHP 4 si tu mets le niveau maximum pour error_reporting
puis à corriger lesdites erreurs.

Merci, je vais faire des essais.

Pour mes extentions en .phpb, il n'y a pas de soluces ? Là, c'est le script
qui s'affiche directement sur la page. Avec php4 pas de problèmes, le script
fonctionnait et avec php5, plus rien ;-(

--

Avatar
Olivier Miakinen

Pour mes extentions en .phpb, il n'y a pas de soluces ? Là, c'est le script
qui s'affiche directement sur la page. Avec php4 pas de problèmes, le script
fonctionnait et avec php5, plus rien ;-(


Il faudrait savoir quel traitement particulier Claranet faisait pour les
accents dans ce genre de script. À mon avis, tu devrais le renommer
.php pour qu'il soit interprété par le moteur PHP, puis résoudre les
problèmes d'accents s'il y en a.

--

Avatar
Michel BONZI
Bonjour,
Il y a quelques pièges dans le php.ini en PHP5, voici ce que je peut en
dire :

Voilà !! Repiqué sur Claranet.fr.support. (ça va plus vite ) Il n'y a pas
que moi qui se pose des questions.

Directive PHP4 PHP5
------------ --------- ---
------
allow_call_time_pass_reference ON OFF
Mettre impérativement à ON, il y des problèmes dans l'appel des

constructeurs d'objets avec des paramètres intialisés si on laisse OFF
default_charset no value iso-8859-1
display_errors OFF ON
Annoncé
error_reporting 2039 2047
expose_php ON OFF
extension_dir ./
/usr/local/lib/php/20040412
log_errors OFF ON
precision 12 14
register_argc_argv ON OFF
register_globals ON OFF
Avec OFF les scripts ne recoivent plus les variables GET et POST en

dehors des tableaux superglobaux. Cela peut être très génant pour
certains scripts.
sendmail_from no
value
upload_max_filesize 8M 2M
Attention aux upload de gros fichiers (vidéo, pdf) : la limte de 2Meg

est 'short'.
variables_order EGPCS GPCS

Pour les utilisateur (comme moi) de ZENd Encoder : plante sur les appels

de constructeur d'objets, restez en PHP 4.3.

--
Michel BONZI

--

Avatar
Ganf
Mettre impérativement à ON, il y des problèmes dans l'appel des
constructeurs d'objets avec des paramètres intialisés si on laisse OFF


Tu as un exemple ? parce que j'ai toujours tourné à OFF et ça ne m'a
jamais posé problème, y compris en PHP5. Il y a juste l'extension OCI8
qui m'oblige à l'activer au cas car elle impose un passage par référence
lors de l'appel des bindings.
D'ailleurs ça fait plusieurs années que la désactivation de cette option
est recommandée si je ne m'abuse.

Avec OFF les scripts ne recoivent plus les variables GET et POST en
dehors des tableaux superglobaux. Cela peut être très génant pour
certains scripts.


Oui, enfin ce changement date aussi d'il y a plusieurs années. Il n'est
en rien propre à PHP5, et je suis de ceux qui disent que si il y a
problème sans le register globals, il vaut mieux corriger le script que
la configuration.

Le php.ini recommandé n'a pas beaucoup changé depuis PHP4, vous pouvez
chercher les différences via http://cvs.php.net/php-src/php.ini-recommended
La seule différence d'importance depuis une bonne année c'est la
désactivation du session.trans-sid.

--
Eric Daspet

--

1 2