Switch avec Eayspphp 3.0 [Résolu]

Signaler
Messages postés
7
Date d'inscription
dimanche 5 octobre 2008
Statut
Membre
Dernière intervention
24 décembre 2009
-
Messages postés
7
Date d'inscription
dimanche 5 octobre 2008
Statut
Membre
Dernière intervention
24 décembre 2009
-
Bonjour,
Je développe un site sous easyphp 1.6 et tout marche bien.

J'ai téléchargé la version de easy 3.0 et là problème: toutes les pages appellées grâce à un switch($action) me conduit à la page par défaut du swicht!
Par exemple, quand je clique sur le lien recherche.php?action=rechercher_ville&ville=paris pour avoir la liste des personnes qui résident à Paris, j'arrtéris sur la page par défaut rechercher.php (alorsd que sous easyphp 1.6 tout marche bien).
De même mes formulaires ne transmettent pas les données...

Veuiller m'aider!



The sooner, the better!

2 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Bonsoir,

Les formulaires envoient bien les données, mais c'est ton script qui ne les récupère pas correctement.
Je ne sais pas quelle version de PHP easyphp 1.6 embarquait, mais ton problème semble lié à register globals qui était à ON et qui vaut maintenant OFF.
register_globals est une directive de configuration de PHP qui permet d'extraire automatiquement les variables passées dans $_GET, $_POST, $_COOKIE, $_ENV dans des variables PHP. C'est une directive qui, quand elle est activée, est source de failles de sécurité, c'est pourquoi elle a (depuis longtemps) été désactivée par défaut dans la configuration de PHP.

Pour pallier le désagrément, plusieurs options :
- spécifier php_flag register_globals on dans un fichier .htaccess
- utiliser ini_set('register_globals', 1) en début de script
- extraire les variables avec extract($_POST)
Aucune de ces méthodes n'est recommandée, mais chacune permettra de rétablir le fonctionnement obsolète (pour les 2 premières) ou de le simuler (pour la troisième).

L'autre solution, qui est la seule vraie solution viable et sécurisée est d'extraire manuellement toutes les variables $_GET ou $_POST :
$user_id = intval($_GET['user_id']);

Cela peut paraître fastidieux, mais c'est indispensable pour garder un contrôle total sur les variables qui sont passées au script.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
7
Date d'inscription
dimanche 5 octobre 2008
Statut
Membre
Dernière intervention
24 décembre 2009

Merci! C'est excellent!
The sooner, the better!