Hallo zusammen,
ich hab ein kleines Problem, vielleicht kann mir ja jemand helfen.
Problem: Um meinen Traffic zu schonen will ich vermeiden das URLs zu Videodownloads weitergegeben werden, deshalb soll der Download nur noch für eingeloggte User sein und dieser dann via Script starten, so dass eben keine URL mehr kommuniziert wird.
Lösen wollte ich es mit einem Script welches ich im Web gefunden habe. Es klappt zwar relativ gut, nur werden die Files nicht komplett geladen, sprich eine 370 MB Datei hört bei 310 oder 290 MB einfach auf. Dementsprechend ist der Download auch nicht erfolgreich.
Was mache ich falsch?
Ich wollte es so lösen: der Link zum Download öffnet ein PopUp dem ich die Werte der UserID, einem aktuellen Zeitstempel und der VideoID übergebe. Der Zeitstempel dient nur dazu einzuschränken, das niemand nach 120 Sekunden den gleichen Link nochmal nutzen kann, wenn er versucht diesen herauszubekommen. Die UserID brauch ich nur zum Speichern, damit ich weiß wer den File gesaugt hat und die VideoID spricht für sich selbst.
PHP-Code:
<?php
$vid = $_GET['vid'];
$time = $_GET['t'];
$uid = $_GET['uid'];
if(!is_numeric($vid) || !is_numeric($time) || !is_numeric($uid)) {
echo 'Es ist ein Fehler aufgetreten.
Bitte versuche es erneut!';
die();
}
else {
include('includes/config.php');
$sql = "select v_link from videos WHERE v_id='".$vid."'";
$ausgabe = mysql_query($sql);
$data = mysql_fetch_array($ausgabe);
$link_url = $data[0];
$time = $time+120;
$time_check = time();
if($time > $time_check) {
$tstamp = time();
$insert = 'INSERT INTO video_downloads (VIDEO_ID,USER_ID,TSTAMP) VALUES ("'.$vid.'","'.$uid.'","'.$tstamp.'")';
$query = mysql_query($insert);
$uid = "";
$time = "";
$eingang = array("http://","","/","videos");
$ausgang = array("","","","");
$datei = str_replace($eingang,$ausgang,$link_url);
header("Content-Type: application/octet-stream");
//header("Content-Length: ".filesize($datei));
header("Content-Disposition: attachment; filename=\"".$datei."\"");
$link_prefix = "http://".$link_url;
}
else {
$link = "";
echo 'Es ist ein Fehler aufgetreten.
Bitte versuche es erneut!';
}
}
?>
Kann mir einer helfen? Ein Scriptfehler?