Foros del Web » Programando para Internet » PHP »

Cuenta descarga

Estas en el tema de Cuenta descarga en el foro de PHP en Foros del Web. Hola: En una web html sensillo, cambiando la extensión a .php. Quiero incluir esta frase: Descargar Manual WinPic800 PDF XPS. En la palabra PDF que ...
  #1 (permalink)  
Antiguo 26/09/2008, 17:36
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 17 años
Puntos: 8
Cuenta descarga

Hola:

En una web html sensillo, cambiando la extensión a .php. Quiero incluir esta frase: Descargar Manual WinPic800 PDF XPS.

En la palabra PDF que tenga un enlace a un archivo llamado Winpic800.pdf guardado en un directorio llamado manuales. Con el formato XPS lo mismo. La extensiones también podrían ser .zip si me interesa que se lo descarguen comprimido.

Subo estos archivos al servidor de Lycos y funciona. Lo que no se hacer es un cuenta click de descarga con PHP y MySQL.

Bueno, en un lado del texto "Descargar Manual WinPic800 PDF XPS" debe aparecer el número de descargas tanto en el enlace de PDF como en XPS ya que los datos descargados o que en cada click se guarda en la base de datos. Lo mismo que cuando visitamos un foro, al hacer click en un tema, se cuenta el números de visitas.

Me bajé el manual de php aquí, pero no se nada ni buscar en él.

Eso si, incluye el phpmyadmin para crear tablas de MySQL que es donde se va a guardar los datos descargados.

En este código quiero hacer un contador de descarga. Que al descargar el archivo cuente esa descarga en MySQL y se muestre las cantidad de descargas al lado donde pone PDF.


Código:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
Descargar Winpic800 PDF XPS
</body>
</html>
Un cordial saludos.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar

Última edición por REHome; 26/09/2008 a las 21:54 Razón: Añadir código.
  #2 (permalink)  
Antiguo 26/09/2008, 18:06
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 4 meses
Puntos: 7
Respuesta: Cuenta descarga

Lo que puedes hacer es algo así:

1 - Creas una Tabla, luego creas 2 campos (para hacerlo de la forma mas sencilla posible), el primero "ID" que es de la manera en que vas a referenciar a los archivos de descarga, a este campo lo haces autonumèrico y a su ves como clave principal de la tabla, el segundo campo "DESCARGAS" que es ahì donde iràs contando la cantidad de descargas de cada archivo.

2 - En tu página de descarga tendrás un link algo así:

<a href="descargas.php?id=456">Archivo a descargar</a>

hasta aquí no es necesario utilizar código PHP por lo tanto es página puede ser simplemente html, si eso te facilita las cosas.

3 - Creas una página "descargas.php". ahora si necesitarás PHP, tu página debería ser algo así:

primero pones todo el código de la conexión
Si no sabes como hacerlo fijate en las faq's de php
http://www.forosdelweb.com/f18/faqs-php-530600/
Código PHP:
<?php
//Conexion
.................
.................

// Esta sería tu consulta SQL
$sql "UPDATE contador SET descargas = descargas + 1
WHERE id = $GET[id]" 
;

//En esta parte debes ejecutar la consulta
.........
.........

// Y por último inicias la descarga del archivo y redireccionas a la página principal o a donde quieras

?>
Eso es a grandes rasgos la mecánica de lo que quieres, a parte de estar muy simplificado.
Igualmene ye aliento a que leas algún manual aunque sea introductorio a PHP, hay buenos manuales en www.desarrolloweb.com.

Cualquier duda consulta.

Saludos!
__________________
I'm gonna start a revolution from my bed...
  #3 (permalink)  
Antiguo 26/09/2008, 22:50
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 17 años
Puntos: 8
Respuesta: Cuenta descarga

Hola:

Voy a probar y gracias por la web.

Aquí hay otro manual PHP actualizado en el 2008
Descargar

Saludos.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #4 (permalink)  
Antiguo 27/09/2008, 00:30
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 17 años
Puntos: 8
Respuesta: Cuenta descarga

Hola:

Cree una tabla

Cita:
tabla contador se ha creado.

SQL-query : [Editar]
CREATE TABLE `contador` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`descargas` INT NOT NULL,
INDEX (`id`)
)
COMMENT = 'Cuenta descargas';
Cita:
SELECT * FROM `contador` WHERE 1



Código PHP:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cuenta descargas</title>
</head>
<body>
<?php
$myconn 
= @mysql_connection("members-e.db.tmm.lyceu.net:3310","electronicapic"); // No utiliza contraseña

if (! $myconn){
echo 
"Error al intentar conectarse con el servidor MySQL";
exit();
}

if (! @
mysql_select_db("electronicapic_es_db",$myconn)){
echo 
"No se pudo conectar correctamente con la Base de datos";
exit();
}

$sql "UPDATE contador SET descargas = descargas + 1
WHERE id = $GET[id]"
$result mysql_query($sql)

if (! 
$result){
echo 
"La consulta SQL contiene errores.";
exit();
}

//while ($row = mysql_flech_array($result)){
//echo "<P>",$row["nombre"]," - ",$row["apellido"],"</P>";
//}
?>
</body>
</html>

La verdad no encuentro solución. La ayuda de lo que hice la saqué aquí:
Fuente:
http://www.gamarod.com.ar/articulos/..._desde_php.asp

Los datos de prueba aquí:
http://usuarios.lycos.es/electronicapic/prueba.php

Saludos.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #5 (permalink)  
Antiguo 27/09/2008, 09:56
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 4 meses
Puntos: 7
Respuesta: Cuenta descarga

Código PHP:
$sql "UPDATE contador SET descargas = descargas + 1
WHERE id = $GET[id]"
$result mysql_query($sql
No le agregaste los ";" al final, te quedaría así:

Código PHP:
$sql "UPDATE contador SET descargas = descargas + 1
WHERE id = $GET[id]"
;
$result mysql_query($sql); 
Saludos!
__________________
I'm gonna start a revolution from my bed...
  #6 (permalink)  
Antiguo 27/09/2008, 10:04
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Cuenta descarga

REhome, la función de conexión es mysql_connect(), así quedaría esta línea:

Código PHP:
$myconn mysql_connect("members-e.db.tmm.lyceu.net:3310","electronicapic"); // No utiliza contraseña 



Saludos.
  #7 (permalink)  
Antiguo 29/09/2008, 02:58
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 17 años
Puntos: 8
Respuesta: Cuenta descarga

Gracias a los dos.


Estaba por ahí por mi cuenta y he hecho lo que indica abajo.

Me dice: La consulta SQL contiene errores. Aquí.

He puesto el código completo:

Código PHP:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cuenta descargas</title>
</head>
<body>
<p>Download Winpic800 PDX XPS</p>
<p>
  <?php
// http://www.forosdelweb.com/f18/cuenta-descarga-628781/#post2598064
$myconn = @mysql_connect("127.0.0.1","electronicapic"); // No utiliza contraseña

if (! $myconn){
echo 
"Error al intentar conectarse con el servidor MySQL";
exit();
}

if (! @
mysql_select_db("electronicapic_es_db",$myconn)){
echo 
"No se pudo conectar correctamente con la Base de datos";
exit();
}

$sql "UPDATE contador SET descargas = descargas + 1
WHERE id = $GET[id]"
;
$result mysql_query($sql);

if (! 
$result){
echo 
"La consulta SQL contiene errores.";
exit();
}

//while ($row = mysql_flech_array($result)){
//echo "<P>",$row["nombre"]," - ",$row["apellido"],"</P>";
//}
?> 
</p>
</body>
</html>
En el phpmyadmin que viene en Lycos me pone esto, no se si habré hecho algo mal.

Cita:
Base De Datos electronicapic_es_db
MySQL ha devuelto un valor vacío (i.e. cero columnas).

SQL-query : [Editar]
SELECT * FROM `contador` LIMIT 0, 30



Tabla Acción Campos Tipo Tamaño
contador Examinar Seleccionar Insertar Propiedades Eliminar Vaciar 0 MyISAM 1.0 KB

Ver Foto:


Voy a intentar ver los de ustedes que me dicen a ver si me salen algo, sobre todo trabajando MySQL.

Saludos.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar

Última edición por REHome; 29/09/2008 a las 08:40
  #8 (permalink)  
Antiguo 29/09/2008, 05:23
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Cuenta descarga

primero has de consultar el numero de descargas con una consulta al la base y despues sumarle uno
  #9 (permalink)  
Antiguo 05/10/2008, 21:41
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 17 años
Puntos: 8
Respuesta: Cuenta descarga

Hola de nuevo:

He puesto esto aquí abajo.

Código PHP:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cuenta descargas</title>
</head>
<body>
<p>Download Winpic800 PDX XPS</p>
<p>
  <?php
// http://www.forosdelweb.com/f18/cuenta-descarga-628781/#post2598064
$myconn = @mysql_connect("127.0.0.1","electronicapic"); // No utiliza contraseña

if (! $myconn){
echo 
"Error al intentar conectarse con el servidor MySQL";
exit();
}

if (! @
mysql_select_db("electronicapic_es_db",$myconn)){
echo 
"No se pudo conectar correctamente con la Base de datos";
exit();
}

$sql "UPDATE contador SET descargas = descargas + 1
WHERE id = '"
.mysql_real_escape_string($GET[id])."';";
$result mysql_query($sql);

if (! 
$result){
echo 
"La consulta SQL contiene errores.";
exit();
}

//while ($row = mysql_flech_array($result)){
//echo "<P>",$row["nombre"]," - ",$row["apellido"],"</P>";
//}
?> 
</p>
</body>
</html>
Parece que funciona. ¿Quiero poner el enlace que está en la carpeta manuales y el archivo se llama winpic800.pdf?

Prueba
http://usuarios.lycos.es/electronicapic/prueba.php

Este es el archivo que deseo que se vea la cantidad de descarga.
http://usuarios.lycos.es/electronica...al/minicom.pdf

Un cordial saludos.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar

Última edición por REHome; 05/10/2008 a las 23:32 Razón: Colocar enlace de prueba
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:07.