Mit PHP 2 Aktionen

Halo Leute,

habe folgenden PHP Script geschreieben.
Es soll aus einem gesendeten Formular eine html Datei erzeugen und den Inhalt darin speichern, was es auch sehr gut macht.

Nun mein Problem:

  1. Es soll danach eine Webseite geöffnet werden.

  2. Die erzeugte Datei soll zum Download angeboten werden.

Die Ding ist das Script erledigt nur eine von beiden Sachen.

<?php
$dateiname = $_GET['name'] ;                 // Dateiname 
$handle = fopen ( $dateiname, "w" );       // Datei erstellen
fwrite ( $handle, $_GET['inhalt']  );         // Datei schreiben
fclose ( $handle );                          // Datei schließen

// Aktion 1 Webseite öffnen
header ("Location: http://api.qrserver.com/v1/create-qr-code/?size=60x60&data=seite.bplaced.net/$dateiname");

// Aktion 2 ermöglicht den download                            
header('Content-type: application/htm');
header('Content-Disposition: attachment; filename="' . basename($dateiname) . '"'); 
header('Content-Transfer-Encoding: binary'); 
readfile($dateiname); 

exit;  // Datei wird nicht weiter ausgeführt
?>

Hat jemand eine Idee was da verändert werden muss damit beides erledigt wird?
Würde mich freuen wenn mir jemand helfen könnte.

unmöglich, ein Browser kann nur eine Sache laden und anzeigen… entweder die Datei oder den QR Code… am ehesten müsstest du den download im Hintergrund starten… also z.B. neuer Tab…

Da müsstest du schon Javascript benutzen…

bzw. möglicherweise ginge es auch wenn man nen meta refresh für den DL nutzen, und den QR code direkt anzeigen würde… Da einige Browser im falle eines downloads die seite nicht komplett verlassen…

Man müßte sich eben genau überlegen, was man eigentlich will.
Mit der ersten Aktion wird ja wohl auf eine Graphik weitergelitten.
Stattdessen könnte man lokal mit SVG solch eine Graphik mit QR-Code erzeugen und dort
zudem einen Verweis auf ein PHP-Skrpt unterbringen, welches dann das Herunterladen bewirkt.
Der Nutzer müßte den Verweis in der Graphik dann immer noch anklickern, was ja aber kein
größeres Problem ist.

Ansonsten müßte man die Funktionen anders sortieren oder einordnen, etwa in (X)HTML per iframe oder object. oder gar img für die Graphik.
Das ermöglicht es dann sowohl die Graphik anzuzeigen, als auch das Herunterladen anzuleiern. Einsatz von java-scrtipt ist also sicher weder notwendig noch sinnvoll, zumal man ja einfach in einem (X)HTML- oder SVG-Dokument per Element a das herunterzuladende Dokument referenzieren kann.

Joa… iframe wäre wohl wirklich die einfachste Lösung, daran hatte ich nicht gedacht :stuck_out_tongue: [size=85](was u.a. daran liegen mag, das ich generell iframes vermeide und das oft eher schlechtes Design ist. Selbst externe Dienste wie TS Viewer laden heutzutage selten über frames)[/size]

Danke für eure Antworten.

Schade das PHP das nicht kann.

Habe das abr nun mit Frames gelöst.