Wie kann ich mit PHP und JavaScript ein Bild anklickbar zu machen, und erhöht einen Zähler als Textdatei gespeichert?

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

  •  13-09-2019
  •  | 
  •  

Frage

Im Versuch, einen php / js Skript zu finden, die ich ein Bild nehmen lassen, und wenn sie angeklickt, die Zahl in einer flachen Datei erhöhen, und die Datei speichern.

Ich weiß, wie die Datei zu schließen, die Abstimmung insgesamt zu erhalten.

Im verrückt versuchen, diese zu finden in meiner Website Plug and Play. Id lieber ip Protokollierung zu haben, und eine kühle verblasst in / out Refresh-Update Sache. Aber an diesem Punkt krank settle für Grundlagen.

Id wie MySQL zu verwenden zu vermeiden, aber wenn ihr Bedarf kann ich mit ihm arbeiten.

War es hilfreich?

Lösung

Am besten ist es, die AJAX-Unterstützung in jQuery für den Zugriff zu verwenden, aber nicht an den Benutzer zu laden, eine Art von URL, die den Zuwachs in die Datei schreibt. Wenn Sie jede Art von einer gründlichen Plattform verwenden, sollten Sie mit Ihrer Datenbank zu tun in dem in Betracht ziehen. Allerdings würde es einfach genug sein, um jQuery $ .get () Funktion für den Zugriff auf die URL /increment_number.php?image=whatever.jpg zu verwenden. Wenn Sie jemals eine Datenbank verwenden, dann würden Sie müssen nur dieses Skript ändern, um eine DB-Abfrage durchzuführen. Für Ihren Fall würden Sie ein einfaches Skript wie diese haben (was in keiner Weise wurde optimiert oder irgendwelche Sicherheitsüberlegungen auch immer):

$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);

Und denken Sie daran, das folgende Bit von JS auf der Seite mit dem Bild haben:

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

ich diesen Code nicht getestet haben, so dass es nicht funktionieren könnte, aber es ist im Geist das, was Sie zu tun haben würden.

Andere Tipps

etwas Einfaches wie das wird nicht funktionieren?

<?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);
?>

Wenn Sie dies für ein Wahlsystem wie Stack-Überlauf tun, wodurch viele Dateien dies einen Bit an Information zu speichern, wird unhandlich werden. Dies ist ideal für eine Datenbank.

Auf diese Weise Sie würde auch nicht auf die Datei, sondern führen Sie eine Abfrage, um die Gesamtscore zu erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top