pues mira yo lo tengo asi para un cliente:
para descargar un documento, lo tengo que vaya a auna pagina de descarga (descargas.php) cuando un usuario quiera descargar dicho doucmento al hacer click en el vicnulo del documento, lo lleva directamente al sitio descar,php. en el tope de descarga.php se conculta a la tabla si tiene nivel o no.
yo lo tengo asi:
Código PHP:
//conexion a la bd desde otro script
include"conecion.php";
//consulto y comparo los datos de sesion
$sesion = $_SESSION[id'];
$sql ="SELECT nivel FROM tabla WHERE id_session='$sesion'";
$query = mysql_query($sql) or die(mysql_error());
$ver = mysql_fetch_array($query) or die (mysql_error());
if ($ver['id_session] != $session) {
header ("Location: pagina.aviso.no.actual.login.php");
} else {
//codigo de descarga
$id = //documento a descargar
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$id\"\n");
$fp=fopen($id, "r");
fpassthru($fp);