PHP automatiquement "GET" Variables
-
06-07-2019 - |
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?
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