HTML (JS/PHP) mit Button Zähler in .txt Datei schreiben?

4 Antworten

Dateistruktur:

Projekt-Root:
- index.php
- counter.txt (kann initial einfach leer sein)

Inhalt index.php:

<?php
if (isset($_POST["reset"])) {
    file_put_contents("counter.txt", intval(file_get_contents("counter.txt")) + 1);
}
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Counter Test</title>
</head>
<body>
<form method="POST">
    <button name="reset">Zurücksetzen</button>
</form>
</body>
</html>

Eine Möglichkeit ohne reload

<? if(isset($_GET["inc_counter"])) file_put_contents('counter.log', ((int) file_get_contents('counter.log')) + 1); ?>
<html>
<head>
  <!-- HEAD -->
</head>
<body>
  <button onclick="(new Image()).src = location + '?inc_counter'">Klicken</button>
</body>
</html>

Dafür muss auf dem Server die Datei counter.log existieren.

Textdatei auf dem Server nehme ich an?

naja, du baust entweder ein Form, dass dann an eine PHP-Seite weitergeleitet und ausgewertet wird oder du lößt per Javascript requests an die URL aus.

Ich frage mich nur, wofür du das brauchst....

Ja auf einem Server.

Das ganze ist dafür gut, dass ich auswerten kann, wie oft dieser Button geklickt wurde.

Oder gibt es hier noch eine einfachere Methode?

0
@FabioFragt

Das loggt nur dummerweise nicht nur, wie oft der Button gecklickt wurde, sondern lässt sich manipulieren, indem man gefakte Anfragen an den Server schickt. Und das funktioniert leider immer, da der Button Clientseitig ist.

Wofür brauchst du das denn?

0
@Destranix

Das ist nicht schlimm, soll nix öffentliches sein sondern nur Intern.

Es wurde von unserer Sicherheitsabteilung die Anforderung gestellt, eine Art Anzeige zu gestalten, wann der letzte Unfall passiert ist.

Das ist soweit mit einer Art "Stoppuhr" Funktion erledigt.

Nun will man noch wissen, wie oft diese Stoppuhr über den Button zurückgesetzt wurde, also wie oft ein Unfall passiert ist.

Dienst erstmal nur Testzwecken

0
@FabioFragt

Hm...An sich würde ich die Zahl ja anders erheben.

Aber mit der Lösung von Dory1 sollte es gehen...Sogar ohne die Datei vorher anzulegen.

0

Was möchtest Du wissen?