PHP automáticamente "OBTENER" Variables
-
06-07-2019 - |
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?
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