Ich möchte per PHP einen Registry-Schlüssel erzeugen, den der Anwender herunterladen kann. Das Skript wird in dem Moment aufgerufen, in dem der Anwender einen Link anklickt, der für die Datenbankabfrage nötige Parameter wird mit GET übergeben.
Ich möchte gerne, daß dann ein Fenster aufgeht, in dem der Browser das übliche "Vor Ort ausführen" und "Auf der Festplatte abspeichern" anbietet.
Das müßte sich eigentlich machen lassen, indem man mit header() arbeitet. Vom Prinzip her ist ein Registry-Schlüssel ja eine Text-Datei, aber wenn ich eine testweise hochgeladene Datei herunterladen möchte, dann wird xy.reg mit "Content-type: audio/mpeg" angezeigt, und der Browser bietet im Dialogfeld an, die Datei abzuspielen ("Öffnen mit...").
Korrekt wäre vermutlich als Mime-Typ "text/plain", aber dann wird der Inhalt nicht zum Download angeboten, sondern direkt im Browser angezeigt, was nicht der Sinn der Sache ist. Welcher Mime-Typ wäre empfehlenswert?
Außerdem wird automatisch im Feld, das nach "Auf Diskette/Festplatte speichern" kommt, der Name des Skriptes angegeben, also "bla.php" anstatt "xy.reg". Gibt es eine Möglichkeit, über die Header den Namen zu verändern?
Hier erstmal auf die Schnelle das, was ich bisher zusammengezimmert habe (die Plausibilitätsprüfung kriegen wir später, die ist aber ja für die eigentliche Frage irrelevant):
Das einzige, was mir spontan einfällt, ist eine Lösung mit mod_rewrite, aber ich würde es wenn möglich lieber ohne machen.
Und ich bin auch nicht ganz sicher, ob es diese Frage ins PHP-Forum gehört, aber hier schien sie mir am besten aufgehoben.
Ach so, Nachtrag: Content-Disposition scheint für mich ungünstig, da
Und die Leute, die es betrifft, verwenden zum Teil ausschließlich IE 5.0.
Ich möchte gerne, daß dann ein Fenster aufgeht, in dem der Browser das übliche "Vor Ort ausführen" und "Auf der Festplatte abspeichern" anbietet.
Das müßte sich eigentlich machen lassen, indem man mit header() arbeitet. Vom Prinzip her ist ein Registry-Schlüssel ja eine Text-Datei, aber wenn ich eine testweise hochgeladene Datei herunterladen möchte, dann wird xy.reg mit "Content-type: audio/mpeg" angezeigt, und der Browser bietet im Dialogfeld an, die Datei abzuspielen ("Öffnen mit...").
Korrekt wäre vermutlich als Mime-Typ "text/plain", aber dann wird der Inhalt nicht zum Download angeboten, sondern direkt im Browser angezeigt, was nicht der Sinn der Sache ist. Welcher Mime-Typ wäre empfehlenswert?
Außerdem wird automatisch im Feld, das nach "Auf Diskette/Festplatte speichern" kommt, der Name des Skriptes angegeben, also "bla.php" anstatt "xy.reg". Gibt es eine Möglichkeit, über die Header den Namen zu verändern?
Hier erstmal auf die Schnelle das, was ich bisher zusammengezimmert habe (die Plausibilitätsprüfung kriegen wir später, die ist aber ja für die eigentliche Frage irrelevant):
PHP-Code:
<?php
include("dbconnect2.php");
if (empty($_GET["id"])) exit;
else $id = $_GET["id"];
$sql = "select username, name, secret
from sip_buddies
where id = '".$id."'
limit 1";
$result = mysql_query($sql) or die(mysql_error());
$datensatz = mysql_fetch_assoc($result);
extract($datensatz);
header("Content-type: text/plain");
//header("Content-type: audio/mpeg");
?>
[HKEY_CURRENT_USER\\Software\\Anwendung]
"Username"="<?php echo $username; ?>"
"Pass"="<?php echo $secret; ?>"
"Name"="<?php echo $name; ?>"
Und ich bin auch nicht ganz sicher, ob es diese Frage ins PHP-Forum gehört, aber hier schien sie mir am besten aufgehoben.
Ach so, Nachtrag: Content-Disposition scheint für mich ungünstig, da
There is a bug in Microsoft Internet Explorer 4.01 that prevents this from working. There is no workaround. There is also a bug in Microsoft Internet Explorer 5.5 that interferes with this, which can be resolved by upgrading to Service Pack 2 or later.
Kommentar