En fait le script gère l'affichage d'un menu déroulant via le système de template Phpbb et pour moi le problème vient bien du foreach car j'ai deux menus déroulants tirés eux d'une base de donnée et donc généré via un mysql_fetch_array et cela fonctionne sur le mutualisé comme en local.
Le global est la justement pour que la fontion prenne bien en compte le template, son fonctionnement a-t-il été modifié par ovh ? Je pense pas, car dans un premier temps la fonction marche c'est plutard que ça se gatte.
En plus j'ai déjà eu l'occasion de tester le script sur un dédié ovh et cela marchait aussi...
Le problème se déroule de la manière suivante, quand j'affiche mon formulaire les menus sont bien présent mais dès que je clique pour valider et passer à la page suivante en ayant choisi une option du menu, le bug est provoqué et le menu déroulant se vide. Au lieu de mettre "selected" sur l'option voulu, le foreach plante et le bloc du template refuse de se créer se qui retire l'affichage des options.
Code PHP:
$selected = ($key == $valeur) ? ' selected="selected"' : '';
Je me demande si le script ne plante pas ici, au moment où il vérifie la variable $valeur qui se trouve être de type $_SESSION["variable"], une restriction de la nouvelle version de php ou de l'hébergeur ?
Dans mon ficher index.php ex:
Code PHP:
/* debut = menu déroulant des mois */
TableauSelect($mois, @$_SESSION["mois"], 'mois_opt');
/* fin = menu déroulant des mois */
Dans mon ficher index.tpl ex:
Code PHP:
<select name="mois">
<option value="{mois_opt.VALUE}"{mois_opt.SELECTED}>{mois_opt.OPTION}option>
select>
Je penche de plus en plus pour un rejet de la variable SESSION par le foreach sur le mutu mais je ne sais pas comment le vérifier et/ou passer outre.