Switch avec Eayspphp 3.0

Résolu
cs_msoufianou Messages postés 7 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 24 décembre 2009 - 24 déc. 2009 à 13:59
cs_msoufianou Messages postés 7 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 24 décembre 2009 - 24 déc. 2009 à 20:01
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

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
24 déc. 2009 à 17:33
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à ;)
3
cs_msoufianou Messages postés 7 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 20:01
Merci! C'est excellent!
The sooner, the better!
0
Rejoignez-nous