Ik heb op mijn site een script staan, dat ervoor zorgt dat er automatisch een .zip bestand gemaakt wordt als iemand op een knop drukt.
Omdat ik ISS gebruik als webserver gebruik kan ik geen .htaccess gebruiken, en het bestand dus niet beveiligen met mijn php login script. Daarom zocht ik een script dat ervoor zorgt dat als het bestand is gedownload, het automatisch verwijderd wordt.
Ik heb heel Google al afgezocht maar ik kon niks vinden.
Wie kan mij helpen?
<?php
// Deze 3 regels zijn het enige vereiste om te controleren of er is ingelogd
ob_start();
session_start();
include("../auth.php");
checkAuth();
// Tot hier dus
?>
<head>
<title>Downloaden...</title>
</head>
<body>
Klik hieronder om te downloaden
<FORM METHOD="post" action="zip.php">
<INPUT TYPE="submit" VALUE="Download">
</FORM>
</body>
zip.php
<?php
// Deze 3 regels zijn het enige vereiste om te controleren of er is ingelogd
ob_start();
session_start();
include("../auth.php");
checkAuth();
// Tot hier dus
require_once("pclzip.lib.php"); // Lees de class in
$zip = new PclZip("website.zip");
if($zip->create("../../../../informatica") == 0)
die("Error : " . $zip->errorInfo(true));
header ( "Location: download.php" );
?>
download.php
<?php
// Deze 3 regels zijn het enige vereiste om te controleren of er is ingelogd
ob_start();
session_start();
include("../auth.php");
checkAuth();
// Tot hier dus
$filename = 'website.zip';
$filename = realpath($filename);
if (!file_exists($filename)) {
die("NO FILE HERE");
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".@filesize($filename));
set_time_limit(0);
@readfile("$filename") or die("File not found.");
header ( "Location: verwijder.php" ); ?>
verwijderen.php
<?php
require_once("pclzip.lib.php"); // Lees de class in
$zip = delete(PCLZIP_OPT_BY_NAME,"website.zip");
if($zip->delete() == 0)
die("Error : " . $zip->errorInfo(true));
header ( "Location: ../index.php" );
?>
Het formuliertje, het zippen en het verwijderen werkt zoals het moet, maar als ik wil downloaden wacht hij niet totdat het downloaden klaar is en downloadt hij dus niets. Wie weet hoe ik dit kan oplossen?