Question

Je conçois un nouveau site Web pour mon entreprise et j'essaie d'implémenter la navigation par commutateur, ce que j'avais déjà utilisé sur tous mes sites.

<?php
switch($x) {

default:
include("inc/main.php");
break;

case "products":
include("inc/products.php");
break;

}
?>

Pour une raison quelconque, lorsque je vais sur index.php? x = products, rien ne se passe, il affiche toujours inc / main.php, autrement dit, il n'a pas détecté la variable X à partir de l'URL. Est-ce quelque chose à voir avec les variables globales?

Était-ce utile?

La solution

Oui, correctement dans votre configuration PHP, register_globals a été désactivé, car cela est extrêmement dangereux.

Il suffit de mettre:

$x = 

Oui, correctement dans votre configuration PHP, register_globals a été désactivé, car cela est extrêmement dangereux.

Il suffit de mettre:

<*>

en haut de votre script.

Vous pouvez également utiliser $ _GET si vous souhaitez uniquement que cela fonctionne avec la méthode HTTP GET . J'ai vu des gens affirmer que $ _ REQUEST était en quelque sorte peu sûr, mais aucune preuve ne le prouve.

REQUEST['x']

en haut de votre script.

Vous pouvez également utiliser $ _GET si vous souhaitez uniquement que cela fonctionne avec la méthode HTTP GET . J'ai vu des gens affirmer que $ _ REQUEST était en quelque sorte peu sûr, mais aucune preuve ne le prouve.

Autres conseils

Il semble que vos hôtes Web précédents aient tous utilisé register_globals et que votre code en dépend. Il s'agit d'un paramètre dangereux qui a été supprimé à juste titre dans PHP 6.0! Utilisez le commutateur ($ _GET ['x']) { à la place.

Vous devriez utiliser $ _GET pour lire ces variables. Il existe une fonction obsolète appelée register_globals , mais je ne conseillerais certainement pas de l'utiliser, car il s'agit d'un risque potentiel pour la sécurité.

Vous pouvez utiliser http://php.net/manual/es/function.extract .php pour extraire les variables si vous voulez le faire, mais gardez à l'esprit que cela permet à tout utilisateur de définir des variables avec le contenu souhaité dans votre script, ce qui le rend aussi peu sûr que d'utiliser register_globals

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top