Pregunta

Estoy diseñando un nuevo sitio web para mi empresa y estoy tratando de implementar la navegación por interruptor, que es lo que he usado en todos mis sitios en el pasado.

<?php
switch($x) {

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

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

}
?>

Por alguna razón, cuando voy a index.php? x = products no sucede nada, todavía muestra inc / main.php, en otras palabras, no ha detectado la variable X desde la URL. ¿Tiene esto algo que ver con las variables globales?

¿Fue útil?

Solución

Sí, su configuración PHP tiene correctamente tiene register_globals desactivado, porque eso es increíblemente inseguro.

Solo pon:

$x = 

Sí, su configuración PHP tiene correctamente tiene register_globals desactivado, porque eso es increíblemente inseguro.

Solo pon:

<*>

en la parte superior de su secuencia de comandos.

También puede usar $ _GET si específicamente desea que esto funcione para el método HTTP GET . He visto a algunas personas afirmar que $ _REQUEST es de alguna manera inseguro, pero no hay evidencia que lo respalde.

REQUEST['x']

en la parte superior de su secuencia de comandos.

También puede usar $ _GET si específicamente desea que esto funcione para el método HTTP GET . He visto a algunas personas afirmar que $ _REQUEST es de alguna manera inseguro, pero no hay evidencia que lo respalde.

Otros consejos

Parece que todos sus servidores web anteriores usaron register_globals y su código se basa en eso. ¡Esta es una configuración peligrosa y se eliminó legítimamente en PHP 6.0! Utilice el interruptor ($ _ GET ['x']) { en su lugar.

Debe usar $ _GET para leer estas variables. Hay una función obsoleta llamada register_globals , pero definitivamente no recomendaría usar esto, ya que es un riesgo potencial de seguridad.

Puede usar http://php.net/manual/es/function.extract .php para extraer las variables si desea hacerlo, pero tenga en cuenta que esto le permite a cualquier usuario establecer variables con el contenido que desea en su script, lo que lo hace tan inseguro como usar register_globals

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top