Ich hab mir ein DownloadScript gebastelt. Die Files sind in einer DB gespeichert. Um die Datei herunterzuladen übergibt man die ID an das Script (download.php?id=12)
Soweit alles gut und funktioniert auch.
Nun habe ich noch was eingebaut, damit man manche Files mit einem Passwort schützen kann.
Das Script schaut ob ein Passwort eingegeben werden muss.
Wenn ja dann zeigt er ein Passwortfeld.
Wenn man dieses dann abschickt und das Passwort ist richtig dann öffnet sich auch das Download Fenster aber die Datei hat 0Byte.
hier das Script:
Wahrscheinlich hatu dann irgendwas mit den Headern nicht hin. Nur was??
Und wie kann ich das dann umgehen??
Danke für eure Hilfe
Soweit alles gut und funktioniert auch.
Nun habe ich noch was eingebaut, damit man manche Files mit einem Passwort schützen kann.
Das Script schaut ob ein Passwort eingegeben werden muss.
Wenn ja dann zeigt er ein Passwortfeld.
Wenn man dieses dann abschickt und das Passwort ist richtig dann öffnet sich auch das Download Fenster aber die Datei hat 0Byte.
hier das Script:
PHP-Code:
$download = new dbconnect();
$query = "SELECT `name` , `password` , `ext` , `type` , `size` , `binary`
FROM `files`
WHERE `did` = '$HTTP_GET_VARS[id]'";
$download->query($query);
$download->fetch_array();
$name = $download->row['name'];
$ext = $download->row['ext'];
$type = $download->row['type'];
$size = $download->row['size'];
$binary = $download->row['binary'];
//überprüfen ob der User die Rechte hat um die datei herunter zu laden
$filepw = $HTTP_POST_VARS['filepw'];
if(($filepw != $download->row['password']) && $download->row['password'] != 'false')
{
echo "<form action=\"$PHP_SELF?id=$HTTP_GET_VARS[id]\" method=\"POST\" target=\"_blank\">\n";
echo "<input type=\"password\" name=\"filepw\" value=\"\" size=\"\" maxlength=\"20\">\n";
echo "<input type=\"submit\" value=\"authenticate\">\n";
echo "</form>\n";
exit;
}
//Download Fenster
$query = "UPDATE files
SET counter = counter+1
WHERE did = '$HTTP_GET_VARS[id]'";
$download->query($query);
header("Content-type: $type");
header("Content-length: $size");
header("Content-disposition: attachment; filename=$name.$ext");
header("Content-transfer-encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
//Datei Inhalt senden
echo $binary;
}
?>
Und wie kann ich das dann umgehen??
Danke für eure Hilfe

Kommentar