Foros del Web » Programando para Internet » PHP »

problemas contador de dowloads

Estas en el tema de problemas contador de dowloads en el foro de PHP en Foros del Web. Hola, estoy programando un código para contar downloads, de manera que al hacer click en un enlace te sume 1 a un determinado campo, pues ...
  #1 (permalink)  
Antiguo 03/11/2004, 19:30
 
Fecha de Ingreso: septiembre-2004
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
problemas contador de dowloads

Hola, estoy programando un código para contar downloads, de manera que al hacer click en un enlace te sume 1 a un determinado campo, pues bien estoy atascado con el controlador de eventos onClick de dicho enlace:

onClick="<?php mysql_query("UPDATE `tabla wallpapers 1` SET Ranking=concat(Ranking+1) WHERE id='$rowph1[0]'");
?>"

Pues bien, esto funciona y me cuenta uno cada vez que clickeo pero el problema esta en que al cargar la página tb me aumenta en 1 ¿por que, como lo soluciono, es mejor pasarle el parametro id y que otro archivo php lo actualize?, me gustaria que lo hiciera todo desde una misma página.

SalU2.
__________________
"El miedo mata la mente. El miedo es la muerte que conduce a la destrucción total. Afrontaré mi miedo. Permitiré que pase sobre mí y a través de mí. Y cuando haya pasado giraré mi ojo interior para escrutar su camino. Allá donde haya pasado el miedo ya no habrá nada. Sólo estaré yo."
  #2 (permalink)  
Antiguo 03/11/2004, 21:59
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
El PHP se ejecuta SIEMPRE antes de que cargue la página. Esa mezcla de HTML/JavaScript no se puede hacer de la forma en la que tú la haces.
La forma más primitiva de hacer eso es poner el enlace a otro script que elige el archivo de descarga desde la BD.
Código:
<a href="descargas.php?id=3">
Y en ese descargas.php tienes un código básico:
Código PHP:
// descargas.php
.
// Primero haces la conexión a la BD. Yo no lo hago aqui.

// Luego buscas el archivo correspondiente en la BD
$sql "SELECT * FROM `tabla wallpapers 1` WHERE id_descarga = ".$_GET['id'];
$result mysql_query($sql);
$row mysql_fetch_assoc($result);
$nombre_archivo $row['archivo'];

//Ya tienes el archivo. Ahora sumas 1 al campo corespondiente.
$sql "UPDATE `tabla wallpapers 1` SET Ranking=Ranking+1 WHERE id='".$_GET['id']."'";
mysql_query($sql);
header("Location: ".$nombre_archivo); 
Como te digo.. eso sería a un nivel ultra básico... pero funciona para alugnos archivos como .zip

Pero lo que quiería era darte una idea de cómo utilizar el enlace... no puedes llamar a una función PHP directamente en un enlace porque cuando la página cargue ya se ejecutó ese PHP.

Saludos
  #3 (permalink)  
Antiguo 04/11/2004, 04:08
 
Fecha de Ingreso: septiembre-2004
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
Vaya entonces tengo que cargar otro php, por cierto ¿como vuelvo a la página donde estaba, hay alguna otra manera de hacerlo que no sea echo ("<script>history.go(-1)</script>");?
__________________
"El miedo mata la mente. El miedo es la muerte que conduce a la destrucción total. Afrontaré mi miedo. Permitiré que pase sobre mí y a través de mí. Y cuando haya pasado giraré mi ojo interior para escrutar su camino. Allá donde haya pasado el miedo ya no habrá nada. Sólo estaré yo."
  #4 (permalink)  
Antiguo 04/11/2004, 06:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por Runciter_rc
Vaya entonces tengo que cargar otro php, por cierto ¿como vuelvo a la página donde estaba, hay alguna otra manera de hacerlo que no sea echo ("<script>history.go(-1)</script>");?
Podrías usar para redireccionar automáticamente:

header ("Location: pagina.tal");
exit;

Podrías también usar "HTTP_REFERER" para saber de que página viene .. (que sería un "history.go(-1)" .. pero esa variable de servidor ($_SERVER['HTTP_REFERER']) en ocasiones no está dispónible (firewalls, proxys que la bloquean ... etc...) Mejor si es posible indicar la página (nombre/ruta) que ha de ir.

Un saludo,
  #5 (permalink)  
Antiguo 04/11/2004, 20:02
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
Iniciado por Runciter_rc
Vaya entonces tengo que cargar otro php, por cierto ¿como vuelvo a la página donde estaba, hay alguna otra manera de hacerlo que no sea echo ("<script>history.go(-1)</script>");?
Bueno... para el ejemplo básico que te puse no tendrás problemas porque el script no devuelve una página... sino un .zip... o sea que nunca abandonarás la página actual. Simplemente al pulsar el enlace te saldrá el cuadro de diálogo de la descarga.
Pero para hacerlo más funcional y completo... sí debes considerar lo que te dice Cluster.

Saludos
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 23:57.