Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/05/2008, 16:55
javierav
 
Fecha de Ingreso: noviembre-2007
Ubicación: Córdoba
Mensajes: 70
Antigüedad: 16 años, 6 meses
Puntos: 1
Re: Problema con url al hacer un conteo de descargas

Hola.

Tu problema está en que en la base de datos almacenas tanto url de los archivos externos como nombres de archivo de tus archivos locales. Y en el segundo código, en el header, pones siempre la ruta local mas lo que se obtenga de la base de datos.

Si en la base de datos tienes dos registros, a) miarchivo.zip y b)http://sitio.com/archivoexterno.zip, cuando se envíe el header estarás enviando para, a) http://localhost/counter/descargas/miarchivo.zip pero para b) http://localhost/counter/descargas/http://sitio.com/archivoexterno.zip

Una solución podría ser detectar si en el campo devuelto de la base de datos existe 'http://' y enviar una cabecera u otra en función de lo que sea. Pero es bastante chapucera. Podría ser algo asi:

Código PHP:
//Si comienza por http, https o ftp...
if(preg_match("#^(http|https|ftp)://#"$archivo))
{
  
//... se trata de una url externa
  
header("Location: $archivo");
}
else
{
  
//si no, se trata de un archivo local
  
header("Location: http://localhost/counter/descargas/$archivo");

Por cierto, investiga sobre la inyección de código SQL, que tu script falla en eso.

Saludos.
__________________
http://www.javierav.com

Última edición por javierav; 11/05/2008 a las 17:00