Peter Körner: Download & Reload

Ich habe eine Seite, auf der ein Download-link auf ein PHP-Script ist (nach der art: get.php?id=53), d.h., ich habe es in der Hand, welche Header gesendet werden. Auf der gleichen Seite ist eine Möglichkeit diesen Download zu Voten, aber nur wenn ein Cookie ('hasdownloaded_53'='true') gesetzt ist. Dieses wird in der get.php gesetzt. Das Problem: Ich klicke auf den Download Link und der Download-Dialog öffnet sich. Wenn nun der Download fertig ist, müsste sich Seite mit dem Link aktualisieren, da dort immer noch 'Sie müssen die Datei erst Downloaden, bevor sie Abstimmen können' steht. Frage: Wie kann ich nach dem Download die Quellseite neuladen?

Thx, Peter

  1. Ich habe eine Seite, auf der ein Download-link auf ein PHP-Script ist (nach der art: get.php?id=53), d.h., ich habe es in der Hand, welche Header gesendet werden. Auf der gleichen Seite ist eine Möglichkeit diesen Download zu Voten, aber nur wenn ein Cookie ('hasdownloaded_53'='true') gesetzt ist. Dieses wird in der get.php gesetzt. Das Problem: Ich klicke auf den Download Link und der Download-Dialog öffnet sich. Wenn nun der Download fertig ist, müsste sich Seite mit dem Link aktualisieren, da dort immer noch 'Sie müssen die Datei erst Downloaden, bevor sie Abstimmen können' steht. Frage: Wie kann ich nach dem Download die Quellseite neuladen?

    Nach dem Download: Gar nicht, denn Du hast keine Möglichkeit, das Ende des Downloads mit dem Neuladen der Seite zu synchronisieren. Im Browser (bzw. Javascript) existiert ein Download-beendet-Ereignis nicht, Dein Downloadskript wiederum hat keine Möglichkeit, dem Browser das Ende des Downloads mitzuteilen (genauer gesagt: dort die Seite neu zu laden).

    Du kannst allerdings versuchen, den Download-Verweis in der Seite durch einen Javascript-Schnippsel zu ersetzen, welcher erst den Download startet (möglicherweise in einem neuen Fenster, damit er sich nicht den Ast absägt, auf dem er sitzt) und einige Sekunden später "seine" Seite neu lädt. Cookies kommen immer vor den Daten; die Chancen sind also gut, daß der Browser diese Cookies schon benutzen kann, noch während die dazugehörende Datei in der Leitung steckt.

    Vergiss aber bitte den <noscript>-Bereich nicht, ansonsten hast Du einige Nutzer, die nicht einmal die Datei runterladen können.

    Gruß,
      soenk.e