Baixar arquivo seguro em PHP, negar usuário sem permissão

Eu estou fazendo um site onde você pode comprar arquivos para pontos virtuais e baixá-los. Não quero permitir que os usuários façam o download dos arquivos sem comprá-los, então tenho que ocultá-los. Eu coloquei todos os arquivos em uma pasta sem permissão para ninguém, exceto host, o problema é quando alguém compra um arquivo e quer baixá-lo.

Eu decidi fazer um arquivo getter, que irá verificar as permissões do usuário e depois imprimir o conteúdo do arquivo. Meu código até agora:

<?php
    require_once('content/requirements.php'); //mysql connections
    secure(1); //disconnect unlogged users

    if (!isset($_GET['id'])) //if no file id provided
        die();

    $fid=mysql_real_escape_string($_GET['id']); //file id

    $query="SELECT * FROM files WHERE user_id = "$_SESSION['user_id']." AND file_id = ".$id;

    $q=mysql_query($query);

    if (mysql_num_rows($q)!=1) //if no permission for file or multipe files returned
        die();

    $file=mysql_fetch_array($q); //file id
    $sub=mysql_fetch_array(mysql_query("SELECT * FROM sub WHERE id = ".$file['file_id'])); //payment id
?>

Agora, quando tenho certeza de que o usuário está autorizado a fazer isso, o phpScript deve gravar o conteúdo do arquivo e enviar o cabeçalho apropriado para permitir que o usuário baixe o arquivo.

Como ler o arquivo byte-by-byte e imprimi-lo e o que devo escrever no cabeçalho (), para tornar o arquivo passível de download (para que você não precise copiar o seu conteúdo).

Talvez essa não seja a melhor maneira de fazer isso, mas foi a melhor coisa que pensei em algum tempo.

Obrigado por qualquer ajuda.

questionAnswers(2)

yourAnswerToTheQuestion