Comment puis-je utiliser PHP et JavaScript pour faire une image cliquable, et incrémenter un compteur stocké sous forme de fichier plat?

StackOverflow https://stackoverflow.com/questions/1123132

  •  13-09-2019
  •  | 
  •  

Question

Im essayant de trouver un script php / js qui me permettra de prendre une image, et quand on clique dessus, augmenter le nombre dans un fichier plat et enregistrer ce fichier.

Je sais comment inclure le fichier pour obtenir le total des votes.

Im fou va essayer de trouver cela plug and play dans mon site. Id aiment avoir la journalisation ip, et un fondu froid in / out chose mise à jour de rafraîchissement. Mais à ce moment-Settle mal pour l'essentiel.

Id comme pour éviter d'utiliser MySQL, mais si le besoin je peux travailler avec elle.

Était-ce utile?

La solution

Votre meilleur pari est d'utiliser le support AJAX jQuery d'accès, mais ne se charge pas à l'utilisateur, une sorte d'URL qui écrit l'incrément dans le fichier. Si vous utilisez tout type d'une plate-forme complète, vous devriez envisager de le faire dans la base de données avec votre. Cependant, il serait assez simple d'utiliser la fonction .get () de $ jQuery pour accéder à la /increment_number.php?image=whatever.jpg URL. Si vous commencez à jamais utiliser une base de données, vous devriez juste devez changer ce script pour effectuer une requête de DB. Pour votre cas, vous auriez un script simple comme celui-ci (qui a été en aucune façon optimisée ou a des considérations de sécurité que ce soit):

$image = $_GET['image'];
$number = file_get_contents('tracker_for_{$image}.txt');
if ($number != ''){
    $number = (int) $number + 1
}
$file = fopen('tracker_for_{$image}.txt', 'w');
fwrite($file, $number);
fclose($file);

Et rappelez-vous d'avoir le bit suivant de JS sur la page avec l'image:

$(document).ready(function(){
     $('img.incrementme').click(function(){
         $.get('/increment.php?'+$(this).attr('src'));
     });
);

Je ne l'ai pas testé ce code afin qu'il pourrait ne pas fonctionner, mais il est dans l'esprit de ce que vous avez à faire.

Autres conseils

Quelque chose de simple comme cela ne fonctionnera pas?

<?php
// Link to this file: <a href='onclick.php'><img src='yourimg'></a>
$count = file_get_contents("count.file");
$count += 1;
file_put_contents("count.file", $count);

// Possibly log an IP too? open a file
$f = fopen("ipaddresses.file", "a");
fwrite($f, $_SERVER["REMOTE_ADDR"] . "\n");
fclose($f);
?>

Si vous faites cela pour un système de vote comme Stack Overflow, créant beaucoup de fichiers pour stocker ce un bit d'information va devenir difficile à manier. Ceci est parfait pour une base de données.

De cette façon, vous pouvez également ne pas inclure le fichier, mais effectuer une requête pour obtenir le score total.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top