#INTRODUCTION + propre sous PHP7 #3647

Closed
opened 7 years ago by miros · 17 comments
miros commented 7 years ago

La balise #INTRODUCTION n'est pas affichée sous Spip 3.1 et Php 7.0 alors qu'elle l'est avec Php 5.6.10 (Site testé sous Mamp).
Ma syntaxe exacte : [(#INTRODUCTION{800}|liens_ouvrants|propre)]

La balise #INTRODUCTION n'est pas affichée sous Spip 3.1 et Php 7.0 alors qu'elle l'est avec Php 5.6.10 (Site testé sous Mamp). Ma syntaxe exacte : [(#INTRODUCTION{800}|liens_ouvrants|propre)]
Owner

Ivan Lewkowitz a écrit :

La balise #INTRODUCTION n'est pas affichée sous Spip 3.1 et Php 7.0 alors qu'elle l'est avec Php 5.6.10 (Site testé sous Mamp).
Ma syntaxe exacte : [(#INTRODUCTION{800}|liens_ouvrants|propre)]

Je viens de tester avec un spip 3.1 et MAMP et cela semble OK chez moi.

Ivan Lewkowitz a écrit : > La balise #INTRODUCTION n'est pas affichée sous Spip 3.1 et Php 7.0 alors qu'elle l'est avec Php 5.6.10 (Site testé sous Mamp). > Ma syntaxe exacte : [(#INTRODUCTION{800}|liens_ouvrants|propre)] Je viens de tester avec un spip 3.1 et MAMP et cela semble OK chez moi.

Hello :-)
Ivan Lewkowitz faudrait plus d'info pour essayer de reproduire :-(

Il s'agit d'un spip 3.1 natif ?
D'un spip 3.0 ou autre, dont tu as fait le passage en 3.1 ?

Si ce n'était pas un spip 3.1 natif, tu as fait la mise à jour comment ?
Tu as utiliser spip_loader ou FTP ?
Tu avais suivi cette méthode ou pas ? http://www.spip.net/fr_article5693.html
Tu te sers de quoi comme base de données (MySQL, ou autre chose) ?

Franck

Hello :-) Ivan Lewkowitz faudrait plus d'info pour essayer de reproduire :-( Il s'agit d'un spip 3.1 natif ? D'un spip 3.0 ou autre, dont tu as fait le passage en 3.1 ? Si ce n'était pas un spip 3.1 natif, tu as fait la mise à jour comment ? Tu as utiliser spip_loader ou FTP ? Tu avais suivi cette méthode ou pas ? http://www.spip.net/fr_article5693.html Tu te sers de quoi comme base de données (MySQL, ou autre chose) ? Franck
Poster

Hello Franck, désolé, voici plus de détails :

Il s'agit d'un Spip 3.0.21 mis à jour en 3.1 via Spip_loader.
J'ai suivi les indications de maj. Les plugins sont compatibles (couteau suisse).
Base de données : MySQL (exportée du site online via l'admin de Spip et réimportée en local, toujours via l'admin Spip, même version évidemment). Le fichier se termine en .sqlite (et non .dump ou autre).
Le codage de la base est tout en utf-8, idem pour le site lui-même.

Online, le site est en Spip 3.1 et Php 5.2 (module Apache) alors que dans Mamp, c'est Php 5.6.10 qui tourne (ou Php 7 au choix). Quand on passe d'une version à l'autre de Php en local, +la première balise #INTRODUCTION+ est ignorée (le DIV accueillant l'intro est vide au lieu d'afficher un paragraphe).
Ça c'est pour l'intro dans une boucle ARTICLES.

[(#INTRODUCTION{800}|liens_ouvrants|propre)]

Mais bizarrement, j'appelle aussi l'intro en survol sur des titres d'articles plus loin, et ça fonctionne sans problème :

Donc… mystère. Donc pour résumer ma première balise intro ne saute qu'en local et avec Php 7 (donc rien de dramatique). J'ai pas essayé d'activer Php 7 chez mon hébergeur ; c'est proposé en beta encore.
A ta dispo.

Hello Franck, désolé, voici plus de détails : Il s'agit d'un Spip 3.0.21 mis à jour en 3.1 via Spip_loader. J'ai suivi les indications de maj. Les plugins sont compatibles (couteau suisse). Base de données : MySQL (exportée du site online via l'admin de Spip et réimportée en local, toujours via l'admin Spip, même version évidemment). Le fichier se termine en .sqlite (et non .dump ou autre). Le codage de la base est tout en utf-8, idem pour le site lui-même. Online, le site est en Spip 3.1 et Php 5.2 (module Apache) alors que dans Mamp, c'est Php 5.6.10 qui tourne (ou Php 7 au choix). Quand on passe d'une version à l'autre de Php en local, +la première balise #INTRODUCTION+ est ignorée (le DIV accueillant l'intro est vide au lieu d'afficher un paragraphe). Ça c'est pour l'intro dans une boucle ARTICLES. <div class="entry-content"> [(#INTRODUCTION{800}|liens_ouvrants|propre)] </div> Mais bizarrement, j'appelle aussi l'intro en survol sur des titres d'articles plus loin, et ça fonctionne sans problème : <a href="#URL_ARTICLE" title="[(#INTRODUCTION|supprimer_tags|attribut_html)]"> Donc… mystère. Donc pour résumer ma première balise intro ne saute qu'en local et avec Php 7 (donc rien de dramatique). J'ai pas essayé d'activer Php 7 chez mon hébergeur ; c'est proposé en beta encore. A ta dispo.
b_b commented 7 years ago
Owner

Version cible mise à 3.1

**Version cible mise à 3.1**
b_b commented 7 years ago
Owner

Salut, as-tu testé avec [(#INTRODUCTION{800}|liens_ouvrants)] ?

Le problème vient peut-être de là, en effet l'utilisation de |propre peut poser problème si le contenu qui lui est passé contient des balises potentiellement dangereuses.

Autre point, peux-tu nous transmettre le texte de l'article qui pose problème ?
Statut changé à En cours

Salut, as-tu testé avec `[(#INTRODUCTION{800}|liens_ouvrants)]` ? Le problème vient peut-être de là, en effet l'utilisation de |propre peut poser problème si le contenu qui lui est passé contient des balises potentiellement dangereuses. Autre point, peux-tu nous transmettre le texte de l'article qui pose problème ? **Statut changé à En cours**
Poster

Hello,

  • Pour la première balise [(#INTRODUCTION{800}|liens_ouvrants|propre)], je viens de retester et elle fonctionne comme ça. L'article a changé depuis la dernière fois, ce qui me laisse penser que le contenu a pu influencer. A vérifier… mais bon.

  • Regarde plus en détail la deuxième balise que j'utilise en survol dans une boucle où je liste les 3 derniers articles de certaines rubriques.
    <BOUCLE_artnewsleft(ARTICLES){id_rubrique}{par date}{inverse}{0,3}>

[(#TITRE|supprimer_numero|rtrim{'. '})]

Dans les trois résultats qui s'affichent, le premier et le troisième fonctionnent mais pas le deuxième (voir capture ci joint).
Plus précisément, le deuxième affiche l'intro en survol tant que je coupe à 290 : [(#INTRODUCTION{290}|supprimer_tags|attribut_html)]
mais si je passe à [(#INTRODUCTION{291}|supprimer_tags|attribut_html)] (ou plus), ça ne marche plus.

Les deux autres intro au dessus et en dessous marchent tout le temps !

Le code du texte de l'article qui déconne est :

Le petit fils de Kim Il-sung est à la tête d’un régime militarisé dont l’arme nucléaire constitue le gage de sa survie. Toujours aux prises avec des difficultés alimentaires il comprend mal la logique de profit qui sous tend les investissements étrangers.

Après le test nucléaire nord-coréen du 6 janvier, le scénario des réactions internationales qui se répète depuis 2006 n’a pas varié, sauf que, pour la dernière expérience en date, Pyongyang affirme avoir franchi le cap technologique de la fusion ce qui ajoute beaucoup à la sidération internationale, la puissance théorique d’un tel engin pouvant être 1000 fois supérieure à celle d’une bombe A classique. Mais pour l’heure, les premières réponses de la communauté internationale sont symétriques de celles qui suivirent le dernier test de 2013.

Rien de spécial dans le texte, à part les accents de la langue française. Comme tu peux le voir sur l'image 2, j'ai même des intros contenant du chinois qui s'affichent sans problème.

Hello, - Pour la première balise [(#INTRODUCTION{800}|liens_ouvrants|propre)], je viens de retester et elle fonctionne comme ça. L'article a changé depuis la dernière fois, ce qui me laisse penser que le contenu a pu influencer. A vérifier… mais bon. - Regarde plus en détail la deuxième balise que j'utilise en survol dans une boucle où je liste les 3 derniers articles de certaines rubriques. <BOUCLE_artnewsleft(ARTICLES){id_rubrique}{par date}{inverse}{0,3}> <a href="#URL_ARTICLE" title="[(#INTRODUCTION|supprimer_tags|attribut_html)]">[(#TITRE|supprimer_numero|rtrim{'. '})]</a> Dans les trois résultats qui s'affichent, le premier et le troisième fonctionnent mais pas le deuxième (voir capture ci joint). Plus précisément, le deuxième affiche l'intro en survol tant que je coupe à 290 : [(#INTRODUCTION{290}|supprimer_tags|attribut_html)] mais si je passe à [(#INTRODUCTION{291}|supprimer_tags|attribut_html)] (ou plus), ça ne marche plus. Les deux autres intro au dessus et en dessous marchent tout le temps ! ![](/redmine/811/image.png) Le code du texte de l'article qui déconne est : <p><strong>Le petit fils de Kim Il-sung est à la tête d’un régime militarisé dont l’arme nucléaire constitue le gage de sa survie. Toujours aux prises avec des difficultés alimentaires il comprend mal la logique de profit qui sous tend les investissements étrangers.</strong></p> <p>Après le test nucléaire nord-coréen du 6 janvier, le scénario des réactions internationales qui se répète depuis 2006 n’a pas varié, sauf que, pour la dernière expérience en date, Pyongyang affirme avoir franchi le cap technologique de la fusion ce qui ajoute beaucoup à la sidération internationale, la puissance théorique d’un tel engin pouvant être 1000 fois supérieure à celle d’une bombe A classique. Mais pour l’heure, les premières réponses de la communauté internationale sont symétriques de celles qui suivirent le dernier test de 2013.</p> Rien de spécial dans le texte, à part les accents de la langue française. Comme tu peux le voir sur l'image 2, j'ai même des intros contenant du chinois qui s'affichent sans problème. ![](/redmine/812/image2.png)
b_b commented 7 years ago
Owner

Je ne comprends plus, est-ce que le bug déclaré en premier lieu dans le ticket est réglé ?

Quel est l'objet ton dernier commentaire, je n'arrive pas à deviner avec uniquement des captures d'écran. Que fais-tu ? Quel est le résultat obtenu et en quoi est-il différent de ce que tu souhaites obtenir ?

Je ne comprends plus, est-ce que le bug déclaré en premier lieu dans le ticket est réglé ? Quel est l'objet ton dernier commentaire, je n'arrive pas à deviner avec uniquement des captures d'écran. Que fais-tu ? Quel est le résultat obtenu et en quoi est-il différent de ce que tu souhaites obtenir ?
Poster

Le bug est :
la fonction de coupe automatique d'une balise #INTRODUCTION ne fonctionne pas correctement sous Spip 3.1.0 et Php 7.0.0.

Que j'utilise [(#INTRODUCTION)] ou que je coupe manuellement, [(#INTRODUCTION{800}|supprimer_tags|attribut_html)], des fois le contenu s'affiche, des fois non. Si je réduis le chiffre de coupe petit à petit, je vais trouver le chiffre exact en dessous duquel l'intro s'affichera.
C'est donc la fonction de coupe qui ne marche pas sous Php 7.
Sous Php 5.6.10, aucun problème. Ça marche tout le temps.
C'est plus clair ?

Le bug est : la fonction de coupe automatique d'une balise #INTRODUCTION ne fonctionne pas correctement sous Spip 3.1.0 et Php 7.0.0. Que j'utilise [(#INTRODUCTION)] ou que je coupe manuellement, [(#INTRODUCTION{800}|supprimer_tags|attribut_html)], des fois le contenu s'affiche, des fois non. Si je réduis le chiffre de coupe petit à petit, je vais trouver le chiffre exact en dessous duquel l'intro s'affichera. C'est donc la fonction de coupe qui ne marche pas sous Php 7. Sous Php 5.6.10, aucun problème. Ça marche tout le temps. C'est plus clair ?
b_b commented 7 years ago
Owner

Je précise aussi, quand je te demandais de nous transmettre le texte de l'article qui pose problème, je parlais bien du texte source de l'article (pas de son rendu). Peux-tu nous filer ça pour qu'on tente de reproduire le bug ?

D'après ce que je peux voir, sur la page de l'article (que j'ai finalement trouvé à l'aide d'un moteur de recherche), tu as un document inséré en début d'article, c'est bien ça ?

http://www.questionchine.net/coree-du-nord-la-sideration-thermonucleaire

Je précise aussi, quand je te demandais de nous transmettre le texte de l'article qui pose problème, je parlais bien du texte source de l'article (pas de son rendu). Peux-tu nous filer ça pour qu'on tente de reproduire le bug ? D'après ce que je peux voir, sur la page de l'article (que j'ai finalement trouvé à l'aide d'un moteur de recherche), tu as un document inséré en début d'article, c'est bien ça ? http://www.questionchine.net/coree-du-nord-la-sideration-thermonucleaire
Poster

b b a écrit :

Je précise aussi, quand je te demandais de nous transmettre le texte de l'article qui pose problème, je parlais bien du texte source de l'article (pas de son rendu). Peux-tu nous filer ça pour qu'on tente de reproduire le bug ?

Voilà le début du texte source du dernier article en ligne (http://www.questionchine.net en tête de page, là où s'affiche l'introduction).
(Dis moi si la pièce jointe est bien accessible, j'ai pas trop l'habitude des balises redmine).
Texte_article.txt

Ce contenu sous Php 7.0.0 n'affiche pas l'intro.

D'après ce que je peux voir, sur la page de l'article (que j'ai finalement trouvé à l'aide d'un moteur de recherche), tu as un document inséré en début d'article, c'est bien ça ?

Oui il y a un document inséré en début d'article. Une image, par exemple : <img1049|center>
Mais le site en ligne tourne en php 5.x, donc aucun problème.

b b a écrit : > Je précise aussi, quand je te demandais de nous transmettre le texte de l'article qui pose problème, je parlais bien du texte source de l'article (pas de son rendu). Peux-tu nous filer ça pour qu'on tente de reproduire le bug ? Voilà le début du texte source du dernier article en ligne (http://www.questionchine.net en tête de page, là où s'affiche l'introduction). (Dis moi si la pièce jointe est bien accessible, j'ai pas trop l'habitude des balises redmine). [[Texte_article.txt]] Ce contenu sous Php 7.0.0 n'affiche pas l'intro. > D'après ce que je peux voir, sur la page de l'article (que j'ai finalement trouvé à l'aide d'un moteur de recherche), tu as un document inséré en début d'article, c'est bien ça ? Oui il y a un document inséré en début d'article. Une image, par exemple : <img1049|center> Mais le site en ligne tourne en php 5.x, donc aucun problème.
Poster

Hello, autre test pour préciser :

1) Sous Php 5.6.10
J'utilisais jusqu'à présent #INTRODUCTION|{800}
#INTRODUCTION|{800} fonctionne de la même façon que #TEXTE|couper{800}
Les deux fonctionnent.
#INTRODUCTION|couper{800} coupe plus court que #INTRODUCTION|{800} ou #TEXTE|couper{800}

2) Sous Php 7.0
#INTRODUCTION|{800} ne fonctionne plus.
#INTRODUCTION|couper{800} fonctionne mais coupe plus court que #TEXTE|couper{800}

J'espère que cela te donnera une idée sur l'origine du comportement sous php 7.
Il y a peut-être une erreur d'utilisation de la balise avec la fonction couper telle que je l'utilise. Laquelle est la bonne ?

A savoir aussi que j'utilisais un fichier mesfonctions.php auparavant, mais je ne le charge plus, avec dedans :
function coupertexte($texte){
return couper($texte, 120);
}
Donc il n'influence pas les tests.

A+

Hello, autre test pour préciser : *1) Sous Php 5.6.10* J'utilisais jusqu'à présent #INTRODUCTION|{800} #INTRODUCTION|{800} fonctionne de la même façon que #TEXTE|couper{800} Les deux fonctionnent. #INTRODUCTION|couper{800} coupe plus court que #INTRODUCTION|{800} ou #TEXTE|couper{800} *2) Sous Php 7.0* #INTRODUCTION|{800} ne fonctionne plus. #INTRODUCTION|couper{800} fonctionne mais coupe plus court que #TEXTE|couper{800} J'espère que cela te donnera une idée sur l'origine du comportement sous php 7. Il y a peut-être une erreur d'utilisation de la balise avec la fonction couper telle que je l'utilise. Laquelle est la bonne ? A savoir aussi que j'utilisais un fichier mesfonctions.php auparavant, mais je ne le charge plus, avec dedans : function coupertexte($texte){ return couper($texte, 120); } Donc il n'influence pas les tests. A+
Owner

[( #TEXTE|couper{800})] et #INTRODUCTION{800} peuvent retourner des longueurs différentes car #INTRODUCTION ignore le formatage et les tags donc "cela coupe plus court"

D'ailleurs la syntaxe n'est pas #INTRODUCTION|{800} mais #INTRODUCTION{800} (sans le pipeline http://www.spip.net/fr_article3965.html )

Peux tu nous dire quel ton problème précisément ?

[( #TEXTE|couper{800})] et #INTRODUCTION{800} peuvent retourner des longueurs différentes car #INTRODUCTION ignore le formatage et les tags donc "cela coupe plus court" D'ailleurs la syntaxe n'est pas #INTRODUCTION|{800} mais #INTRODUCTION{800} (sans le pipeline http://www.spip.net/fr_article3965.html ) Peux tu nous dire quel ton problème précisément ?
Poster

erational ???? a écrit :

D'ailleurs la syntaxe n'est pas #INTRODUCTION|{800} mais #INTRODUCTION{800} (sans le pipeline http://www.spip.net/fr_article3965.html )

Oui exact, faute de frappe.

Peux tu nous dire quel ton problème précisément ?

Avec Php 7.0, la balise #INTRODUCTION{800} ne fonctionne pas (rien d'affiché) ou aléatoirement.
C'est elle que j'utilise jusqu'à présent sur mon site qui tourne en Php 5.2.x
Comme mentionné plus haut, #INTRODUCTION|couper{800} ou #TEXTE|couper{800} fonctionnent avec les deux versions Php.

erational ???? a écrit : > D'ailleurs la syntaxe n'est pas #INTRODUCTION|{800} mais #INTRODUCTION{800} (sans le pipeline http://www.spip.net/fr_article3965.html ) Oui exact, faute de frappe. > > Peux tu nous dire quel ton problème précisément ? Avec Php 7.0, la balise #INTRODUCTION{800} ne fonctionne pas (rien d'affiché) ou aléatoirement. C'est elle que j'utilise jusqu'à présent sur mon site qui tourne en Php 5.2.x Comme mentionné plus haut, #INTRODUCTION|couper{800} ou #TEXTE|couper{800} fonctionnent avec les deux versions Php.
Owner

je viens de tester sur un SPIP 3.1.1 de base avec PHP 7.0 chez OVH
#INTRODUCTION
#INTRODUCTION{56}
fonctionne parfaitement et retourne les bonnes valeurs

ton site semble utiliser des plugins (notamment le couteau suisse).
peux tu tester en désactivant toutes les plugins pour savoir si le bug vraiment vient du noyau
merci de ton retour

je viens de tester sur un SPIP 3.1.1 de base avec PHP 7.0 chez OVH #INTRODUCTION #INTRODUCTION{56} fonctionne parfaitement et retourne les bonnes valeurs ton site semble utiliser des plugins (notamment le couteau suisse). peux tu tester en désactivant toutes les plugins pour savoir si le bug vraiment vient du noyau merci de ton retour
Poster

erational ???? a écrit :

je viens de tester sur un SPIP 3.1.1 de base avec PHP 7.0 chez OVH
#INTRODUCTION
#INTRODUCTION{56}
fonctionne parfaitement et retourne les bonnes valeurs

ton site semble utiliser des plugins (notamment le couteau suisse).
peux tu tester en désactivant toutes les plugins pour savoir si le bug vraiment vient du noyau
merci de ton retour

Hello,
Je viens de désactiver le Couteau suisse (le seul plugin que j'utilise). Spip 3.1.1, Mamp 3.5, Php 7.0, Mac OS 10.11.3
Cache désactivé temporairement dans l'admin de Spip.
Le problème est le même. Avec l'article en éditorial de page d'accueil, #INTRODUCTION{781} fonctionne, mais à partir de #INTRODUCTION{782}, plus rien ne s'affiche.
Donc comme tu peux le voir, ça dépend aussi du niveau de la coupe. Et le moment où ça ne marche plus est variable (selon le contenu coupé j'imagine). Très très curieux.

erational ???? a écrit : > je viens de tester sur un SPIP 3.1.1 de base avec PHP 7.0 chez OVH > #INTRODUCTION > #INTRODUCTION{56} > fonctionne parfaitement et retourne les bonnes valeurs > > ton site semble utiliser des plugins (notamment le couteau suisse). > peux tu tester en désactivant toutes les plugins pour savoir si le bug vraiment vient du noyau > merci de ton retour Hello, Je viens de désactiver le Couteau suisse (le seul plugin que j'utilise). Spip 3.1.1, Mamp 3.5, Php 7.0, Mac OS 10.11.3 Cache désactivé temporairement dans l'admin de Spip. Le problème est le même. Avec l'article en éditorial de page d'accueil, #INTRODUCTION{781} fonctionne, mais à partir de #INTRODUCTION{782}, plus rien ne s'affiche. Donc comme tu peux le voir, ça dépend aussi du niveau de la coupe. Et le moment où ça ne marche plus est variable (selon le contenu coupé j'imagine). Très très curieux.
Owner

Je n'arrive toujours pas à reproduire PHP 7.0.2, SPIP 3.1.1 [22913] , serveur linux, avec le même texte
http://mayuratouj.cluster003.ovh.net/spip.php?page=bug&var_mode=recalcul

Je n'arrive toujours pas à reproduire PHP 7.0.2, SPIP 3.1.1 [22913] , serveur linux, avec le même texte http://mayuratouj.cluster003.ovh.net/spip.php?page=bug&var_mode=recalcul
b_b commented 7 years ago
Owner

Je viens de tester de nouveau sous SPIP 3.2.0-dev SVN [23116] en PHP 7.0.8 avec les données que tu nous as fourni, et comme les autres, je ne reproduis toujours pas le bug.

Du coup, je ferme le ticket, mais tu peux l'ouvrir de nouveau ou commenter si jamais le bug se présente de nouveau.
Statut changé à Fermé

Je viens de tester de nouveau sous SPIP 3.2.0-dev SVN [23116] en PHP 7.0.8 avec les données que tu nous as fourni, et comme les autres, je ne reproduis toujours pas le bug. Du coup, je ferme le ticket, mais tu peux l'ouvrir de nouveau ou commenter si jamais le bug se présente de nouveau. **Statut changé à Fermé**
Sign in to join this conversation.
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.