PHP - Incrémenter Hits et afficher fichier
Résolu
th2
-
th2 -
th2 -
Bonjour,
J'ai un petit soucis. Je voudrais incrémenter une variable "hits" et afficher un fichier précis à chaque fois mais je n'ai aucune idée de comment faire cela d'une façon sécurisée.
Voici mon code (j'ai plusieurs pages de ce type):
Donc pour résumer, je voudrais incrémenter les hits puis afficher le fichier texte ($id.txt)
Merci de m'aider.
J'ai un petit soucis. Je voudrais incrémenter une variable "hits" et afficher un fichier précis à chaque fois mais je n'ai aucune idée de comment faire cela d'une façon sécurisée.
Voici mon code (j'ai plusieurs pages de ce type):
<a href="index.php?pageid=papers" target="_top">:: Papers ::</a>
<table class="list" width="90%">
<tr class="toplist">
<td width="9%"> :: Date</td>
<td width="66%"> :: Title</td>
<td width="10%"> :: Hits</td>
<td width="15%"> :: Author</td>
</tr>
<?php
$db = mysql_connect($Site['MYSQLHost'], $Site['MYSQLUser'], $Site['MYSQLPass']);
mysql_select_db($Site['MYSQLDatabase'],$db);
$sql = 'SELECT COUNT(*) AS NBentrees FROM p4per';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$Data = mysql_fetch_assoc($req);
$NBpages = ceil($req / $Site['LinesPerTable']);
$LastPage = $NBpages;
if (isset($_GET['page']))
{
$page = $_GET['page'];
if (!is_numeric($page))
{
header('Location: index.php?pageid=hacker');
}
}
else
{
$page = 1;
}
$Limit = ($page - 1) * $Site['LinesPerTable'];
$sql = 'SELECT id,date,title,hit,author FROM p4per ORDER BY date DESC LIMIT '.$Limit.','.$Site['LinesPerTable'];
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
{
echo '<tr class="listline"><td>'.$data['date'].'</td><td><a href="files/papers/'.$data['id'].'.txt" style="font-variant: normal;" target="_top">'.$data['title'].'</a></td><td>'.$data['hit'].'</td><td>'.$data['author'].'</td></tr>';
}
mysql_close();
?>
</table>
<?php
echo '<br /><a href="index.php?pageid=papers&page=1" target="_top"><<First </a>';
for ($i = 1 ; $i <= $NBpages ; $i++)
{
echo '<a href="index.php?pageid=papers&page='.$i.'" target="_top">['.$i .']</a> ';
}
echo '<a href="index.php?pageid=papers&page='.$LastPage.'" target="_top"> Last>></a><br />';
?>
Donc pour résumer, je voudrais incrémenter les hits puis afficher le fichier texte ($id.txt)
Merci de m'aider.
A voir également:
- PHP - Incrémenter Hits et afficher fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
2 réponses
salut,
l'idée pour se genre de truc c'est d'avoir un script a part pour la gestion de l'affichage ainsi l'incrementation du hit donc dans tes liens tu aura quelque chose comme ca
<a href='hitsmanager.php?id=md5($idfichier)'>nom fichier</a>
dans hitsmanager.php tu aura quelque chose comme ca
attention !! ici j'ai utiliser md5 pour crypter l'id des fichier en md5 ceci suppose que tu a ces id crypter dans ta base sinon tu pour un cryptage temporaire tu peut utilise base64_encode() et base64_decode() a la reception et tout autre fonction de cryptage du genre
CORDIALEMENT
l'idée pour se genre de truc c'est d'avoir un script a part pour la gestion de l'affichage ainsi l'incrementation du hit donc dans tes liens tu aura quelque chose comme ca
<a href='hitsmanager.php?id=md5($idfichier)'>nom fichier</a>
dans hitsmanager.php tu aura quelque chose comme ca
//recuperation de l'id
$id_fichier = $_GET[id];
//recuperation du fichier correspondant
$sql = "SELECT * FROM tablefichier WHERE id='".$id_ficher."'";
.......//le reste recuperation des differents
//maintenant l'update du nombre de hit
mysql_query("UPDATE table SET hits = hits+1 WHERE id='".$id_fichier."'");
//l'affichage
header('content-type: text/html; charset=utf-8');//pour le html
//ou
header('content-type: text/plain; charset=utf-8');//text normale
readfile($file); //$file tu doit le construire suivant le nom du fichier
attention !! ici j'ai utiliser md5 pour crypter l'id des fichier en md5 ceci suppose que tu a ces id crypter dans ta base sinon tu pour un cryptage temporaire tu peut utilise base64_encode() et base64_decode() a la reception et tout autre fonction de cryptage du genre
CORDIALEMENT