php naar xls (excel) bestandsformaat security probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 332438

Topicstarter
Ik ben bezig met een sql database die wordt weggeschreven in een xls.
Zodra ik de xls heb opgeslagen via mijn php script d.m.v de fwrite functie en vervolgens open in excel krijg ik de volgende melding:
"Het bewerken van dit bestandstype wordt afgeraden vanwege de instellingen door bestandsblokkering in het Vertrouwenscentrum".

De xls kan ik ook niet via php uitlezen, dit heeft denk ik te maken met de bestandsblokkering.
Ik heb ook geprobeerd het bestand op te slaan d.m.v headers (download).
Hiervoor heb ik de volgende headers meegegeven:

code:
1
2
3
4
5
6
7
8
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=producten.xls"); 
header("Content-Transfer-Encoding: binary");



Ik heb gegoogled hoe ik de xls zonder bestandsblokkering kan opslaan via php maar helaas nergens iets over te vinden. Ik hoop dat iemand hier een oplossing weet.

Acties:
  • 0 Henk 'm!

  • nika
  • Registratie: Oktober 2003
  • Niet online
Is dit niet gewoon Windows 7 (?) die bestanden die mogelijk uitvoerbare code kunnen bevatten (.docx, .xlsx, .doc, .xls) soort van read only maakt. Heb ik ook met alle Excel en Doc bestanden die van een internet source komen. Kan je eventueel uitzetten in Windows settings.

[ Voor 3% gewijzigd door nika op 27-09-2010 16:44 ]


Acties:
  • 0 Henk 'm!

Anoniem: 332438

Topicstarter
nika schreef op maandag 27 september 2010 @ 16:44:
Is dit niet gewoon Windows 7 (?) die bestanden die mogelijk uitvoerbare code kunnen bevatten (.docx, .xlsx, .doc, .xls) soort van read only maakt. Heb ik ook met alle Excel en Doc bestanden die van een internet source komen. Kan je eventueel uitzetten in Windows settings.
Ja dat kan kloppen, zodra ik de file van eigen computer opsla werkt het prima.
Maar in dit geval wordt de xls gegenereerd vanuit een sql database d.m.v php alsvolgt wordt deze weer uitgelezen door een externe server ook d.m.v php, php kan het bestand niet uitlezen door de bestandsblokkering hier moet ik dus vanaf zien te komen.

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Nu online
Ik vind het een warrig verhaal.
Je schrijft dat je met php niet het bestand kunt lezen wat je net met php (fwrite) hebt geschreven? Of gebeurt het lezen en schrijven op verschillende servers?

Hoe wordt de 'sql database weggeschreven als xls'? Is er in de database een XLS als binary object opgeslagen die je probeert 'streaming' terug te geven (dan hoef je zelfs niets op te slaan) of probeer je aan de hand van bestaande tekst-data in de database op de server een XLS te bouwen die je vervolgens teruggeeft naar de client?

Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
De Content-Type header mag maar een keer voorkomen in de header. Als je alleen Content-Type application/vnd.ms-excel opgeeft gaat het waarschijnlijk wel goed.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Als je het weer door php wilt laten uitlezen waarom dan een xls-file?

Ik vermoed namelijk dat je met een officiele xls-klasse het probeert uit te lezen, maar het bestand is zeer waarschijnlijk geen xls-formaat ( dat schrijf je namelijk niet zomaar even weg met een fwrite )

Zeer waarschijnlijk produceer je gewoon een comma / tab separated bestand. Lees het dan ook in als comma / tab-separated
Pagina: 1