Downloadzähler

shader09

Erfahrenes Mitglied
Schönen guten Morgen,
Unzwar will ich den Wert auslesen der in der .txt Datei ist, ihn um eins erhöhen, und dann zum Download weitergeleiten werden. Die php Datei soll aber erst aufgerufen werden, wenn man auf einen Link klickt. Das ganze soll halt wie ein sehr einfacher Downloadzähler funktionieren. Hier ist mein Code für das Lesen;

Code:
$Pfad = "hiphophalle.txt";
$datei = fopen($Pfad,"r+") ;
rewind();
$Inhalt = fread($datei,filesize($Pfad));
fwrite($datei, $Inhalt + 1); **************Hier müsste der Wert ja dann um 1 erhöht werden*********
fclose();
 
PHP:
$file = 'hiphophalle.txt';
$handle = fopen($file, 'r+');
$count = int(fread($handle, filesize ($file)));
rewind ($handle);
fwrite ($handle, ++$count);
fclose ($handle);

Sollte so gehen, ich hab's allerdings nicht so mit dem Dateischreibkram :)
 
Ich werds dann heut abend mal ausprobieren und bescheid geben.

Eine Frage bleibt aber noch offen, die php Datei wird ja durch einen
Klick auf einen Link ausgeführt. Die php Datei öffnet sich.
Ich will aber, das dann der Download startet. wie bekomme
ich das noch hin!? Danke
 
Zuletzt bearbeitet:
PHP:
<?php

if($_GET['file']) {
   if(is_file($_GET['file'])) {
      $filename = explode("/", $_GET['file']);
      header("Content-Type: application/octet-stream");
      $save_as_name = basename($_GET['file']);
      header("Content-Disposition: attachment; filename=\"$save_as_name\"");
      readfile($_GET['file']);
      exit();
   }
} else {
   echo "Keine Datei angegeben";
}

?>
Ich habe hier mal ein Beispiel geschrieben, wie man sogar TXT, und Bilddateien zum Download anbieten kann. So werden sie nicht angezeigt, sondern runtergeladen.
 
@ Looma
Leider har dein Code nicht geholfen, da kommt eine Fehlermeldung wenn die Datei aufgerufen wird. Büdde helft mir.

Fatal error: Call to undefined function: int() in /...../downloadzaehler.php on line 4

PHP:
<?
$file = 'hiphophalle.txt';
$handle = fopen($file, 'r+');
$count = int(fread($handle, filesize ($file)));
rewind ($handle);
fwrite ($handle, ++$count);
fclose ($handle); 
header("Location: http://www.example.com/"); /* Browser umleiten */
?>
 
PHP:
<?php
$file = 'hiphophalle.txt';
$handle = fopen($file, 'r+');
$count = (int)fread($handle, filesize($file));
rewind ($handle);
fwrite ($handle, ++$count);
fclose ($handle); 
header("Location: http://www.example.com/"); /* Browser umleiten */
?>

So sollte es gehen.
Eine Funktion namens int() gibt es nicht, diese würde dann wohl [phpf]intval[/phpf] heißen, aber auch mit (int) kann man den Typus erzwingen.
 
Vielen Dank hat Perfekt geklappt.
Ich würde jetzt gern den Wert der Datei auf einer .html Seite anzeigen,
kannst du mir da vielleicht ein bisschen weiterhelfen!?
 
Auf einer HTML Seite wird dies nicht möglich sein, da du zum Auslesen der Datei und Ausgeben der eingelesenen Variable auch wieder PHP brauchst.

PHP:
<?php
$file = 'hiphophalle.txt';
$handle = fopen($file, 'r');
echo (int)fread($handle, filesize($file));
fclose($handle);
?>

So könnte das Auslesen z. B. vonstatten gehen.
 
Zurück