Si ton compteur ne se base que sur un unique champ, le moyen le plus simple est de faire, dans la page initiale, un lien comme suit :
<a href="download.php?file=XXX">Télécharger</a> (en supposant XXX comme étant l'ID du fichier)
la page download.php se compose comme suit :
Code :
- <?php
- $file = (isset($_GET['file'])) ? abs(intval($_GET['file'])) : 0;
- if ($file != 0)
- {
- $req_fileURL = "SELECT medias_lien FROM medias WHERE medias_id='".$id_medias."';";
- $fileURL = mysql_query($req_fileURL) or die(mysql_error());
- if (mysql_num_rows($fileURL) == 1)
- {
- $thisfile = mysql_fetch_array($fileURL);
- // Incrémentation du compteur
- $req_update_ctr = "UPDATE medias SET medias_counter=(medias_counter+1) WHERE medias_id ='".$id_medias."';";
- mysql_query($req_update_ctr) or die(mysql_error());
- // et maintenant on livre le fichier
- header("Location: http://www.ton_site.tld/".$thisfile['media_lien']);
- };
- };
- ?>
|
Je n'ai volontairement pas mis la session, parce qu'elle ne protège rien du tout en réalité : vu que ton URL apparaissait en clair dans le code source, n'importe qui peut la récupérer.
Alors oui c'est vrai que j'ai pas mis de texte "vous allez être redirigé dans 2 sec", mais perso ça m'horripile.
Tu prendras soin également d'enlever les die(mysql_error()) sur ton serveur de prod, bien entendu : je les ai mis là pour les tests, mais en prod, ça se masque et ça se traite autrement
Message édité par NewsletTux le 29-05-2008 à 09:41:30
---------------
NewsletTux - outil de mailing list en PHP MySQL