Hallo Leute,
Folgender Sachverhalt beschäftigt mich nun schon seit Tagen:
Ich möchte gern in meinem Wordpress Blog ein Downloadscript einfügen, so dass wenn Leute z.B. "index?id=zahl&page_id=5" aufrufen, zuerst die Seite aufgebau wird und dann der Download mit der id=zahl gestartet wird. Ich habe in der index.php bereits ein ob_start und ein ob_end_flush eingebaut und danach das Downloadscript, das wie folgt aussieht:
eingebaut, jedoch ohne Erfolg.
Ich hoffe ihr könnt mir helfen- Vielen Dank schonmal im Vorraus!
Folgender Sachverhalt beschäftigt mich nun schon seit Tagen:
Ich möchte gern in meinem Wordpress Blog ein Downloadscript einfügen, so dass wenn Leute z.B. "index?id=zahl&page_id=5" aufrufen, zuerst die Seite aufgebau wird und dann der Download mit der id=zahl gestartet wird. Ich habe in der index.php bereits ein ob_start und ein ob_end_flush eingebaut und danach das Downloadscript, das wie folgt aussieht:
PHP-Code:
<?php
$alt = file_get_contents("datei.txt");
$referer = $_SERVER["HTTP_REFERER"];
if(empty($alt)){
if(empty($referer)){
$neu = $alt;
} else {
$neu = $referer;
}
} else {
if(empty($referer)){
$neu = $alt;
} else {
$neu = $alt."\r\n".$referer;
}
}
file_put_contents("datei.txt", $neu);
//Diese Funktion schreibt die Anzahl der Downloads in eine Datei
function write_dl_counter($identifier)
{
//Hier erstmal die Datei öffnen
$dump = "dls/counter";
$inhalt = file_get_contents($dump);
//Nun splitten nach Zeile
$out = explode("\r\n",$inhalt);
//Jetzt jede Zeile durchgehen ... und wiederrum exploden
foreach($out as $output)
{
//Jetzt splitten nach identifier
$output_cache = explode(':',$output);
if($output_cache[0] == $identifier)
{
//Nun den zweiten output_cache bearbeiten und dann als Zeile wieder zurückgeben
$neuerwert = $output_cache[1] + 1;
$output = $identifier.':'.$neuerwert;
$bearbeitet = TRUE;
}
//Hier werden alle Zeilen wieder in ein array gespeichert
$zeilen[] = $output;
}
//Wenn keine Zeile bearbeitet wurde wird einfach neuer Eintrag gemacht
if(!$bearbeitet)
{
$zeilen[] = $identifier.':1';
}
//Nun alle Zeilen wieder in einen String zurueck und dann per fopen in Datei schreiben
$datei_inhalt = implode("\r\n",$zeilen);
$handle = fopen($dump, w);
fwrite($handle, $datei_inhalt);
fclose($handle);
}
//Hier wird die id geholt
$id = $_GET['id'];
//Hier wird der Download Pfad festgelegt
$path = "dls/";
//Hier wird dem Download eine id zugeordnet
$dls[] = "ibors-gb.zip";
$dls[] = "phphitsmod_by_ibor.zip";
$dls[] = "sec_paper_one.pdf";
$dls[] = "stealer.zip";
$dls[] = "jpg_cleaner.zip";
$dls[] = "email_ausleser.zip";
$dls[] = "sec_paper_two.pdf";
//Wenn Download vorhanden ist wird heruntergeladen und counter eintrag gemacht
if(array_key_exists($id, $dls))
{
write_dl_counter($id);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-Type: text/plain");
header("Content-Disposition: attachment; filename = ".str_replace('1','',$dls[$id]));
readfile($path.''.$dls[$id]);
}
?>
Ich hoffe ihr könnt mir helfen- Vielen Dank schonmal im Vorraus!
Kommentar