Mo. 03.05.2010
20:39 Uhr
#1
- Registriert seit
- 19.06.2008
- Beiträge
- 238
- Beitragswertungen
sers leutz
Ich stehe gerade einwenig auf dem schlauch.ich möchte nach dem Download einer Datei noch ein Script ausführen, doch durch den Header der den Download einleitet wir das ja verhindert. Kann mir da vielleicht einer weiterhelfen.
verwendete ilchClan Version: 1.1
Mi. 05.05.2010
08:24 Uhr
#2
- Registriert seit
- 16.06.2006
- Beiträge
- 15.334
- Beitragswertungen
Führe es vorher aus? Ansonsten solange kein exit/die kam, sollte das Script eigentlich trotzdem doch noch weiterlaufen.
Fr. 07.05.2010
19:03 Uhr
#3
- Registriert seit
- 19.06.2008
- Beiträge
- 238
- Beitragswertungen
Ja Mairu das macht es auch, aber das Script soll erst nachdem der Header gesendet worden ist ausgeführt werden. Desweger weis ich ja nicht weiter und hab keinen Ansatz, wie ich das realisieren kann.
Fr. 07.05.2010
19:14 Uhr
#4
Solange nichts ausgegeben wird, kannst du auch vor dem Header ein Script ausführen lassen.
Sa. 08.05.2010
07:49 Uhr
#5
- Registriert seit
- 16.06.2006
- Beiträge
- 15.334
- Beitragswertungen
Du kannst die Ausgabe mit ob_start() unterdrücken/abfangen (ggf. mit ob_end_clean() beenden), aber ich meinte auch, dass du das Script auch nach dem Senden des Headers noch ausführen kannst, die Frage ist ja auch, was soll das Script machen?
Sa. 08.05.2010
13:20 Uhr
#6
- Registriert seit
- 19.06.2008
- Beiträge
- 238
- Beitragswertungen
Das Script soll nachdem download den Downloadlink ändern.
Sa. 08.05.2010
13:45 Uhr
#7
- Registriert seit
- 16.06.2006
- Beiträge
- 15.334
- Beitragswertungen
Wenn du verhindern willst, dass eine Datei nur von jemanden herunterladen werden kann, der auch deine Seite besucht hat, also Fremdverlinkung verhindern willst, gibt es da wirklich bessere Wege.
Einfach in der Session, beim Aufruf der Downloadseite ne Variable setzen und beim Download überprüfen, ob diese existiert und nur dann den Download zur Verfügung stellen, dann musst aber auch mit header und readfile arbeiten und nicht header('Location ...); verwenden, habe das in einer der letzten Versionen auch schon geändert, du müsstest also nur noch das mit der Session einfügen, allerdings geht das denke ich bei FTP nicht, weiß nicht, ob du das immer noch mit FTP machst, ansonsten wie gesagt, wenn du vor dem exit; irgendwas ausführst, sollte das auch noch gemacht werden.
Sa. 08.05.2010
14:00 Uhr
#8
- Registriert seit
- 19.06.2008
- Beiträge
- 238
- Beitragswertungen
Ja ich mach das noch über ftp, desweger ja das mit dem Link ändern. Und mein Problem ist im Moment, das das Script den Link vor dem Download schon ändert und somit der Download nicht mehr vorhanden ist.
Zuletzt modifiziert von Vips am 08.05.2010 - 14:59:53
So. 09.05.2010
10:17 Uhr
#9
- Registriert seit
- 16.06.2006
- Beiträge
- 15.334
- Beitragswertungen
Mhh naja der Link wird halt beim User erst später interpretiert, deswegen ist das so.
Also die Dateien liegen auf einem entfernten Server, ist das lediglich ein Fileserver (FTP), oder könntest du dort auch PHP einsetzen um die Dateien zu verteilen, dann könnte man den Download ja auch auf dem Zielserver verarbeiten.
So. 09.05.2010
11:28 Uhr
#10
- Registriert seit
- 19.06.2008
- Beiträge
- 238
- Beitragswertungen
Leider nicht ist ein reiner FTP
Mo. 10.05.2010
09:40 Uhr
#11
- Registriert seit
- 16.06.2006
- Beiträge
- 15.334
- Beitragswertungen
Dann wirds schwierig, du könntest zwar irgendwie hinterlegen, dass du den Dateinamen dann meinetwegen beim nächsten Seitenaufruf, oder zeitlich gesehen, erst nach 5 Minuten änderst oder so, keine Ahnung ob du die Möglichkeit der Benutzung von cronjobs hast, aber ich denke eher nicht, sonst müsstest du wohl auch nicht auf einen ftp zurückgreifen.
Mo. 10.05.2010
20:46 Uhr
#12
- Registriert seit
- 19.06.2008
- Beiträge
- 238
- Beitragswertungen
Stimmt, Cronjobs sind auch nicht möglich. Könnte man den Download auch ohne Header machen, oder gibt das große Probleme.
Di. 11.05.2010
14:36 Uhr
#13
- Registriert seit
- 16.06.2006
- Beiträge
- 15.334
- Beitragswertungen
Mit der header funktion kannst du dem Browser halt weiterleiten, das würde noch über ein meta Tag oder Javascript gehen, oder du gibst den Link direkt an, ändert aber nix am Problem, dass du das Umbenennen machen würdest, bevor der User den Link überhaupt aufgerufen hat.
Di. 11.05.2010
22:06 Uhr
#14
- Registriert seit
- 19.06.2008
- Beiträge
- 238
- Beitragswertungen
Hab da jetzt ne Lösung gefunden, weis bloß nicht ob die wirklich gut ist.
Und zwar werden jetzt bei jedem Aufruf des Downloadbereiches die Downs verglichen (eine zweite Spalte in der DB), wenn da jetzt unterschiede bestehen werden die Links geändert.
Zuletzt modifiziert von Vips am 11.05.2010 - 22:07:16