[spip-dev] Un strval à rajouter

Salut,
SPIP 2.0 [15127]. Warning: strstr() expects parameter 1 to be string, array given in /Users/yohann/Sites/SPIP/spip-2.0/ecrire/inc/texte.php on line 406

Patch :

Index: Sites/SPIP/spip-2.0/ecrire/inc/texte.php

— Sites/SPIP/spip-2.0/ecrire/inc/texte.php (revision 15124)
+++ Sites/SPIP/spip-2.0/ecrire/inc/texte.php (working copy)
@@ -403,7 +403,7 @@
// http://doc.spip.org/@interdire_scripts
function interdire_scripts($t) {
// rien ?

  • if (!$t OR !strstr($t, ‹ < ›)) return $t;
  • if (!$t OR !strstr(strval($t), ‹ < ›)) return $t;

// echapper les tags asp/php
$t = str_replace(‹ < ›.‹ % ›, ‹ <% ›, $t);

Merci

A+

Et j’en ai encore un : Warning: strlen() expects parameter 1 to be string, array given in /Users/yohann/Sites/SPIP/spip-2.0/ecrire/inc/utils.php on line 614

1) " strstr() expects parameter 1 to be string, *array* given "

2) " Vous ne pouvez pas utiliser la fonction strval() avec des
      *tableaux* ou des objets. "
      (http://php.net/manual/fr/function.strval.php)

Je n'ai pas lu le message d'erreur jusqu'à la fin :frowning:
Mais en tout ça marche chez moi... enfin, ça doit être la mauvaise manière mais le bug n'apparait plus...

ah oui c'est une bonne méthode ça. Cachons les cochonneries sous le tapis ...

Cédric

Je n'ai pas lu le message d'erreur jusqu'à la fin

il faudrait surtout connaître les *conditions* d'apparition du warning,
le debug, les logs...

bref, de quoi débugguer

enfin, ça doit être la mauvaise manière mais le bug n'apparait plus...

ben si tu appliques une fonction qui ne s'applique pas à un tableau
à une variable dont php te dit que c'est un tableau ($t)
et que ça fait disparaître ton warning, je chercherais ailleurs
(en amont)...

Salut,
Je relance le message parce que le bug est encore présent;
( ! ) Warning: strstr() expects parameter 1 to be string, array given in /Users/yohann/Sites/SPIP/spip-2.0/ecrire/inc/texte.php on line 406
Visiblement, la fonction strstr admet des array, il faudrait peut-être controler si la variable demandé est un array avant de la passer dans la fonction ?

le commentaire de denis vaut toujours.
donne des infos pour comprendre ou reproduire le bug, plutot qu’un patch pour le cacher.
Cédric

non justement.
le warning te dit clairement que la fonction strstr attend une string et que là, comme elle reçoit un array, et ben "ça va pas".

tu contournes ce warning en appliquant à l'argument passé à strstr la fonction strval qui, elle aussi, ne s'applique que à une string.

si ton warning disparait, c'est que l'argument que reçoit strval n'est pas un array, donc que la cause de *ce* warning a disparue mais pas grace à une modification du type de l'argument (array => string ou string => int) ; grace (!) à autre chose *en amont*...

et quand *en amont* quelque chose envoit un array à strstr, alors là tu as ton warning.

Justement, je pensais plutôt que si l'on découvrait un tableau, on pourrait ou bien ne pas le passer à la fonction avec un simple test, ou sinon décomposer le tableau et passer le tableau dedans.

en fouillant un peu, j’arrive à trouver que le problème vient du plugins Menus et zen-garden.
Sur la page d’ajout de menu, l’erreur apparait :

( ! ) Warning: strstr() expects parameter 1 to be string, array given in /Users/yohann/Sites/SPIP/spip-2.0/ecrire/inc/texte.php on line 406
Call Stack

Time Memory Function Location

1 0.0008 711704 {main}( ) …/index.php**:0
2 0.1033 5728288 exec_zengarden( ) …/index.php
:158
3 0.2467 14375808 recuperer_fond( ) …/zengarden.php
:33
4 0.2503 14702312 evaluer_fond( ) …/utils.php
:1676
5 0.2503 14702312 inclure_page( ) …/assembler.php
:570
6 0.2517 14830040 public_produire_page_dist( ) …/assembler.php
:215
7 0.2680 16392272 public_parametrer_dist( ) …/assembler.php
:239
8 0.3320 19253952 html_61c7994aadce043bbeb0943d604c58cc( ) …/parametrer.php
:103
9 1.6273 20685528 interdire_scripts( ) …/composer.php(51) : eval()'d code
:195
10 1.6273 20685856 strstr ( ) …/texte.php
:**406

Sur ces deux exec, l’erreur apparait donc. Mais quand ces plugins sont activés, l’erreur apparait aussi dans le public.

En espérant avoir apporté un peu d’eau au moulin…

Yohann Prigent <prigent.yohann <at> gmail.com> writes:

Et j'en ai encore un : Warning: strlen()
expects parameter 1 to be string, array given in
/Users/yohann/Sites/SPIP/spip-2.0/ecrire/inc/utils.php on line 614
Salut,SPIP 2.0 [15127]. Warning: strstr() expects parameter 1 to be string,

array

given in /Users/yohann/Sites/SPIP/spip-2.0/ecrire/inc/texte.php on line
406

Patch :

Index: Sites/SPIP/spip-2.0/ecrire/inc/texte.php

--- Sites/SPIP/spip-2.0/ecrire/inc/texte.php (revision 15124)
+++ Sites/SPIP/spip-2.0/ecrire/inc/texte.php (working copy)
<at> <at> -403,7 +403,7 <at> <at>
//

J'ai des problèmes avec mes thèmes

Warning: strstr() expects parameter 1 to be string, array given in
C:\xampp\htdocs\spip\ecrire\inc\texte.php on line 408

Warning: strstr() expects parameter 1 to be string, array given in
C:\xampp\htdocs\spip\ecrire\inc\texte.php on line 408

Warning: strstr() expects parameter 1 to be string, array given in
C:\xampp\htdocs\spip\ecrire\inc\texte.php on line 408

J'ai spip dernière version + CFG + spip bonux + ZZIP + Zen Garden

Peut tu m'aider ???