[Résolu] PB menu déroulant depuis changement d'hébergeur

Petit nouveau ! | 3 Messages

26 janv. 2009, 13:08

Bonjour,

J'avais créé une page web avec deux listes déroulantes.

La première liste désignait une catégorie. Son contenu était directement dans le code

La deuxième liste se mettait à jour lorsque l'on modifié la première. Son contenu était alors le résultat d'une requete.

Code : Tout sélectionner

<form method="post" name="form1" action="<?php echo $PHP_SELF;?>"> <select name="Cat" class="bouton" onchange="submit();"> <?PHP echo "<option value='0'>Catégorie ?"; if ($Cat == "1") { print("<option selected value=\"1\">Categorie1"); } else { print("<option value=\"1\">Categorie1"); } if ($Cat == "2") { print("<option selected value=\"2\">Categorie2"); } else { print("<option value=\"2\">Categorie2"); } echo "</select>"; echo "<select name=\"site\" class=\"bouton\" onchange=\"submit();\">"; require "ezine_db.inc.php"; $db = ezine_connecte_db(); $requetetype = "SELECT ID_LIENS,TITRE FROM `liens` WHERE CAT_LIENS='$Cat' order by Titre"; $resulttype = mysql_query($requetetype,$db); echo "<option value=\"\">Ou?"; while ($choix = mysql_fetch_object($resulttype)){ if ($choix->ID_LIENS==$site) { print("<option selected value=\"".$choix->ID_LIENS."\">".$choix->TITRE.""); } else { print("<option value=\"".$choix->ID_LIENS."\">".$choix->TITRE.""); } } ?> </select></td> <?php if ($site=="") { $page="vide.htm";} else { $page="selectliens2.php?site=".$site;} echo "<br><br>"; ?>
Depuis un récent changement d'hébergeur ce code ne fonctionne plus.

En selectionnant une position sur la liste catégorie, celle ci revient à sa position initiale.

En cherchant un peu j'ai vu que la variable $PHP_SELF; n'était pas connu si register_globals était paramétré en 'off'

Effectivement sur mon ancien hébergeur ce paramètre était sur 'on '
J'ai lu qu'il suffisait de renseigner cette variable avec :

Code : Tout sélectionner

php $PHP_SELF = $HTTP_SERVER_VARS["PHP_SELF"];
Cependant cela ne fonctionne pas.


Avez vous des pistes pour me dire pourquoi cela ne fonctionne pas ?
Avez vous des conseils pour refaire un code propre permettant le meme usage ?

Merci d'avance !!!
Modifié en dernier par n0va le 26 janv. 2009, 16:41, modifié 1 fois.

Mammouth du PHP | 991 Messages

26 janv. 2009, 13:32

$HTTP_SERVER_VARS["PHP_SELF"] => Est de mémoire pour des vielles versions.

Essaye avec : $_SERVER["PHP_SELF"]

Bye Hawk
DevOps, Symfony4, Hoa

Petit nouveau ! | 3 Messages

26 janv. 2009, 13:50

Merci au moins je peux déja afficher le contenu de cette variable. C'est un bon début.
J'aimerai récupéré la valeur de la variable $cat au rechargement de la page.
Je pense que c'est la ou ça péche car celle ci est vide.
Comment puis je faire ?

Mammouth du PHP | 991 Messages

26 janv. 2009, 13:58

Tout simplement la testé :
$cat = (isset($_POST['cat']) and !empty($_POST['cat']))?$_POST['cat']:"Vide";
Je te conseille de te renseigné sur les SuperGlobales :
http://www.phpfrance.com/tutoriaux/inde ... re-de-base
http://www.siteduzero.com/tutoriel-3-14 ... bales.html

Bye Hawk
DevOps, Symfony4, Hoa

Petit nouveau ! | 3 Messages

26 janv. 2009, 16:12

Merci beaucoup ça m'a beaucoup aidé !!! C'était bien le problème du passage des variables.