Ich habe da eine Frage bezüglich eine Reload-Sperre.
Und zwar wollte ich Borland Delphi 2005 PE in meinem Downloadbereich anbieten (hab selbst mehrere Wochen danach gesucht, bis mir Nope den Tipp mit der PC-Magazin gegeben hat )
Rein rechtlich ist das geklärt, hab auch mal angefragt, solange die Registrierung noch über Borland.com läuft, darf ich das machen.
Nun ist die Datei allerdings fast 450 MB groß (unkomprimiert sogar 600) und da mein Serverhoster zwar offiziell keine Trafficbegrenzung hat, allerdings in den AGBs steht, dass man 2 GB am Tag nicht überschreiten sollte, habe ich eine Reload-Sperre eingerichtet (ist noch nicht online, lade das Progg noch ca. 5 Stunden hoch )
Nun wollte ich mal wissen, ob man das auch besser lösen könnte, ich habe die Reloadsperre so "getrimmt", dass 3 Downloads am Tag nicht überschritten werden dürfen und dass anhand der IP überprüft wird, dass jemand das File nicht mehrmals downloaded. Allerdings, wenn man nun aus Versehen VOR dem Downloaden die Seite aktualisiert, dann kommt gleich die Reload-Sperre-Meldung.
Lässt sich das irgendwie auch anders lösen ? Hab zwar einen diggen roten "Warnhinweis" reingesetzt, dass man nicht aktualsieren sollte, aber wer weiß (vielleicht aktualisieren die Leute auch aus Versehen schon vor dem Erscheinen der Seite, weil die Verbindung mal schlechter ist und dann hamse den Salad )
<?php
$ip = getenv("REMOTE_ADDR");
$openip = fopen("zaehler/ip.txt", "r+");
$readip = fread($openip, filesize("zaehler/ip.txt"));
if($ip == $readip)
{
$downloadlink = '<span style="color: #FF0000;"><b>Du hast eben erst das File runtergeladen.</b></span><br>
<small>Sollte es sich hierbei um einen Fehler handeln (z.B. durch versehentliches Aktualisieren der Seite),<br>
kontaktiere den Webmaster oder versuche es morgen erneut (ab 00:00 Uhr)</small>';
}
else
{
$idvalue=FALSE;
$datei ="../data/counter.txt";
if (file_exists($datei))
{
$file=file($datei);
$datei = fopen($datei, "r");
foreach ($file as $line)
{
$exp_line = explode("|", $line);
if ($exp_line[0] == "Borland Delphi 2005 PE")
{
$idvalue=TRUE;
$counter=$exp_line[1];
$date=$exp_line[2];
$time=$exp_line[3];
fclose($datei);
}
}
}
$datum = date("d.m.y");
if($date == $datum)
{
$zaehlerborland = fopen("zaehler/borland.txt", "r+");
$readborland = fread($zaehlerborland, filesize("zaehler/borland.txt"));
if($readborland < 3)
{
$downloadlink = 'Bitte klicken Sie <a href="DOWNLOADDATEI">hier</a> zum Downloaden von Borland Delphi 2005 PE.<br>
<span style="color: #FF0000;"><b>Nicht aktualisieren, da sonst die Reload-Sperre das Downloaden verhindert !</span></b>';
$zahlneu = ($readborland + 1);
fclose($zaehlerborland);
$zaehlerneu = fopen("zaehler/borland.txt", "w");
fwrite($zaehlerneu, $zahlneu);
fclose($zaehlerneu);
fclose($openip);
$ipnew = fopen("zaehler/ip.txt", "w");
fwrite($ipnew, $ip);
}
else
{
$downloadlink = 'Die Datei wurde heute schon drei mal heruntergeladen.<br>
Bitte versuchen Sie es <b>morgen</b> (ab <b>00:00 Uhr</b>) erneut. <span style="color: #FF0000;"><b>Danke für Ihr Verständnis</b></span><br>
<small>(Die Downloadbegrenzung bezieht sich nur auf Borland Delphi 2005 PE, da diese Datei so groß ist,<br>
dass eine Downloadsperre notwendig ist um die Server nicht überzubelasten)</small>';
}
}
else
{
$zahlneu = fopen("zaehler/borland.txt", "w");
fwrite($zahlneu, "0");
$downloadlink = "Bitte klicken Sie <a href='DOWNLOADDATEI'>hier</a> zum Downloaden von Borland Delphi 2005 PE";
}
}
?>
<html>
<head>
<link rel="stylesheet" href="../main.css">
</head>
<title>Borland Delphi 2005 PE</title>
<body>
<table cellpadding="0" cellspacing="0" border="0">
<tr><td>
<?=$downloadlink;?>
</td></tr>
</table>
</body>
</html>