Foros del Web » Programando para Internet » PHP »

contador con archivos

Estas en el tema de contador con archivos en el foro de PHP en Foros del Web. buenas masters, tengo un contador de descargas por archivo, me funciona ok, pero con algunos archivos no... por ejemplo si pongo un archivo .pm4 o ...
  #1 (permalink)  
Antiguo 31/03/2010, 12:59
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
contador con archivos

buenas masters, tengo un contador de descargas por archivo, me funciona ok, pero con algunos archivos no...
por ejemplo si pongo un archivo .pm4 o .rar me aparece el cuadro de dialogo si pincho en aceptar me suma la descarga si apreto cancelar no hace nada, ahora bien si es un archivo doc o txt mas liviano me suma la descarga de igual forma, hay alguna otra manera de sumar descargas?

recibo ideas :)

Código PHP:
Ver original
  1. <?php
  2. include "save.php"; // Aplicamos seguridad a la página
  3. include ("conexion.php");
  4. $id_archivo = $_GET[archivo];
  5.  
  6. $sql = mysql_query("SELECT * FROM archivos WHERE id = '$id_archivo'");
  7. while ($dato = mysql_fetch_array($sql))
  8. {
  9. $archivo = "$dato[archivo]";
  10. $folder = "$dato[usuario]";
  11. }
  12. $ruta = "./uploads/".$folder."/".$archivo."";
  13. header ("Content-Disposition: attachment; filename=$archivo");
  14. header("Content-Type: application/force-download");
  15. readfile($ruta);
  16.  
  17. $sql = mysql_query("UPDATE archivos SET descargas = descargas + 1  WHERE id = '$id_archivo'");
  18. ?>
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #2 (permalink)  
Antiguo 31/03/2010, 13:03
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: contador con archivos

$id_archivo = $_GET[archivo]; <- te faltaron las comillas
$id_archivo = $_GET["archivo"];

por otro lado que es lo que quieres lograr especificamente.. con eso que tienes debería funcionar
tiene algún problema?
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 31/03/2010, 13:07
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: contador con archivos

pues el tema de las comillas no creo que sea el problema de hecho lo probe y sigue igual, el problema es que si me funciona con archivos grandes, como un avi o mp4 o .mov
son los archivos pequeños a los que le hace igual la suma (como click) y no como descarga.

digo hay alguna forma de saber si aprete aceptar o cancelar en el prompt que aparece, y sumar de acuerdo a ello.

Saludos.
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #4 (permalink)  
Antiguo 31/03/2010, 14:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: contador con archivos

Pon tu sql antes de enviar el buffer del archivo, el problema que tienes es que al presionar "cancelar" se interrumpe la conexión y como readfile() no ha terminado se corta y ya no procesa el SQL. En archivos pequeños el buffer se envía rápidamente por ende se ejecuta el SQL y no importa presiones "cancelar" o "aceptar" el buffer ya se envío.

Actualmente no hay forma de controlar o ver si el usuario presiono aceptar o cancelar en su browser, ya que como sabrás PHP se ejecuta en el servidor y no en el cliente.

Saludos.
  #5 (permalink)  
Antiguo 31/03/2010, 16:02
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: contador con archivos

pues si lo pongo antes de leer el buffer pues me lo toma como click :/ y no como descarga.
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #6 (permalink)  
Antiguo 31/03/2010, 16:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: contador con archivos

Es lo que debes de entender, hagas click o no eso no lo puedes reconocer desde PHP, por lo que no es fiel tu sistema.

Los archivos pequeños se envian muy rápido (por su menor peso) por eso se ejecuta el código presiones o no cancelar.

Etiquetas: contador
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 00:42.