Foros del Web » Programando para Internet » PHP »

Valores por url algunos no se reciben

Estas en el tema de Valores por url algunos no se reciben en el foro de PHP en Foros del Web. Hola, Tengo unas paginas viejas que han dejado de funcionar correctamente, en una de ellas paso dos valores por url y uno si lo recoge ...
  #1 (permalink)  
Antiguo 13/07/2020, 05:06
 
Fecha de Ingreso: junio-2011
Mensajes: 45
Antigüedad: 12 años, 9 meses
Puntos: 0
Valores por url algunos no se reciben

Hola,

Tengo unas paginas viejas que han dejado de funcionar correctamente, en una de ellas paso dos valores por url y uno si lo recoge y muestra en pantalla mediante un echo pero el otro esta vacio.

Incluso creo una variable nueva ahora, solo para controlar que no este afectada en algun otro lugar, y su valor esta vacio.

En la url pongo: index.php?control=test
Código PHP:
<?php $control = isset($control) ? $control NULL?>

El valor de control es: <?php echo $control?>
Pero al cargar la página $control esta vacio. Son unas paginas viejas, bastante complejas, solo de consulta, en las que tampoco quiero ponerme a reprogramarlas mucho para usar $_GET.

No he visto que hayan sido deprecated ninguna de las instrucciónes que uso aunque se que es desaconsejable hacerlo asi. El fallo sale tanto con PHP 5 como con PHP 7.

¿Alguna idea de porque puede ser que esten vacias ahora las variables que hace un tiempo funcionaban bien.
  #2 (permalink)  
Antiguo 13/07/2020, 06:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Valores por url algunos no se reciben

Buenos días:

Te recomiendo que leas esta página del manual:
https://www.php.net/manual/es/security.globals.php

El script que muestras dependía de que la directiva de configuración register_globals esté activa.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/07/2020, 09:53
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Valores por url algunos no se reciben

recuerda tambien que puedes usar la funcion "extract"

https://www.php.net/extract

Código PHP:
Ver original
  1. <?php extract($_GET);
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #4 (permalink)  
Antiguo 16/07/2020, 08:32
 
Fecha de Ingreso: junio-2011
Mensajes: 45
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Valores por url algunos no se reciben

Muchas gracias!!

Tal como he encontrado info para activar register_globals he añadido la linea

php_flag register_globals on

al php.ini local y he creado un php.ini con solo esa linea para ponerlo en la carpeta raiz pero parece no funcionar.

No se si es correcto lo que he hecho. Pero no obstante no entiendo porque unas variables si se pasan y se reciben bien los valores y otras variables aparecen vacias
  #5 (permalink)  
Antiguo 16/07/2020, 12:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Valores por url algunos no se reciben

No es que sea correcto o incorrecto el uso de register_globals o extract($array);, el problema es que es muy peligroso, porque se pueden inyectar variables fácilmente y, si no tienes las validaciones adecuadas, hay riesgo de accesos no permitidos (por decir lo menos), en el peor escenario, hasta pérdida de datos.

Por otra parte, se considera mala práctica porque no sabes exactamente dónde se definió una variable y complica el mantenimiento del script, justo como te está pasando ahora.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 17/07/2020, 00:44
 
Fecha de Ingreso: junio-2011
Mensajes: 45
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Valores por url algunos no se reciben

Si eso lo sé, como digo en el mensaje inicial ya se que es desaconsejable, y si las programase ahora no las haria así. Pero como digo, son paginas viejas que no las voy a reprogramar completamente y ya no funcionan bien, asi que aunque las ataquen tampoco va a ser mucho peor que ahora.

No es que lo usase para una cosa puntual, es que las paginas están basadas en ello en su estructura, para presentar el visor en una zona, el lenguaje, los años, si detalles o vista general, en fin, que me costaria menos hacerlas de nuevo, las mantengo por nostalgia y no tengo tiempo ahora para rehacerlas.

El hosting me ha permitido poner php 5.3, asi que funcionan de nuevo. Tiraremos unos años más, hasta que no de la opción o hasta que la revienten.

Para quien aterrice aquí, supongo que despues de la 5.3 no se puede activar, al menos como describo en mi mensaje anterior no funcionó.

Etiquetas: url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:52.