OVH Cloud OVH Cloud

mais qu'est ce qu'ils nous ont fait?

13 réponses
Avatar
Etienne SOBOLE
Salut.

suis je seul a avoir remarqué que la version
4.3.10 du php gére différement le foreach ?

$arr = array('a' => 'test');
foreach($arr as $value)
{
print_r($value);
}

dans ce cas, $value ne vaut pas 'test', mais un tableau a deux entrées [0] =
'a' et [1] = 'test'

C'est quoi ce bordel?
je suis passé de la version 4.3.1 a la 4.3.10 (et maintenant 4.3.11)
a partir de quand est ce que je comportement a changé?

Etienne

3 réponses

1 2
Avatar
Etienne SOBOLE
moi je n'affirme rien, je cite juste :
http://minilien.com/?yqtiKD3lHf
L'incident a été signalé 9 fois et 9 fois la réponse a été la même :
pas un pb causé par php mais par une extension genre Zend ou autre


ouai bon.
effectivement, le probleme est bien la.
mais le pire de tout, c'est que meme si ton script n'est pas encodé, le seul
présence de ioncube loader dans le php.ini suffit a déclancher le bug semble
t-il... glups...
je ne peux malheureusement pas me passe de ioncube loader car j'utilise un
petit bout de code crypté !!!
donc ben y a pas 10.000 solutions j'ai pluqu'a remplacer tous les

foreach($arr as $value)
par
foreach($arr as $__trash => $value)

N'etant pas une brute des expressions régulières y t-il quelqu'un qui
pourrait me filer l'expression régulière qui cherche
les foreach n'ayant pas le "=>"

c'est un peu complexe a faire parce que bien sur on peut avoir des truc
genre
foreach((array)$arr as ...)
et d'autre encore plus complexe... glups.

pour l'instant j'ai fais
$expr = "/foreachs*(s*(S+)s*ass*(S+)s*)/is";
et je test apres coup s'il existe => dans la sequence trouvée...

mais je suis pas tres sur que ca va marche partout.

merci
Etienne

Avatar
Thibaut Allender
foreach($arr as $value)
par
foreach($arr as $__trash => $value)

N'etant pas une brute des expressions régulières y t-il quelqu'un qui
pourrait me filer l'expression régulière qui cherche
les foreach n'ayant pas le "=>"


$expr = "foreach([^=]+)"; ?

ici je ne cherche que ceux qui ne contiennent pas "=", mais on pourrait
aussi tester ">" :
$expr = "foreach([^>]+)";

j'ai pas testé

--
thibaut allender | freelance | http://capsule.org

Avatar
Nadine St-Amand
P'tit Marcel wrote:
http://minilien.com/?yqtiKD3lHf

L'incident a été signalé 9 fois et 9 fois la réponse a été la même :
pas un pb causé par php mais par une extension genre Zend ou autre



Ca me semble logique car j'ai eu ce probleme sur le serveur d'un de mes
clients et pas sur le mien, alors que nous avons exactement la meme
version de php (4.3.10). Alors nous etions un peu perplexes.....

J'ai pas acces au reste de la config de mon client alors je ne peux pas
verifier pour tous ces modules.

Comme j'ai enormement de code crucial base sur des foreach
je trouve ca terrible. Je basais des validations de liste de variables
sur ces foreach. J'ai du reecrire une application entiere...

--
Nadine St-Amand
Génération de code, sql2php : http://www.phpbackend.com/

1 2