PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   .php Datei downloaden statt ausführen (http://www.selfphp.de/forum/showthread.php?t=3932)

Webstylist 10.04.2003 14:11:18

.php Datei downloaden statt ausführen
 
Hallo miteinander

Ich habe folgendes Problem:

Ich möchte eine Datei *.php zum Download anbieten, doch wenn ich diese normal verlinke wird sie logischerweise ausgeführt statt downgeloadet.
Wie kann ich dieses Problem lösen, ohne dass ich die datei in *.txt oder so umbenennen muss.

Vielen Dank für eure Antworten (hoffentlich) :-)

Dago 10.04.2003 17:33:54

Du könntest in die Datei
PHP-Code:

readfile($_SERVER['PHP_SELF']) 

schreiben, oder per .htaccess den PHP Parser für dieses Verzeichnis ausschalten, oder die Datei in *.phps umbenennen... aber Umbenennen fällt ja weg.

Webstylist 11.04.2003 12:50:19

.htaccess den PHP Parser für dieses Verzeichnis ausschalten
 
Wie kann ich bei .htaccess den PHP Parser für dieses Verzeichnis ausschalten?

Dago 11.04.2003 12:54:46

Code:

php_flag engine Off
Das funzt aber nur, wenn PHP als Modul läuft.

Webstylist 11.04.2003 13:12:26

Gut, so weit läuft es, jedoch wird diese datei jetzt als html ausgefürht und nicht gedownloadet.
Weisst du, wie ich dies machen kann?

saidbuchari 13.04.2003 16:00:40

PHP download
 
hmm ich würde es anders machen. ich würde einfach eine Kopie der PHP datei zippen und die denn zum download anbieten denn zip lädt er auf jeden faqll runter. ist die einfachste methode oder geht das nciht brauchst du die unbedingt als PHP ungezipped?

Webstylist 15.04.2003 12:52:22

Naja, diese Lösung wäre super, doch habe ich ein Problem:

Die Dateien werden nicht von mir geuppt, und somit müsste ich ein Script schreiben, welches die Datei direkt verzippt. Ich habe dies versucht, jedoch ist die Datei nacher nicht brauchbar. (CRC-Fehler)

Weisst jemand, wie ich das lösen kann?

Hier das Script, welches den Fehler verursacht:

zip.cgi auf chmod 755
PHP-Code:

#!/usr/bin/php
<?
$datei = "Pute.pps";
shell_exec('gzip ' .$datei);
?>


Dago 15.04.2003 13:17:39

Du könntest auch mit einem extra Download-Skript arbeiten, welches die PHP-Datei zum Download übergibt:
PHP-Code:

<?php

header
('Content-Disposition: attachment; filename="PHP-Skript.php"'); //Sagt dem Browser, dass es sich um einem Download handelt
header('Content-Type: x-type/subtype'); //"Bug-Fix" für den IE 4.x & 5.x

readfile('phpskript.php');

?>


Webstylist 15.04.2003 13:30:51

Das ist ein geniales Script, doch wenn ich eine Zip-Datei angebe, fehlen dort 7 Bytes

Kann ich das mit nl2br("Datei.zip") beheben, oder wie ist das möglich?

Es handelt sich eben nicht nur um php Dateien, sondern um "alle" möglichen. (z.b. *.doc sollte nicht im browser ausgeführt werden etc.)

Dago 15.04.2003 13:57:51

Zitat:

Original geschrieben von Webstylist
[B]Das ist ein geniales Script, doch wenn ich eine Zip-Datei angebe, fehlen dort 7 Bytes[B]
Das ist merkwürdig... Readfile() sollte eigentlich binary-safe sein.
Eine anderen Möglichkeit, wäre fpassthru:
PHP-Code:

$fp fopen('datei.zip','rb');
fpassthru($fp); //statt readfile
fclose($fp); 

Zitat:

Original geschrieben von Webstylist
[B]Kann ich das mit nl2br("Datei.zip") beheben, oder wie ist das möglich?[B]
Das versteh ich jetzt nicht :-? Wieso nl2br() auf einer binären Datei anwenden? Außerdem wird sie doch so oder so gedownloadet...

Evtl. postest du nochmal dein Skript, damit wir uns ein besseres Bild davon machen können.


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:48:59 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.