Sicherer Dateidownload in PHP, Benutzer ohne Erlaubnis ablehnen
Ich erstelle eine Website, auf der Sie Dateien für virtuelle Punkte kaufen und dann herunterladen können. Ich möchte nicht, dass Benutzer die Dateien herunterladen, ohne sie zu kaufen, daher muss ich sie ausblenden. Ich habe alle Dateien ohne Erlaubnis in einem Ordner abgelegt, außer für den Host. Das Problem ist, dass jemand eine Datei kauft und sie herunterladen möchte.
Ich habe mich für einen File Getter entschieden, der die Berechtigungen des Benutzers überprüft und dann den Dateiinhalt ausgibt. Mein Code bisher:
<?php
require_once('content/requirements.php'); //mysql connections
secure(1); //disconnect unlogged users
if (!isset($_GET['id'])) //if no file id provided
die();
$fid=mysql_real_escape_string($_GET['id']); //file id
$query="SELECT * FROM files WHERE user_id = "$_SESSION['user_id']." AND file_id = ".$id;
$q=mysql_query($query);
if (mysql_num_rows($q)!=1) //if no permission for file or multipe files returned
die();
$file=mysql_fetch_array($q); //file id
$sub=mysql_fetch_array(mysql_query("SELECT * FROM sub WHERE id = ".$file['file_id'])); //payment id
?>
Wenn der Benutzer nun sicher ist, dass er dazu berechtigt ist, sollte phpScript den Dateiinhalt schreiben und den entsprechenden Header senden, damit der Benutzer ihn herunterladen kann.
Wie man die Datei byteweise liest und druckt und was ich in den Header () schreiben soll, um die Datei herunterladbar zu machen (damit Sie den Inhalt nicht kopieren müssen).
Vielleicht ist dies nicht der beste Weg, dies zu tun, aber es war das Beste, woran ich seit einiger Zeit gedacht habe.
Vielen Dank für jede Hilfe.