Andavos: session_start() bei Downloadbarer Datei

Beitrag lesen

Hallo,
also per PHP realisiere ich, dass der Admin seine Datensätze exportieren kann.
Dazu ruft er eine PHP Datei auf, die dann die DB abfragt und entsprechend Formatiert seine Datensätze ausgibt.

Die Ausgabe soll er sich herrunterladen können, also dass er die Seite Aufruft und er dann ein Downloadfenster erhält.

Dies löse ich so:
header("Content-disposition: filename=text.txt");
header("Content-type: application/octetstream");
header("Pragma: no-cache");
header("Expires: 0");
echo "Dateiinhalt";

Jetzt möchte ich aber, dass nur Personen die auch Zugriff auf den Adminbereich haben, auch die Datensätze herrunterladen darf.
Dazu muss ich eine Session Überprüfen, ob diese gesetzt wurde oder nicht.
Ist dies der Fall, soll er runterladen.

Allerdings habe ich ein Problem mit session_start()

<?php
session_start();
if($session_variable != "xyz")
{
//fehler
exit;
}

header("Content-disposition: filename=text.txt");
header("Content-type: application/octetstream");
header("Pragma: no-cache");
header("Expires: 0");
echo "Dateiinhalt";
?>

Das Problem ist, session_start() sendet (glaub ich) schon einen Header, darum immer wenn ich die Datei jetzt aufruft, sagt mir das Downloadfenster, die Datei sei nicht verfügbar.

Auch wenn ich header("Content...."); vor dem session_start(); einfüge erhalte ich die gleiche Meldung.

Hat jmd. eine Lösung für das Problem, wie man überprüfen kann ob der User eingelogt ist (ohne .htaccess) und dennoch die Datei zum download angeboten wird?

MFG
Andavos