Ich mache eine Website, wo Sie Dateien für virtuelle Punkte kaufen können, und laden Sie sie dann. Ich möchte nicht, dass Benutzer die Dateien herunterladen, ohne sie zu kaufen, also muss ich sie verstecken. Ich lege alle Dateien in einen Ordner ohne Erlaubnis für irgendjemanden außer Host, das Problem ist, wenn jemand eine Datei kauft und sie herunterladen will.Sichere Datei-Download in PHP, verweigern Benutzer ohne Erlaubnis
Ich entschied mich, einen Datei-Getter zu machen, der die Berechtigungen des Benutzers überprüft und dann den Dateiinhalt ausgibt. Mein Code so weit:
<?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
?>
Nun, wenn ich bin sicher, der Benutzer dies zu tun ist ermächtigt, phpScript sollte den Inhalt der Datei schreiben und Appropiate Header senden Benutzer es zu lassen, herunterladen.
Wie Datei byteweise zu lesen und zu drucken, und was soll ich in header() schreiben, um die Datei herunterladbar zu machen (so müssen Sie seinen Inhalt nicht kopieren).
Vielleicht ist dies nicht der beste Weg, um dies zu tun, aber es war das Beste, was ich in einer Weile dachte.
Danke für jede Hilfe.
Mit google. Dafür gibt es Millionen von Erklärungen. – arkascha
Versuchen Sie, während Sie dort sind, nach SQL Injection zu suchen. – symcbean