ja so gehts, es steht in der Datenbank, ob eine Datei als Download ausgegeben werden soll.
Code:
<?php session_start();
require("config.php");
require("inc/functions/std.inc");
sql_connect();
require ("inc/classes/Query.inc");
//Template
require ("inc/classes/Template.inc");
//Rechtemanagement
require ("inc/classes/User.inc");
require ("inc/classes/Group.inc");
require ("inc/classes/RightsMgm.inc");
//Skinsupport
require ("inc/classes/Skin.inc");
$GLOBALS[skin] = new Skin();
function send404(){
header ( "HTTP/1.0 404 Not Found" );
$tmpl = new Template("./skins/".$GLOBALS[skin]->getSkin()."/tmpl/status",null);
$tmpl->set_file("main","404.tmpl");
$tmpl->parseout("main");
}
function send403(){
header ( "HTTP/1.0 403 Forbidden" );
$tmpl = new Template("./skins/".$GLOBALS[skin]->getSkin()."/tmpl/status",null);
$tmpl->set_file("main","403.tmpl");
$tmpl->parseout("main");
}
if(isset($_GET[id])){
$GLOBALS[rights] = new RightsMgm();
$query = new Query("SELECT * FROM ".$GLOBALS[sql_prefix]."dateisys WHERE id = '".$_GET[id]."'");
if($query->numRows()){
if($daten->type == "dir")
send404();
else{
$daten = $query->fetch_object();
if(checkRights($GLOBALS[rights]->getUser(),$daten->rechte,$daten->user_id,$daten->group_id) >= 1){
header("Content-type: ".$daten->type);
if($daten->download == 1)
header("Content-Disposition: attachment; ".$daten->name);
@readfile($GLOBALS[datadir]."".$daten->name);
}else
send403();
}
}else
send404();
}else
send404();
?>
Da sind jetzt halt noch ein paar includes, sollte aber selbsterklärend sein.
Auf jedenfall kann ich so jetzt überprüfen ob die Datei vorhanden ist und ob der momentane User Rechte hat die Datei anzusehen.
Gruss farion