lien special

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : lien special

par loicus » 29 mai 2007, 13:28

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

par Genova » 29 mai 2007, 09:33

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.

par loicus » 28 mai 2007, 19:55

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

par loicus » 28 mai 2007, 18:31

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

par Genova » 28 mai 2007, 16:31

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

?>

lien special

par loicus » 28 mai 2007, 15:57

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