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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top