Ihre Ziele sind:
-
damit nicht jeder, der nur den Namen der PDF-Datei kennt, diese ohne Bezahlung herunterladen kann;
-
den Download erst nach Bezahlung möglich machen.
Speichern Sie also Ihre PDFs außerhalb des Dokument-Roots, damit niemand den Namen des Dokuments einfach in den Browser eingeben kann. Zum Beispiel:
pdf_files/
1.pdf
2.pdf
3.pdf
public_html/
index.php
something_else.php
Verwenden Sie dann in Ihrem PHP-Skript die direkte Dateiausgabe, etwa so:
<?php
//we are sure that we received the payment
if ($costumer_payed) {
$file_path = '../pdf_files/1.pdf'; //navigating outside the document root!
$file = basename($file_path);
$size = filesize($path);
//headers to show browser that this is a PDF file and that it should be downloaded
header ("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$file");
header("Content-Length: $size");
readfile($file_path); //giving file to costumer
}
echo {
echo "Sorry, pal, pay for your PDF first";
}
?>