php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 05-09-2007, 10:37
Hondo
 Newbie
Links : Onlinestatus : Hondo ist offline
Registriert seit: Dec 2003
Beiträge: 18
Hondo ist zur Zeit noch ein unbeschriebenes Blatt
Standard Download per header

Hallo,
ich möchte Dateien per header zum Download anbieten. Die Dateien liegen aber auf ext. Servern. Wie kann ich das anstellen?
Da die Herkunft der Dateien nicht sichtbar sein darf um den Download zu steuern, muss das per Header geschehen.

Gruß Andreas
Mit Zitat antworten
  #2 (permalink)  
Alt 05-09-2007, 11:06
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du meinst wohl eher Download per HTTP
Also wenn die Daten auf einem externen Server liegen und du sie von deinem Server zum DL anbieten willst, dann brauchst du eine zentrale PHP Datei, die als DL Ziel angegeben wird. Anhand eines entsprechenden Parameters in der URL (GET-Parameter) wird dem Script mitgeteilt, welche Datei geladen werden soll. Dann baut das Script eine Vebindung zum anderen Server auf und verlangt das File. Sobald das ganze File geladen wurde gibt das Script via header() die entsprechenden Vorgaben und die Datei sollte vom Browser runtergeladen werden können.
Das Problem ist, dass du auf dem zweiten Server ebenfalls ein solches Script brauchen wirst (wenn du den direkten DL verhindern willst), denn wenn Server 1 direkt auf die Datei bei Server 2 zugreifen kann, dann kann es auch jeder Client.
Stellt sich also die Frage ob du die DL nicht direkt von Server 2 aus anbieten willst...

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 05-09-2007, 11:10
Hondo
 Newbie
Links : Onlinestatus : Hondo ist offline
Registriert seit: Dec 2003
Beiträge: 18
Hondo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,
sorry, kenn mich da nicht so sehr aus. Kannst du mir noch einen Tipp geben wo ich so ein Script finden könnte?

Andreas

BTW, jede Datei liegt i.d.R. auf einem anderen Server.
Es handelt sich um eine Modifikation für SMF Forum, wo man eine Datei-URL angeben kann und Berechtigte dann die Datei herunterladen ohne eben die konkrete Quelldatei zu kennen - sonst könnte die Datei beliebig heruntergeladen werden.

Geändert von Hondo (05-09-2007 um 11:14 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 05-09-2007, 11:27
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Erstmal: Hast du Zugriff auf die anderen Server sprich kannst du dort PHP Scripte einsetzen ? Oder kannst du auf jenen Servern der Zugriff sonstwie einschränken ?

Ein fertiges Script genau für deine Anforderung (mehrere Server) wirst du wohl kaum finden. Du wirst in jedem Falle diverse Anpassungen machen müssen. Wie das gehen könnte findest du z.B. bei http://www.php-faq.de/q/q-datei-download.html

Bei konkreten Problemen kommst du einfach wieder

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 05-09-2007, 12:44
Hondo
 Newbie
Links : Onlinestatus : Hondo ist offline
Registriert seit: Dec 2003
Beiträge: 18
Hondo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,
nein, hab ich nicht.
Das Script bzw. die SMF Modifikation die ich erstelle wird ein sog. "Testzentrum für Softwaretests".
d.h. ein "Testgeber" startet einen neuen Test indem er Angaben zur testenden Software macht und eine URL einträgt.
User die die Software testen wollen klicken im Testbeitrag einen Button, der Testgeber erhält eine mail, wo er per klick den Tester akzeptieren oder
ablehnen kann. Wenn akzeptiert wird der Tester eingetragen und dann soll der Download freigegeben werden.

D.H. ich weiss jetzt noch nicht welche Server beteiligt sind, noch habe ich darauf Zugriff.
Den Link seh ich mir jetzt aber erst mal an.

Gruß Andreas
Mit Zitat antworten
  #6 (permalink)  
Alt 05-09-2007, 12:52
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Kriegst du die Testgeber dazu, dass sie dir erlauben ihren Code auf deinem Server zum DL vorzuhalten ? Ansonsten wird das wohl sehr sehr aufwändig werden...
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #7 (permalink)  
Alt 05-09-2007, 13:18
Hondo
 Newbie
Links : Onlinestatus : Hondo ist offline
Registriert seit: Dec 2003
Beiträge: 18
Hondo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nein, nicht möglich.
der Link hat auch nichts gebracht da dieser auch davon aus geht dass der Download auf dem eigenen Server ist.
Falls ich jetzt halt keine Lösung finde werde ich wohl einen normalen Link verwenden bzw. per header ein redirect machen. Hat leider den Nachteil dass der Speichern/Öffnen Dialog nicht kommt.

Gruß Andreas
Mit Zitat antworten
  #8 (permalink)  
Alt 05-09-2007, 13:33
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Hat leider den Nachteil dass der Speichern/Öffnen Dialog nicht kommt.
Und der User den direkten Pfad sehen kann und damit die Datei beim entfernten Server auch direkt runterladen könnte. Ausserdem hast du so auf dem entfernten Server keine Möglichkeit zu verifizieren, dass der Testgeber den Tester auch zum Testen authorisiert hat.
Anstonsten müsstest du deine Testgeber dazu bringen ein PHP Script von dir zu installieren, das prüft ob ein Benutzer einen bestimmten Code testen darf und erst dann den DL erlaubt.
Würde aber voraussetzen, dass entweder deine MySql DB Verbindungen von aussen erlaubt (damit der User vom entfernten Server aus verifiziert werden kann) oder du musst die Testgeber dazu bringen bei ihnen auch eine DB SW zu installieren, die dann von deinem Script (welches die Testgeber auf ihrem Server liegen haben) zwecks Authorisierung abgefragt wird.

Das wird eine Bastelei...

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #9 (permalink)  
Alt 05-09-2007, 14:05
Hondo
 Newbie
Links : Onlinestatus : Hondo ist offline
Registriert seit: Dec 2003
Beiträge: 18
Hondo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

richtig, Bastelei.
Aber der Downloadpfad wird nicht angezeigt, nur der Dateiname und der Domainname des Servers. Also imo OK so.

Gruß Andreas
Mit Zitat antworten
  #10 (permalink)  
Alt 05-09-2007, 15:16
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Aber der Downloadpfad wird nicht angezeigt, nur der Dateiname und der Domainname des Servers. Also imo OK so.
Stimmt nicht denn du willst
Zitat:
Falls ich jetzt halt keine Lösung finde werde ich wohl einen normalen Link verwenden bzw. per header ein redirect machen
Ein header redirect an eine externe URL muss dem Browser den gesamten Pfad mitteilen (inkl Protokoll,Server, Pfad und Datei) und nach dem Redirect steht in der Browserzeile der komplette Pfad zur Datei --> also kann man auch direkt runtrladen. Gleiches gilt für einen Link.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #11 (permalink)  
Alt 05-09-2007, 15:18
Hondo
 Newbie
Links : Onlinestatus : Hondo ist offline
Registriert seit: Dec 2003
Beiträge: 18
Hondo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,
ja wenn ich den Link zur weiterleitenden php Datei im neuen Fenster öffne sehe ich ihn. wenn ich direkt anklicke kommt nur der Dialog. Die Seite die aufruft wird ja per redirekt wieder zurückgeleitet.

Andreas
Mit Zitat antworten
  #12 (permalink)  
Alt 05-09-2007, 15:26
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Was verstehst du unter weiterleitenden php Datei ? Eine Datei auf deinem Server mit einem Redirect zum Download ? Wenn ja dann verwende mal den FF mit der LiveHeader Extension. Und siehe da da wird der komplette Pfad bekannt gegeben.
Mehr Sinn würde es machen wenn deine PHP Datei, den Download vom Server selber holt und dann an den Client durchreicht. Würde aber auch nicht verhindern, dass der DL direkt aufgerufen werden kann.
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #13 (permalink)  
Alt 05-09-2007, 15:47
Hondo
 Newbie
Links : Onlinestatus : Hondo ist offline
Registriert seit: Dec 2003
Beiträge: 18
Hondo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

na dies:
PHP-Code:
<?php
    header
("HTTP/1.1 301 Moved Permanently");
    
header("Location: $download");
    exit;
    
redirectexit('topic='.$topic.'.0');
?>
Das seltsame ist alle Zip-Dateien werden bei mir ohne Dialog geöffnet, und bei meinem Notebook kommt der Dialog bei den gleichen Links.
Muss irgend eine Einstellung im Browser wohl sein.

Andreas
Mit Zitat antworten
  #14 (permalink)  
Alt 05-09-2007, 16:01
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
header("Location: $download");
Genau diese Zeile wird dafür sorgen, dass der Client die URL zum DL erhält und damit kann sie auch eingesehen werden.
Und was genau soll deine letzte Zeile bewirken ? Ausgeführt wird sie bestimmt nicht !

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:16 Uhr.