parse error après passage à php 5.6

Bonjour,

Voici ce qu’un utilisateur me demande :

Sur trois sites, après passage à PHP 5.6 ==>
Parse error : syntax error, unexpected ’[’ in /home/…/www/plugins/auto/escal/v3.87.47/formulaires/contact.php on line 149

Y aurait-il un rapport de cause à effet ?

Et voici le code concerné : la ligne 149 correspond à ‹ headers ›=> [

$corps= array(
‹ from ›=>$email_from,
‹ texte ›=>supprimer_tags($message),
‹ html ›=> $message_html,
‹ headers ›=> [
"X-Originating-IP: ".$GLOBALS[‹ ip ›]
],
);

Et comme je n’y connais rien en php … Qu’est-ce qui ne va pas dans ce code pour php 5.6 ? Et comment y remédier ?

Je peux bien sûr fournir plus de code si nécessaire.

Merci

JC

Bonsoir,

Pourquoi mettre l’ip dans l headers du mails.

Si tu maitrises pas le php, des plugins spip font très bien un formulaire de contact, autant les utiliser non ?

Parce que je veux proposer une page contact paramétrable dans Escal sans plugin additionnel

A l’époque, un spipeur (Arnaud Bérard pour être précis) m’avait fortement aidé à concevoir cette page contact.

Et jusque là, tout fonctionnait parfaitement et j’aimerais juste que ça continue.

Voilà

JC

Pour compléter : un autre utilisateur me dit

remplacer $GLOBALS[‹ ip ›] par $_SERVER[« REMOTE_ADDR »] peut-être ? $GLOBALS est supprimé en php5.6 pour des question de sécurité il me semble

Fa_b

Le 14 novembre 2017 à 19:54, Jean-Christophe Villeneuve <jcvilleneuve@cegetel.net> a écrit :

Parce que je veux proposer une page contact paramétrable dans Escal sans plugin additionnel

A l’époque, un spipeur (Arnaud Bérard pour être précis) m’avait fortement aidé à concevoir cette page contact.

Et jusque là, tout fonctionnait parfaitement et j’aimerais juste que ça continue.

Voilà

JC

Le 14/11/2017 à 19:31, Pierre KUHN a écrit :

Bonsoir,

Pourquoi mettre l’ip dans l headers du mails.
Si tu maitrises pas le php, des plugins spip font très bien un formulaire de contact, autant les utiliser non ?

Le 14 novembre 2017 à 19:00, Jean-Christophe Villeneuve <jcvilleneuve@cegetel.net> a écrit :

Bonjour,

Voici ce qu’un utilisateur me demande :

Sur trois sites, après passage à PHP 5.6 ==>
Parse error : syntax error, unexpected ’[’ in /home/…/www/plugins/auto/escal/v3.87.47/formulaires/contact.php on line 149

Y aurait-il un rapport de cause à effet ?

Et voici le code concerné : la ligne 149 correspond à ‹ headers ›=> [

$corps= array(
‹ from ›=>$email_from,
‹ texte ›=>supprimer_tags($message),
‹ html ›=> $message_html,
‹ headers ›=> [
"X-Originating-IP: ".$GLOBALS[‹ ip ›]
],
);

Et comme je n’y connais rien en php … Qu’est-ce qui ne va pas dans ce code pour php 5.6 ? Et comment y remédier ?

Je peux bien sûr fournir plus de code si nécessaire.

Merci

JC


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc

Pierre KUHN
http://www.voisins-spipeurs.net


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc

Le 14/11/2017 à 21:53, Fabrice Véronneau a écrit :

$GLOBALS est supprimé en php5.6

non, pas du tout $GLOBALS continue à exister,
et est utilisé dans spip 3.2 qui est compatible avec php 7.

(c'est register_globals qui est déprécié et c'est heureux)

JL

Salut

Je suppose que le mieux est de remplacer l’écriture racccourcie [] par array()

   'headers'=> array(
            "X-Originating-IP: ".$GLOBALS['ip']
        ),

Km

Le 15/11/2017 à 14:24, cam.lafit@azerttyu.net a écrit :

Salut

Je suppose que le mieux est de remplacer l’écriture racccourcie par array()

    'headers'=> array(
             "X-Originating-IP: ".$GLOBALS['ip']
         ),

Je m’étais dit la même chose au début, mais c'est pas logique… si justement il dépasse PHP 5.4, alors ces sont compris ! Pas l’inverse donc. Ou alors il ment en disant qu’il est en php 5.6 :slight_smile:

MM.

Merci de tenter de m'aider

Je vais demander à l'utilisateur intéressé de tester

Le 15/11/2017 à 15:06, Matthieu Marcillaud a écrit :

Le 15/11/2017 à 14:24, cam.lafit@azerttyu.net a écrit :

Salut

Je suppose que le mieux est de remplacer l’écriture racccourcie par array()

&#39;headers&#39;=&gt; array\(
         &quot;X\-Originating\-IP: &quot;\.$GLOBALS\[&#39;ip&#39;\]
     \),

Je m’étais dit la même chose au début, mais c'est pas logique… si justement il dépasse PHP 5.4, alors ces sont compris ! Pas l’inverse donc. Ou alors il ment en disant qu’il est en php 5.6 :slight_smile:

MM.
_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Salut

Je suppose que le mieux est de remplacer l’écriture racccourcie par
array()

    'headers'=> array(
             "X-Originating-IP: ".$GLOBALS['ip']
         ),

Je m’étais dit la même chose au début, mais c'est pas logique… si justement
il dépasse PHP 5.4, alors ces sont compris ! Pas l’inverse donc. Ou alors
il ment en disant qu’il est en php 5.6 :slight_smile:

Oui ça ne semble pas logique mais vu le message d'erreur, je ne vois
pas d'autres options.
J'opterai pour le mélange des genres. Je vois qu'il y a un dans un
array() , je ne suis pas sur que ce soit accepté à tous les coups.

Après avis perso, n'apporte pas grand chose et a plutôt tendance à
casser du code pour rien. Autant dans ce cas cas garder array() de
bout en bout

Km

Le 15/11/2017 à 16:07, cam.lafit@azerttyu.net a écrit :

Après avis perso, n'apporte pas grand chose et a plutôt tendance à
casser du code pour rien. Autant dans ce cas cas garder array() de
bout en bout

Ouais, PHP c'est pas du Python :stuck_out_tongue:

--
nicod_

Hello,

Après avis perso, n'apporte pas grand chose et a plutôt tendance à
casser du code pour rien. Autant dans ce cas cas garder array() de
bout en bout

Il a quand même la bonne idée d'harmoniser la syntaxe entre les
différents langage :).

Cela casse du code pour rien car il y a encore dans la nature beaucoup
trop de version de PHP qui ne sont plus supportée. Pour rappel, on
devrait tous être minimum en php 7.0 (voir
PHP: Supported Versions).

Alors oui, je fais l'avocat du diable et c'est plus safe d'utiliser
array(), mais il va falloir s'y faire à cette syntaxe, parce qu'elle
risque fort de ce généraliser !

Le 15/11/17 à 16:07, cam.lafit@azerttyu.net a écrit :

Salut

Je suppose que le mieux est de remplacer l’écriture racccourcie par
array()

    'headers'=> array(
             "X-Originating-IP: ".$GLOBALS['ip']
         ),

Je m’étais dit la même chose au début, mais c'est pas logique… si justement
il dépasse PHP 5.4, alors ces sont compris ! Pas l’inverse donc. Ou alors
il ment en disant qu’il est en php 5.6 :slight_smile:

Oui ça ne semble pas logique mais vu le message d'erreur, je ne vois
pas d'autres options.
J'opterai pour le mélange des genres. Je vois qu'il y a un dans un
array() , je ne suis pas sur que ce soit accepté à tous les coups.

Après avis perso, n'apporte pas grand chose et a plutôt tendance à
casser du code pour rien. Autant dans ce cas cas garder array() de
bout en bout

Km
_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc