Page 1 sur 1

message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 22 oct. 2014, 09:08
par copalme
Bonjour,
je m'occupe d'un site que je n'ai pas créé et je n'y connais pas grand chose en informatique : on a une interface interne pour publier, je connais aussi le FTP, mais jamais mis les pieds sur phpmyadmin...
Pour info la base de données est en MySQL5, on gère ça sous SPIP et on est hébergés chez 1&1.
Récemment j'ai dû faire passer le site de PHP 5.2 à PHP 5.4, j'ai lu qu'il fallait "vérifier" et "adapter ses scripts" mais alors ça ne m'évoque tellement rien ces mots que je suis un peu perplexe, j'ai fait la migration et il y a eu plein de messages d'erreur tous concernant "timezone", j'ai réussi à résoudre ça en intégrant un petit fichier php sur le FTP (grâce à un post sur un forum où quelqu'un avait eu le même message)
mais maintenant il reste un message d'erreur au dessus de la page d'accueil :
Warning: mysql_query(): Unable to save result set in /homepages/0/d188024346/htdocs/ecrire/req/mysql.php on line 181
je suis allée voir dans le fichier en question, et à la ligne 181 il y a ça :
$r = $link ? mysql_query($query, $link) : mysql_query($query);
disons que ça me parle autant que du japonais... est-ce que quelqu'un pourrait m'aider ??

L'autre problème, c'est un message d'erreur que je ne vois qu'une fois connectée sur la partie interne de mon site : sur la page d'accueil du site public, un gros cadre rouge s'affiche et me répertorie 8 erreurs dans le squelette, ça donne ça :
erreurs dans le squelette.png
Qu'est-ce que c'est que tout ça, c'est plutôt un problème avec SPIP ou SQL non ? J'en sais rien... Après malgré le côté inquiétant de ce gros cadre rouge, ça n'a pas l'air si grave puisque le site fonctionne à peu près normalement...

Merci beaucoup si quelqu'un(e) peut m'aider, et bonne journée !

Re: help : message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 22 oct. 2014, 11:00
par Aureusms
Cette ligne :
$r = $link ? mysql_query($query, $link) : mysql_query($query);
t'indiques que la variable "$r" prendra la valeur de mysql_query($query, $link) si $link est true ou mysql_query($query) si l'inverse.

Je n'aime pas trop cette notation car si $link n'existe pas, cela génère des erreurs. De plus, si tu n'a pas de valeur dans $link et donc dans $r => pas de myssql

Je ne sais pas si ton problème peut provenir de là mais essayes ceci :
$r = (!empty($link)) ? mysql_query($query, $link) : mysql_query($query);

Re: help : message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 22 oct. 2014, 11:58
par ynx
Salut,

La variable $link (utilisé en 2e paramètre de mysql_query) correspond à la connexion de l'API Mysql via la fonction mysql_connect. Si cette variable n'est pas définie, la fonction mysql_query() utilisera automatiquement la dernière connexion ouverte avec mysql_connect.
Cette ligne ne provoque pas d'erreur sauf si aucune connexion n'a été ouverte avec mysql_connect (ou que celle-ci a échouée).

D'après plusieurs posts sur le forum de SPIP, cette erreur provient uniquement de la base de données. La solution proposée est de vider le cache du site puis effectuer une réparation de la bdd (via la rubrique "Maintenance" du site) : http://forum.spip.net/fr_6713.html

Bonne journée

Re: help : message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 22 oct. 2014, 14:23
par copalme
merci de vos réponses,
Aureusms j'ai essayé de changer la ligne que tu me dis mais ça n'a rien fait du tout (du coup là j'ai remis l'ancien code)
Ynx ce que tu me dis, réparer la base de données, je vois où ça se fait dans l'espace interne par contre est-ce qu'il ne vaudrait pas mieux faire une sauvegarde de la base avant ? (j'en fais de temps en temps mais pour en avoir une toute récente au cas où)

Re: help : message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 22 oct. 2014, 15:33
par ynx
Au cas où, il faut toujours faire une sauvegarde :)

Re: help : message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 23 oct. 2014, 14:54
par copalme
Ok merci, j'attends que quelque qui a une meilleure connexion que moi fasse cette sauvegarde alors et j'essaie dans quelques jours.
par contre les "erreurs dans le squelette" ça vous dit rien?

Re: message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 28 oct. 2014, 14:48
par Invité
Bonjour copalme
J'ai le même probleme depuis la migration chez 1&1 et je me demandais si tu pouvais partager le petit fichier dont tu parles pour le probleme de timezone.
voilà le lien qui montre mon soucis sur lmon forum http://yali.fr/foro/viewtopic.php?f=6&t=6
Merci de ton aide car je suis completement perdu.
Pour le reste je suis désolé de ne pas pouvoir t'aider

Re: message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 30 oct. 2014, 22:20
par copalme
pour les messages d'erreur par rapport à timezone, il faut créer un fichier PHP nommé "mes_options.php" et le mettre dans le FTP dans le dossier Config de spip. et le texte du fichier c'est ça :
<?php
date_default_timezone_set('Europe/Paris');
?>
j’espère que ça marchera pour toi aussi alors
(si besoin, voilà où j'avais trouvé cette astuce : http://forum.spip.net/fr_225453.html)

Re: message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 07 nov. 2014, 13:29
par copalme
Re-bonjour,
voilà j'ai sauvegardé ma base de données et fait une réparation de la base, mais cela ne donne rien (ça indique que toutes les tables sont "OK"), j'ai toujours les mêmes problèmes sur la page d'accueil du site en PHP 5.4 : le message d'erreur (à propos de mysql_query) en haut, le gros cadre rouge avec les erreurs dans le squelette, et en plus certains éléments de la page d'accueil n'apparaissent plus, par exemple tout en bas on ne peut plus cliquer sur les numéros de page pour voir des articles plus anciens.

je lis partout que quand on change de version de PHP il faut "adapter ses scripts" mais je ne trouve rien de plus précis... ça veut dire quoi plus concrètement, où est-ce qu'on fait ça ???

merci

Re: message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 07 nov. 2014, 13:59
par ynx
Tu peux trouver des informations sur la migration de php 5.2 vers 5.3 et 5.3 vers 5.4 sur la doc (notamment les évolutions incompatible) :
- http://php.net/manual/fr/migration53.php
- http://php.net/manual/fr/migration54.php

Mettre à jour ta version de SPIP si celle-ci est ancienne me semble une meilleure piste que d'adapter les scripts du SPIP actuel.

La première erreur sur ton impression d'écran indique que la mémoire allouée au serveur mysql n'est pas suffisante pour exécuter cette requête. As-tu essayer de copier cette requête dans un client mysql (PhpMyAdmin par exemple) pour voir le résultat ?
Surtout que cette requête n'as pas de clause sql LIMIT donc elle récupère tous les articles (excepté ceux ayant l'id correspondant à la clause NOT IN).

Re: message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 08 nov. 2014, 15:45
par copalme
merci !
pour les pages d'information sur les migrations PHP je les ai déjà regardées mais ça ne me dit rien, mais alors rien du tout...

j'ai changé la version de SPIP l'année dernière, on a la version 3.0.7, elle n'est pas ancienne il me semble

la requête dont tu parles c'est quoi, les lignes en rouge (qui commencent par "SELECT") ? je n'ai jamais rien fait sur PhpMyAdmin en fait je ne connais pas... (je sais juste qu'on peut y accéder par l'espace client de mon hébergeur)

pour les autres erreurs signalées en rouge j'ai remarqué que la plupart disent la même chose : "MySQL server has gone away", et j'ai trouvé ça à ce propos :
http://quickfix.free.fr/?p=229
mais je ne sais pas où trouver ce fichier : par le FTP ? ou par PhpMyAdmin, mais comment ?

Re: message d'erreur apres migration de PHP 5.2 à 5.4

Posté : 10 nov. 2014, 10:43
par ynx
En effet ta version de spip n'est pas obsolète.

Le fichier my.ini est le fichier de configuration de Mysql qui se situe par défaut dans le dossier /etc/mysql/
Il faut que tu es les droits suffisants pour accéder à ce fichier et le modifier.
Si tu n'a pas les droits ou si tu es sur un mutualisé, essaye de voir directement avec ton hébergeur.