PHP file ter download

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Eelco

eelco

26/06/2007 17:34:00
Quote Anchor link
Ik heb een .php file en die wil ik ter download aanbieden. Dus als iemand op een link klikt dat de bezoeker dan een popupje krijgt en kan kiezen Opslaan als of Openen.

Hoe krijg ik dit voor elkaar ? Ik probeerde het volgende, maar dan krijg ik een bestand ter download waar een PHP error in zit :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
header("Content-type: Application/octet-stream");
header("Content-Disposition: attachment; filename=bestand.php");
@
readfile("http://www.downloadlocatie.nl/bestand.php");
?>



Het bestand download ik dan maar die bevat niet de PHP code maar de output errors :

<br />
<b>Warning</b>: include(setup.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in .... etc
Gewijzigd op 01/01/1970 01:00:00 door Eelco
 
PHP hulp

PHP hulp

17/11/2024 21:23:17
 
PHP Newbie

PHP Newbie

26/06/2007 17:41:00
Quote Anchor link
regel 4:

Je kan geen extern PHP bestand downloaden.
 
Eric Cartman

Eric Cartman

26/06/2007 18:25:00
Quote Anchor link
Tuurlijk wel, als je maar de juiste headers meegeeft. Als downloadlocatie.nl die ook meegeeft, kan het gewoon ;)
 
Robert -

Robert -

26/06/2007 18:36:00
Quote Anchor link
Dan zou dus iemand jou complete broncode kunnen downloaden?
 
Eric Cartman

Eric Cartman

26/06/2007 18:48:00
Quote Anchor link
Ja, is toch niet erg? Als jij een klasse wilt delen.
 
PHP Newbie

PHP Newbie

26/06/2007 21:38:00
Quote Anchor link
Cartman, je kan geen externe php broncode downloaden...

Anders download ik even de config van jou website, en gooi ik je complete database leeg....
 
Onbekend Onbekend

Onbekend Onbekend

26/06/2007 21:58:00
Quote Anchor link
.phps, dan geeft hij de code, dus waarom zou je dan niet dat bestand kunnen downloaden?
 
Leroy Boerefijn

Leroy Boerefijn

26/06/2007 22:05:00
Quote Anchor link
ik denk idd dat .phps de makkelijkste oplossing is ;)

dan is het enige wat de gebruiker moet doen ff CTRL-a Ctrl-c Ctrl-v ;)
 
Bart

Bart

27/06/2007 00:04:00
Quote Anchor link
zippen is een moglijkheid, of een phps, zo doe ik het ook altijd.
 
PHP Newbie

PHP Newbie

27/06/2007 00:10:00
Quote Anchor link
Zijn eigen oplossing is een prima mogelijkheid, alleen werkte deze methode niet, er zat een fout in.

Hij vraagt dus hoe het opgelost kan worden, dus ik vertel hem dat hierboven:

"Je kunt geen externe php bestanden downloaden"

Vervolgens komt er iemand aan die zegt dat het wel kan, maar het kan echt niet, anders kun je even de config van een site afhalen, en dan de site hacken.

En daarna komen mensen met allemaal oplossingen die nergens toe doen, want wat je dan doet, is het script laten zien, terwijl er toch duidelijk staat dat hij het bestand wil laten downloaden...
 
PHP erik

PHP erik

27/06/2007 00:20:00
Quote Anchor link
Amen PHP Newbie. Je hebt helemaal gelijk. Het is onmogelijk. Als het mogelijk zou zijn dan zou ik geen werk meer hebben denk ik.

Dus als het je eigen site is: gebruik relatieve paths, dus geen URL's. Als het je eigen site is maar toch extern: bied .phps (php-source) aan. Als het niet van jou is: accepteer dat het niet kan.

@Iedereen
Als je niet weet waar je over praat (hoi Cartman), reageer dan aub niet.

@Iedereen
Luister ook effe naar PHP Newbie want hij heeft duidelijk soms wat nuttigs te melden.
 
Danny Roelofs

Danny Roelofs

27/06/2007 02:08:00
Quote Anchor link
@Phperik, neem maar alvast ontslag ;-)

Onmogelijk mag je het niet noemen maar je dient wel zelf de beheer te hebben over de configuratie van de webserver en in dit geval praat ik over Apache.

Je kan namelijk uit de hoofd configuratie bestand (httpd.conf) deze regel verwijderen:

AddType application/x-httpd-php .php

En per virtualhost instellen, je kan dus op www.website.nl de php scripts door de parser laten gooien en op download.website.nl er voor kiezen dat php extensie's niet door de parser gaan door deze bovengenoemde regel niet te gebruiken.

@Iedereen

Onmogelijk is pas als je alles doordacht hebt en overal rekening mee hebt gehouden!
Gewijzigd op 01/01/1970 01:00:00 door Danny Roelofs
 
Andries Louw Wolthuizen

Andries Louw Wolthuizen

27/06/2007 02:10:00
Quote Anchor link
Een .php bestand downloaden van een locatie welke je opgeeft met http:// heeft geen zin, je krijgt een gegenereerde pagina terug (immers wordt de pagina al door de http server gegenereerd) exact dezelfde als je zou krijgen in je browser (dus alleen HTML als je geluk hebt).

Mocht je een bestand van je eigen server ter download willen aanbieden, dan kan dit door de relatieve locatie op te geven, dus waar het bestand staat ten opzichte van jouw download script (Stel, het staat in een map hoger en heet setup.php: @readfile('../setup.php'); )

Mocht je de broncode willen laten inzien (van een bestand wat op jouw server staat) door mensen, kopieer/hernoem het bestand dan naar een bestand wat de extensie .phps heeft.

Wat Cartman bedoelt is dat downloadlocatie.nl, mocht het zijn PHP broncode ter download willen aanbieden, het expliciet niet moet laten parsen door zijn PHP parser, dit is een instelling die je niet van "buitenaf" kunt beïnvloeden, en de eigenaren van downloadlocatie.nl zouden er dan dus voor moeten zorgen dat hun webserver de broncode verstuurt i.p.v. de geparste code,
Edit:

Danny Roelofs hierboven vult mij hier goed aan
indien downloadlocatie.nl dit zou doen, dan voegt jouw script daar weinig aan toe en kun je mensen beter direct laten linken naar downloadlocatie.nl.



Hopelijk helpen we je niet van de wal in de sloot, en begrijp je ons een beetje ;)
Gewijzigd op 01/01/1970 01:00:00 door Andries Louw Wolthuizen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.