Auteur Sujet: Changement de version de PHP  (Lu 2956 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne thibaud

  • Administrateur
  • VIP
  • *****
  • Messages: 3 909
    • http://www.phpnet.org/
Changement de version de PHP
« le: 09 Avril 2007 à 12:30:44 »
Bonjour,

Pour des raisons de sécurité, nous sommes passé a la version 4.4.6 de PHP.

Cette mise a jour peut engendrer des problemes avec les anciennes versions de SPIP et de différents
scripts en raison de la mise a jour de PCRE (regex perl).

Si vous utilisez une ancienne version pour laquelle cette mise a jour pose probleme, nous vous
invitons soit a mettre a jour votre applications, soit a chercher le patch correctif pour la rendre compatible.

Pour le cas de SPIP, voici la correction a faire :
Dans ecrire/inc/texte/php il y a un expression régulière qui auparavant fonctionnait, et qui apparemment
est la cause du plantage sous PHP 4.4.6 :

/* 12 */ "/

([\n]*()*)*/",

On peut la remplacer par :

/* 12 */ "/

\n*(?:\n*)*/",


Excellente journée a tous et Joyeuses Paques !

L'équipe technique
Thibaud GRANGIER
Division Technique mutualise-dedie
PHPNET

Hors ligne GillouBF.com

  • Débutant
  • *
  • Messages: 35
Re : Changement de version de PHP
« Réponse #1 le: 09 Avril 2007 à 13:32:41 »
J'utilise SPIP 1.9.1 (version récente quand même) et mon site n'apparaît plus !
http://www.biathlonfrance.com

J'ai regardé dans le fichier indiqué et je n'ai pas trouvé l'expression régulière en question ! J'ai trouvé 1 truc qui pouvait ressembler mais ce n'est pas ça :

/* 12 */   "/<p>([\n]*(<br[[:space:]]*\/?".">)*)*/S",

Une idée de la ligne correspondant à l'expression régulière indiquée ?
Si c'est bien la bonne ligne, merci d'être plus explicite sur quoi est remplacé par quoi, certains d'entre nous ne sont pas forcément des kaïds de l'informatique ;-)

Enfin, en attendant, ça marche pô !
« Modifié: 09 Avril 2007 à 13:45:48 par GillouBF.com »

Hors ligne boulaneige

  • Connaisseur
  • ***
  • Messages: 337
    • http://www.boulaneige.com/
Re : Changement de version de PHP
« Réponse #2 le: 09 Avril 2007 à 14:13:18 »
Salut,

Idem avec une version 1.9.2 : page blanche :-(((

RAS sur des versions 1.8.x  :huh:

C'est toujours génant de modifier le "noyau", ça complique le suivi des mises à jour de l'appli...

Pis alors là ça tombe vraiment mal, je n'ai pas le temps de m'occuper de ça :-(
* Petite scarabette *

Hors ligne gh

  • Webmaster SMW
  • Débutant
  • *
  • Messages: 2
    • Saint-Mard Web
Re : Changement de version de PHP
« Réponse #3 le: 09 Avril 2007 à 16:34:37 »
Je suis en 9.1 et je ne trouve pas ce fichier ni cette syntaxe et mes 2 sites sont plantés !!!!!!!!!!!!!!!!!!!!!!!

de plus il n'y pas de repertoire /inc/texte/php  mais uniquementun repertoire /inc , dans lequel on trouve un fichier texte.php , et dans ce fichier je ne trouve aucune syntaxe correspondante.
« Modifié: 09 Avril 2007 à 16:41:08 par gh »

Hors ligne Lanzecki

  • Débutant
  • *
  • Messages: 30
    • http://
Re : Changement de version de PHP
« Réponse #4 le: 09 Avril 2007 à 17:19:09 »
Le site public sous spip 191 ne marchait plus mais la partie privée fonctionnait.

J'ai donc installé la dernière version de spip, la 192a (ca faisait quelques semaines que je retardais la chose par paresse :wacko:. ).

Tout fonctionne désormais de façon impeccable.


Hors ligne gh

  • Webmaster SMW
  • Débutant
  • *
  • Messages: 2
    • Saint-Mard Web
Re : Changement de version de PHP
« Réponse #5 le: 09 Avril 2007 à 18:00:50 »
OK je confirme , merci , un peu brutal comme modif un week ou il y a du soleil

Hors ligne eosis

  • Débutant
  • *
  • Messages: 1
Re : Changement de version de PHP
« Réponse #6 le: 09 Avril 2007 à 18:22:51 »
Attention aux plugins:

Passage en 1.9.2a -> même problème : pages blanches sur le site.

En cause le plugin BarreTypoEnrichie. après avoir désactivé le plugin tout est OK

Rq: la modif du fichier texte.php n'a pas suffit.

Hors ligne GillouBF.com

  • Débutant
  • *
  • Messages: 35
Re : Changement de version de PHP
« Réponse #7 le: 09 Avril 2007 à 18:22:51 »
Non seulement un peu brutal mais en plus nous "obliger" à changer des trucs, ça me fait bien ch... !
Avant c'était le client qui était roi maintenant c'est le client qui est obligé de se plier aux règles ! Cool...

Hors ligne thibaud

  • Administrateur
  • VIP
  • *****
  • Messages: 3 909
    • http://www.phpnet.org/
Re : Changement de version de PHP
« Réponse #8 le: 09 Avril 2007 à 18:52:07 »
la modification se fait ligne 1455 dans le fichier texte.php

Nous sommes obligés de faire cette upgrade sans quoi la sécurité de vos sites est en jeu.

Si vous choisissez de ne pas mettre a jour vos applications php, il faut assumer et faire les corrections necessaires.
Si vous mettez a jour vos applications, vous n'aurez pas de probleme.

Afin de vous géner le moins possible, nous avons retardé le PLUS POSSIBLE cette mise a jour pour que des correctifs soient mis en ligne par les editeurs pour toutes les applications posant probleme... De notre coté, nous ne pouvons pas faire mieux.

Notre support peut faire les corrections si vraiment vous n'arrivez pas a le faire (et uniquement dans ce cas!).
Thibaud GRANGIER
Division Technique mutualise-dedie
PHPNET

Hors ligne boulaneige

  • Connaisseur
  • ***
  • Messages: 337
    • http://www.boulaneige.com/
Re : Changement de version de PHP
« Réponse #9 le: 09 Avril 2007 à 21:37:38 »
La ligne 1455 ne correspond pas au code que tu as mis dans ton premier post, faut faire quoi alors  :huh:

Pour info c'est un spip 1.9.2 [8782] sans aucun plug-in. Il est quasiment brut de décoffrage (seul le squelette "sommaire" a été commencé) mais par contre bien rempli.

Voici ce que j'ai en ligne 1455 :

/* 12 */ "/<p>([\n]*(<br[[:space:]]*\/?".">)*)*/S",

C'est pas cool d'avoir fait cette modif qui plante certains sites un jour férié ! Y'en a qui vont se faire fumer demain :-(((
« Modifié: 09 Avril 2007 à 21:39:39 par boulaneige »
* Petite scarabette *

Hors ligne thibaud

  • Administrateur
  • VIP
  • *****
  • Messages: 3 909
    • http://www.phpnet.org/
Re : Changement de version de PHP
« Réponse #10 le: 09 Avril 2007 à 22:55:24 »
effectivement, ca semble etre différent selon la version.

dans tous les cas, la ligne a changer commence par /* 12 */

(la premiere qui commence par /* 12 */, vu qu'il y en a deux...)
Thibaud GRANGIER
Division Technique mutualise-dedie
PHPNET

Hors ligne boulaneige

  • Connaisseur
  • ***
  • Messages: 337
    • http://www.boulaneige.com/
Re : Changement de version de PHP
« Réponse #11 le: 09 Avril 2007 à 23:19:30 »
Bin écoute, je ne sais pas d'où tu sors ton bout de code :-(

Spip 1.8.3 :
$cherche1 = array(
/* 0 */ "/\n(----+|____+)/",
/* 1 */ "/\n-- */",
/* 2 */ "/\n- */",
/* 3 */ "/\n_ +/",
/* 4 */ "/[{][{][{]/",
/* 5 */ "/[}][}][}]/",
/* 6 */ "/(( *)\n){2,}(<br[[:space:]]*\/?".">)?/",
/* 7 */ "/[{][{]/",
/* 8 */ "/[}][}]/",
/* 9 */ "/[{]/",
/* 10 */ "/[}]/",
/* 11 */ "/(<br[[:space:]]*\/?".">){2,}/",
/* 12 */ "/<p>([\n]*)(<br[[:space:]]*\/?".">)+/",
/* 13 */ "/<p>/",
/* 14 "/\n/", */
/* 15 */ "/<quote>/",
/* 16 */ "/<\/quote>/"
);
$remplace1 = array(
/* 0 */ "\n\n@@SPIP_ligne_horizontale@@\n\n",
/* 1 */ "\n<br />&mdash;&nbsp;",
/* 2 */ "\n<br />$puce&nbsp;",
/* 3 */ "\n<br />",
/* 4 */ "\n\n@@SPIP_debut_intertitre@@",
/* 5 */ "@@SPIP_fin_intertitre@@\n\n",
/* 6 */ "<p>",
/* 7 */ "<strong>",
/* 8 */ "</strong>",
/* 9 */ "<i>",
/* 10 */ "</i>",
/* 11 */ "<p>",
/* 12 */ "<p>",
/* 13 */ "<p>",
/* 14 " ", */
/* 15 */ "\n\n<blockquote class=\"spip\"><p>",
/* 16 */ "</p></blockquote>\n\n"
);
$letexte = preg_replace($cherche1, $remplace1, $letexte);
$letexte = preg_replace("@^ <br />@", "", $letexte);

spip 1.9.0 :
$cherche1 = array(
/* 0 */ "/\n(----+|____+)/",
/* 1 */ "/\n-- */",
/* 2 */ "/\n- */",
/* 3 */ "/\n_ +/",
/* 4 */   "/(^|[^{])[{][{][{]/",
/* 5 */   "/[}][}][}]($|[^}])/",
  /* 6 */ "/(( *)\n){2,}(<br[[:space:]]*\/?".">)?/",
/* 7 */ "/[{][{]/",
/* 8 */ "/[}][}]/",
/* 9 */ "/[{]/",
/* 10 */ "/[}]/",
/* 11 */ "/(<br[[:space:]]*\/?".">){2,}/",
/* 12 */ "/<p>([\n]*(<br[[:space:]]*\/?".">)*)*/",
/* 13 */ "/<quote>/",
/* 14 */ "/<\/quote>/"
);
$remplace1 = array(
/* 0 */ "\n\n$ligne_horizontale\n\n",
/* 1 */ "\n<br />&mdash;&nbsp;",
/* 2 */ "\n<br />$puce&nbsp;",
/* 3 */ "\n<br />",
/* 4 */ "\$1\n\n$debut_intertitre",
/* 5 */ "$fin_intertitre\n\n\$1",
/* 6 */ "<p>",
/* 7 */ "<strong>",
/* 8 */ "</strong>",
/* 9 */ "<i>",
/* 10 */ "</i>",
/* 11 */ "<p>",
/* 12 */ "<p>",
/* 13 */ "<blockquote><p>",
/* 14 */ "</blockquote><p>"
);
$letexte = preg_replace($cherche1, $remplace1, $letexte);
$letexte = preg_replace("@^ <br />@", "", $letexte);

Spip 1.9.2 :
$cherche1 = array(
/* 0 */ "/\n(----+|____+)/S",
/* 1 */ "/\n-- */S",
/* 2 */ "/\n- */S",
/* 3 */ "/\n_ +/S",
/* 4 */   "/(^|[^{])[{][{][{]/S",
/* 5 */   "/[}][}][}]($|[^}])/S",
/* 6 */ "/(( *)\n){2,}(<br[[:space:]]*\/?".">)?/S",
/* 7 */ "/[{][{]/S",
/* 8 */ "/[}][}]/S",
/* 9 */ "/[{]/S",
/* 10 */ "/[}]/S",
/* 11 */ "/(<br[[:space:]]*\/?".">){2,}/S",
/* 12 */ "/<p>([\n]*(<br[[:space:]]*\/?".">)*)*/S",
/* 13 */ "/<quote>/S",
/* 14 */ "/<\/quote>/S",
/* 15 */ "/<\/?intro>/S"
);
$remplace1 = array(
/* 0 */ "\n\n$ligne_horizontale\n\n",
/* 1 */ "\n<br />&mdash;&nbsp;",
/* 2 */ "\n<br />$puce&nbsp;",
/* 3 */ "\n<br />",
/* 4 */ "\$1\n\n$debut_intertitre",
/* 5 */ "$fin_intertitre\n\n\$1",
/* 6 */ "<p>",
/* 7 */ "<strong class=\"spip\">",
/* 8 */ "</strong>",
/* 9 */ "<i class=\"spip\">",
/* 10 */ "</i>",
/* 11 */ "<p>",
/* 12 */ "<p>",
/* 13 */ "<blockquote class=\"spip\"><p>",
/* 14 */ "</blockquote><p>",
/* 15 */ ""
);
$letexte = preg_replace($cherche1, $remplace1, $letexte);
$letexte = preg_replace("@^ <br />@S", "", $letexte);

Et je n'arrive pas à "traduire" le bout de code que tu donnes... Ca sort d'où ?

Pour rappel : 1.8.3 OK, 1.9.0 et 1.9.2 pages blanches (interface d'admin OK).
« Modifié: 09 Avril 2007 à 23:24:26 par boulaneige »
* Petite scarabette *

Hors ligne OlivierWeb

  • Débutant
  • *
  • Messages: 7
Re : Changement de version de PHP
« Réponse #12 le: 10 Avril 2007 à 08:55:45 »
Il faut remplacer les lignes commençant par /* 11 */ et /* 12 */ dans le fichier texte.php

par :
/* 11 */    "/(?:<br\b.*?>){2,}/S",
/* 12 */    "/<p>\n*(?:<br\b.*?>\n*)*/S",

Hors ligne GillouBF.com

  • Débutant
  • *
  • Messages: 35
Re : Changement de version de PHP
« Réponse #13 le: 10 Avril 2007 à 11:56:56 »
Bizarrement, en faisant la mise à jour avec la version 1.9.2a, je n'ai pas eu à modifier le code du fichier texte.php
Je m'en plains pas notez mais bon...

ps : désolé pour la "virulence" de mes propos dans un message précédent, mais c'est vrai qu'un changement brut de décoffrage un lundi de Pâques, c'est un peu galère à gérer... surtout quand ça impose de faire des modifications. Merci pour votre travail cependant.