[php] sessie + fileheader werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het volgende stukje code waarmee ik een bestand ter download aanbied. Dit werkt prima, alleen wanneer ik session_start(); probeer te gebruiken om een gebruiker te authentificeren gaat het fout.... Het bestand kan wel gedownload worden, maar bij het openen is hij corrupt.

Iemand enig idee hoe ik toch een sessie kan gebruiken zonder een corrupt bestand te krijgen?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
session_start();

$strFileName = $_GET['file'];
$strDirName = $_GET['dir'];

$file = $_SERVER['DOCUMENT_ROOT']."/secured/".$strDirName."/".$strFileName;
$handle = fopen($file, "r");
$contents = fread($handle, filesize($file));
fclose($handle);

                    header("Content-disposition: attachment; filename=".$strFileName); 
                    header("Content-Type: application/octet-stream; name=".$strFileName); 
                    header("Content-length: ".filesize($file));

                    echo $contents;

Acties:
  • 0 Henk 'm!

  • Steephh
  • Registratie: Juni 2003
  • Laatst online: 19-09 22:43
Is het bestand wat je hebt geupload toevallig niet ook corrupt?

_@/'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
BMRS schreef op 17 september 2004 @ 15:11:
Is het bestand wat je hebt geupload toevallig niet ook corrupt?
nee, dat zeker niet... en als ik de regel session_start(); weghaal gaat het ook goed.....

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Staat er boven dit PHP blok _niets_ anders?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
NMe84 schreef op 17 september 2004 @ 15:13:
Staat er boven dit PHP blok _niets_ anders?
nope... compleet leeg, dit is echt het hele script

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Ik had vorige week hetzelfde probleem:
[rml][ HTTP] IE accepteert mijn headers niet[/rml]/

De oplossing was session_cache_limiter() in te stellen.

Waarom IE bij sommige bestandstypes en headers besluit een x aantal bytes toe te gaan voegen is mij geheel onduidelijk...

[ Voor 23% gewijzigd door kvdveer op 17-09-2004 15:24 ]

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Denk je ook nog even aan je security? Momenteel is je systeem erg zwak:
jouwbestand.php?dir=../../../../../etc/&file=passwd geeft je gebruikers een net iets te vrije toegang tot je server.
Je bestandsnaam en dir op slashes controleren zou dat deel van het probleem op moeten lossen...

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
Waarschijnlijk wordt er een warning naar je scherm gestuurd die dus in je gedownloade bestand terecht komt. Kijk maar eens in de error log van apache dan kan je zien wat er gebeurd.

Die warning zal dan wel iets te maken hebben met sessies die niet werken op jouw systeem.

[ Voor 21% gewijzigd door stekkel op 17-09-2004 15:36 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
kvdveer schreef op 17 september 2004 @ 15:23:
Ik had vorige week hetzelfde probleem:
[rml][ HTTP] IE accepteert mijn headers niet[/rml]/

De oplossing was session_cache_limiter() in te stellen.

Waarom IE bij sommige bestandstypes en headers besluit een x aantal bytes toe te gaan voegen is mij geheel onduidelijk...
Top!! dit wassum... session_cache_limiter('none'); boven de session_start; en hij werkt. Thanx!
Pagina: 1