Hallo,
auf der Suche nach einem Downloadzähler für mehrere Dateien bin ich auf den "dl-counter-light-1.0" gestoßen.
Funktioniert mit "Post" auf der Homepage wunderbar.
Allerdings hätte ich gerne zusätzlich die Möglichkeit, einen direkten Download-Link z.B. per E-Mail an einen Freund senden zu können.
Hierzu habe ich in der Datei "dl-counter.php" POST durch GET ersetzt.
if(isset($_POST['dl-btn'][$dateiName]))
if(isset($_GET['dl-btn'][$dateiName]))
Wenn ich diese nun so aufrufe:
.../dl-counter.php?dl-btn=datei3.zip
wird immer die erste Datei gezählt und auch herunter geladen.
Wenn ich anstelle von datei3.zip z.B. lsdfhjdsflh angebe, wird auch wieder die erste Datei gezählt und auch herunter geladen.
Leider stehe ich in Sachen PHP noch am Anfang und hoffe auf eure Hilfe.
Viele Grüße
auf der Suche nach einem Downloadzähler für mehrere Dateien bin ich auf den "dl-counter-light-1.0" gestoßen.
Funktioniert mit "Post" auf der Homepage wunderbar.
PHP-Code:
<form action="dl-counter.php" method="post">
<input type="submit" name="dl-btn[datei1.zip]" value="Download" />
<input type="submit" name="dl-btn[datei2.zip]" value="Download" />
<input type="submit" name="dl-btn[datei3.zip]" value="Download" />
<input type="submit" name="dl-btn[datei4.txt]" value="Download" />
<input type="submit" name="dl-btn[datei5.txt]" value="Download" />
<input type="submit" name="dl-btn[datei6.txt]" value="Download" />
</form>
PHP-Code:
<?php
/****************/
/* dl-counter.php */
/****************/
$timestamp=time();
$aktuellJahr=date("Y",$timestamp);
$aktuellMonat=date("m",$timestamp);
$verzeichnis="./download/";
$verzhandle=opendir($verzeichnis);
while($dateiName=readdir($verzhandle))
{
if(($dateiName!=".") && ($dateiName!=".."))
{
if(isset($_POST['dl-btn'][$dateiName]))
{
if(!(file_exists("./counterFiles/".$dateiName.$aktuellJahr.".txt")))
{
$dateihandle=fopen("./counterFiles/".$dateiName.$aktuellJahr.".txt", "w");
for($i=0; $i<12; $i++)
{
fwrite($dateihandle, 0);
fwrite($dateihandle, "\n");
}
fclose($dateihandle);
}
$counterstand=file("./counterFiles/".$dateiName.$aktuellJahr.".txt");
$counterstand[$aktuellMonat-1]=(trim($counterstand[$aktuellMonat-1]))+1;
$counterstand[$aktuellMonat-1].="\n";
$dateihandle=fopen("./counterFiles/".$dateiName.$aktuellJahr.".txt", "w");
foreach($counterstand as $counterzeile)
{
fwrite($dateihandle, $counterzeile);
}
fclose($dateihandle);
header("Location: ./download/".$dateiName);
exit();
}
}
}
?>
Hierzu habe ich in der Datei "dl-counter.php" POST durch GET ersetzt.
if(isset($_POST['dl-btn'][$dateiName]))
if(isset($_GET['dl-btn'][$dateiName]))
Wenn ich diese nun so aufrufe:
.../dl-counter.php?dl-btn=datei3.zip
wird immer die erste Datei gezählt und auch herunter geladen.
Wenn ich anstelle von datei3.zip z.B. lsdfhjdsflh angebe, wird auch wieder die erste Datei gezählt und auch herunter geladen.
Leider stehe ich in Sachen PHP noch am Anfang und hoffe auf eure Hilfe.
Viele Grüße
Kommentar