PHP "GET" automaticamente variabili
-
06-07-2019 - |
Domanda
Sto progettando un nuovo sito Web per la mia azienda e sto cercando di implementare la navigazione switch, che è quello che ho usato su tutti i miei siti in passato.
<?php
switch($x) {
default:
include("inc/main.php");
break;
case "products":
include("inc/products.php");
break;
}
?>
Per qualche ragione quando vado a index.php? x = products non succede nulla, visualizza ancora inc / main.php, in altre parole non ha rilevato la variabile X dall'URL. È qualcosa a che fare con le variabili globali?
Soluzione
Sì, la tua configurazione di PHP ha correttamente disattivato register_globals
, perché è incredibilmente insicuro.
In poche parole:
$x = Sì, la tua configurazione di PHP ha correttamente disattivato register_globals
, perché è incredibilmente insicuro.
In poche parole:
<*>
nella parte superiore della tua sceneggiatura.
Puoi anche usare $ _GET
se vuoi che funzioni esattamente con il metodo HTTP GET
. Ho visto alcune persone affermare che $ _REQUEST
è in qualche modo insicuro, ma nessuna prova a sostegno di ciò.
REQUEST['x']
nella parte superiore della tua sceneggiatura.
Puoi anche usare $ _GET
se vuoi che funzioni esattamente con il metodo HTTP GET
. Ho visto alcune persone affermare che $ _REQUEST
è in qualche modo insicuro, ma nessuna prova a sostegno di ciò.
Altri suggerimenti
Sembra che i tuoi precedenti webhost abbiano usato tutti register_globals e il tuo codice si basa su questo. Questa è un'impostazione pericolosa ed è stata giustamente rimossa in PHP 6.0! Utilizzare invece l'opzione ($ _ GET ['x']) {
.
Dovresti usare $ _GET per leggere queste variabili. C'è una funzione deprecata chiamata register_globals , ma sicuramente non consiglierei di usarlo, poiché è un potenziale rischio per la sicurezza.
Puoi usare http://php.net/manual/es/function.extract .php per estrarre le variabili se si desidera farlo, ma tenere presente che ciò consente a qualsiasi utente di impostare variabili con il contenuto desiderato nello script, il che lo rende insicuro come l'utilizzo di register_globals