Foros del Web » Programando para Internet » PHP »

Direccionar HEADER segun variable GET no funciona

Estas en el tema de Direccionar HEADER segun variable GET no funciona en el foro de PHP en Foros del Web. hola buen dia. recientemente mi proveedor de hosting ha migrado a una nueva version de php en el servidor, y no estoy seguro si desde ...
  #1 (permalink)  
Antiguo 14/11/2013, 15:31
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 16 años, 8 meses
Puntos: 1
Pregunta Direccionar HEADER segun variable GET no funciona

hola buen dia.

recientemente mi proveedor de hosting ha migrado a una nueva version de php en el servidor, y no estoy seguro si desde entonces ha dejado de funcionar un script que tengo para descargar unos archivos de mi web; es este:

desde el link hago asi:

Código HTML:
http://www.miweb.com/descarga.php?desc=Archivo.zip
en el archivo descarga.php esta esto:

Código PHP:
<?
$desc 
$_GET["desc"];
header("Location: http://www.url.com/carpeta/$desc");
?>
como veran estoy direccionando, segun una variable GET al archivo para su descarga y asi contar sus descargas.

el problema es que ahora cuando le doy click al link se va en blanco y no me pide guardar el archivo, como antes lo hacia...

alguien sabe si ha cambiado algo en el php con esto del header o algo parecido???

gracias de antemano.

saludos.
__________________
www.eris.com.mx
  #2 (permalink)  
Antiguo 14/11/2013, 15:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 7 meses
Puntos: 2534
Respuesta: Direccionar HEADER segun variable GET no funciona

Para nada, tu código es tan simple que de verdad es muy extraño que ya no funcione (es broma).

Las actualizaciones de PHP no afectan para nada como se comporta header(), así que por ahí no va la cosa.

Lo único que sí es bastante probable es que estás usando <? cuando debería ser <?php siempre, pues esa es la forma correcta.

¿Será?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/11/2013, 16:54
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 12 años, 2 meses
Puntos: 214
Respuesta: Direccionar HEADER segun variable GET no funciona

<saludos>
Ehm, a ver...

Tenemos esto

Código HTML:
Ver original
  1. http://www.miweb.com/descarga.php?desc=Archivo.zip


Y ahora es dinámico con esto

Código PHP:
Ver original
  1. <?
  2. $desc = $_GET["desc"];
  3. header("Location: http://www.url.com/carpeta/$desc");
  4. ?>

Y pues así a primera vista, ya no es la misma url no? Antes era descarga.php, ahora no

Entiendo entonces que ahora todos los archivos están en "carpeta" y lo que se recibe en $_GET['desc'] es el nombre del archivo, cierto?
Siendo así yo teorizo que uniendo lo que se recibe del get con la url, queda algo así

Código PHP:
Ver original
  1. $desc = $_GET["desc"]; //supongamos que es archivo.txt
  2. header("Location: http://www.url.com/carpeta/archivo.txt");

Es correcto esto?
Si hasta aquí todo lo que he dicho es correcto, entonces en vez de hacer un header
haz un echo, esto para que tomes tal cual la url que se arma y la pruebes directamente en el navegador

Si funciona directo, el header debería funcionar también

Prueba eso y nos cuentas, suerte con eso! (Ah!! y por supuesto, revisar también lo que pateketrueke comenta respecto al principio del script)

</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 14/11/2013 a las 17:00
  #4 (permalink)  
Antiguo 14/11/2013, 17:00
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Direccionar HEADER segun variable GET no funciona

bueno pues gracias por sus respuestas me ayudaron a saber que no habia cambios en el php...

haciendo la prueba con el echo que comentas comprobe que el link que se generaba estaba bien.

escarbando un poco mas detecte que habia un error en otro script... concretamente en un archivo al que hago un "require" en el archivo descarga.php... resulta que ahi en la consulta a la base debia usar mysqli_query tenia asi:

Código PHP:
Ver original
  1. <?php
  2. require('cgi-bin/contar.php');
  3. $desc = $_GET["desc"];
  4. header("Location: http://www.url.com/carpeta/$desc");
  5. ?>

en el archivo contar.php hay un pequeño contador ahi estaba el error y no en lo otro.

gracias por la ayuda!!!
__________________
www.eris.com.mx

Última edición por Ciberdanny; 14/11/2013 a las 17:24

Etiquetas: direccionar, header, variable
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 04:38.