Problem mit Session und Header

proloser

Erfahrenes Mitglied
Hallo,

ich möchte in einem Mitglieder-Bereich downloads anbieten und es sollen auch nur Mitglieder die eingeloggt sind darauf zugreifen können.

Versucht hab ich es mit folgendem Code:
PHP:
session_start();


// Die Funktion user_login() befindet sich in der "inc_function.php"

if(user_login() == true) {
  session_write_close();

  header("Content-Type: application/force-download");
  header("Content-Disposition: attachment; filename=test.zip");
  header("Content-Length:". filesize("downloads/test.zip");
    
  readfile("downloads/test.zip");
}

Ich bin darauf gekommen, damit vor dem Header auch keine Session gestartet werden darf. (?)

Dadurch bekomm ich jedesmal eine Fehlermeldung:
Code:
download.php von DOMAIN kann nicht heruntergeladen werden.

Die Internetseite konnte nicht geöffnet werden.
Sie ist entweder nicht verfügbar oder konnte nicht geöffnet werden.
Versuchen Sie es später erneut.

Gibt es für das Problem eine Lösung?


MfG proloser
 
Zuletzt bearbeitet:
funktioniert das einloggen?

ich mach es immer so:

ich habe eine Datei namens check.php
PHP:
<?php
session_start ();
if (!isset($_SESSION['username'])) header ("Location: login.php");
?>

Hier prüf ich ob eine bestimmte Session gesetzt ist. Wenn ja, dann wunderbar, wenn nicht dann leite ich zur login.php

Diese check.php includiere ich dann in jede meiner Seiten
 
Das einloggen funktioniert und der Download startet auch. Wenn ich den Link direkt im Browser aufrufe bekomm ich die Fehlermeldung, sobald ich den Link auf meiner Seite integriere (<a href....) funktioniert es.

Woran kann das liegen?
 
Wie jetzt?

Wenn du den link so eingibst (mögliche Variablen haben alle einen Wert) ****t es nicht, aber wenn du eingelogt bist und den link anklickst, dann ****t es?

Vergleich doch mal beide Links
 
Zurück