Page 1 sur 1
lien special
Posté : 28 mai 2007, 15:57
par loicus
bonjour,
j'aimerais bien faire un lien vers un fichier mais qui en plus incrémente un compteur à chaque fois que le lien est clické...
j'avais d'abord penser faire une bète function php avec passage du fichier par URL, ce qui permet à la fois de lancer le fichier et le compteur (je pense en tt cas)
mais j'aime pas beaucoup cette solution, parceque les gens ne savent plus prendre le fichier en faisant "click droit>enregistrer"...
y a t'il une autre solution?
qui soit transparente pour l'utilisateur?
merci d'avance
loicus
Posté : 28 mai 2007, 16:31
par Genova
Solution simple :
- Une table SQL qui contient comme champs : id (clef primaire), nom_fichier (le nom du fichier sur ton serveur), compteur (le compteur de click)
- Lorsque tu affiches le fichier à télécharger tu fais un lien du genre : download.php?id=xx (xx = un entier, qui correspondra à une entrée dans ta table SQL)
- Dans ton fichier download.php :
<?php
// Récupération de l'ID
$id = (isset($_GET['id'])) ? intval($_GET['id']) : NULL;
if (is_null($id))
{
die('Erreur ...');
}
// Vérification de l'existance du fichier, récupération de ses informations
$sql = 'SELECT nom_fichier
FROM ta_table_sql
WHERE id = ' . $id;
$result = mysql_query($sql) OR die(mysql_error());
if (!$row = mysql_fetch_assoc($result))
{
die('Fichier inexistant');
}
mysql_free_result($result);
// Compteur
$sql = 'UPDATE ta_table_sql
SET compteur = compteur + 1
WHERE id = ' . $id;
mysql_query($sql) OR die(mysql_error());
// Lancement du download
$filename = 'chemin/vers/fichier/' . $row['nom_fichier'];
header('Content-Type: application/octetstream; name: ' . $row['nom_fichier']);
header('Content-Disposition: inline; filename="' . $row['nom_fichier'] . '"');
echo file_get_contents($filename);
ob_end_flush();
exit
?>
Posté : 28 mai 2007, 18:31
par loicus
c'est justement ce que je ne veux pas....
parceque l'utilisateur ne sait plus ouvrir le fichier en faisant click_droit->enregistrer
donc ca exclu de passer par une page du type download.php
Posté : 28 mai 2007, 19:55
par loicus
j'ai trouver quelque chose comme ca :
Code : Tout sélectionner
<a href="../../../C++/Fourier.JPG" onclick="<SCRIPT LANGUAGE="JavaScript" SRC="ClickFile.php?File=Title_2" ></SCRIPT>">Title_2</a>
mais la syntaxe n'est pas bonne...
comment l'écrire correctement?
je cherche sur le net, mais sans succes
merci d'avance
loicus
Posté : 29 mai 2007, 09:33
par Genova
Normalement si, l'utilisateur saura utiliser le click droit, je n'ai jamais eu de problèmes à ce sujet.
L'autre solution : utiliser AJAX sur le onclick du lien pour incrémenter un compteur.
Posté : 29 mai 2007, 13:28
par loicus
tu as un site ou le code que tu m'as donné est implémenté?
que j'essaye...
loicus
EDIT : j'ai testé....
ca marche nikel
merci beaucoup