Einzelnen Beitrag anzeigen
  #5  
Alt 22.09.2005, 15:36:05
farion farion ist offline
Anfänger
 
Registriert seit: Sep 2005
Beiträge: 3
AW: Performance bei mysql und blobs

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

Geändert von farion (22.09.2005 um 15:36:24 Uhr)
Mit Zitat antworten