I have a download-page where visitors can enter the name of a ZIP-file (without the extension) in an INPUT-field.
index.php :
<form action="download-script.php" method="post">
<input type="text" name="file" placeholder="Enter filename here" />
<input type="submit" value="Download starten" />
</form>
The ZIP-files are stored in a separate folder "files". If the visitor knows the name of the file everything is fine. If the file name is being misspelled or empty, an error message is displayed by the script:
download-script.php :
<?php
$file = preg_replace("/[^0-9a-z.\-_ ]/i", "", $_POST['file']);
$file = 'download/' . $file . '.zip';
if (file_exists($file)) {
header('Content-Disposition: attachement; filename=' . basename($file));
header('Content-Type: application/force-download');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Content-Length: ' . filesize($file));
header('Connection: close');
readfile($file);
}
else {
echo "File not found";
exit;
}
?>
My aim is to show the error-message on index.php and not on download-script.php because download-script.php will only show the error-message.