Dieses Skript soll eine Datei in einem nicht über HTTP zu aufrufenden
Verzeichnis aufrufen. Aber wenn ich zum Besipiel das script so aufrufe:
meineurl.de/media.php?user=tester&file=12.jpg (existiert) bekomme ich
eine 404 Fehlermeldung. Das liegt an dem Header-Befehl. Aber was kann
ich da anstatt header verwenden, was funktioniert?
Verzeichnis aufrufen. Aber wenn ich zum Besipiel das script so aufrufe:
meineurl.de/media.php?user=tester&file=12.jpg (existiert) bekomme ich
eine 404 Fehlermeldung. Das liegt an dem Header-Befehl. Aber was kann
ich da anstatt header verwenden, was funktioniert?
PHP-Code:
<?php
$user=$_GET['user'];
$file=$_GET['file'];
if(isset($_GET['filesize'])){
exit;
}
$filepath="/srv/www/htdocs/web98/files/files/$user/$file";
if(!file_exists($filepath)){
exit;
}
else{
$filesize=filesize($filepath);
$filetype=filetype($filepath);
$month=date("m");
$year=date("Y");
$date=$month . $year;
include("/srv/www/htdocs/web98/files/hpworld.inc.php");
$sql="SELECT jahr,monat FROM kundentraffic WHERE benutzername='$user'";
$query=mysql_query($sql);
$array=mysql_fetch_array($query);
$jahr=$array['jahr'];
$monat=$array['monat'];
$datum=$monat . $jahr;
if($datum != $date){
$sql2="INSERT INTO kundentraffic(benutzername,jahr,monat,bytes) VALUES ('$user','$year','$month','$filesize')";
mysql_query($sql2);
mysql_close();
}
else{
$sql3="SELECT bytes FROM kundentraffic WHERE benutzername='$user' AND jahr='$year' AND monat='$month'";
$query3=mysql_query($sql3);
$array3=mysql_fetch_array($query3);
$existbytes=$array3['bytes'];
$newbytes=$existbytes + $filesize;
$sql4="UPDATE kundentraffic SET bytes='$newbytes' WHERE benutzername='$user' AND jahr='$year' AND monat='$month'";
mysql_query($sql4);
mysql_close();
}
header("Content-type: $filetype");
header("Location: $filepath");
exit;
}
?>
Kommentar