Problem mit Speichern unter....

alex130

Erfahrenes Mitglied
Hi
Ich hab ein problem und zwar, erstelle ich mit meinem Script .txt Dateien und ich will, dass dann das Fenster mit speichern unter kommt, soweit funktioniert es auch schon, aber in der Datei steht dann der Quellcode der index.php drinen und nicht der Inhalt der .txt Datei, könnt ihr mir bitte helfen?
Danke
Hier mein Code:
PHP:
$rand = rand('10000','99999');
$fb = fopen('./files/text-'.$rand.'.txt', 'a');
fwrite($fb,$_POST['code']."\n\n\nCopyright (c) \n");  
fclose ($fb);

$filepath = ''.$link.'files/text-'.$rand.'.txt';

header("Content-type: plain/text");
header("Content-Disposition: attachment; filename=text-".$rand.".txt");
readfile('$filepath');
 
Zuletzt bearbeitet:
PHP:
$rand = rand('10000','99999');
$fb = fopen('./files/text-'.$rand.'.txt', 'a');
fwrite($fb,$_POST['code']."\n\n\nCopyright (c) \n");  
fclose ($fb);

$filepath = $link.'files/text-'.$rand.'.txt';

header('Content-Type: application/octet-stream', true);
header("Content-Disposition: attachment; filename=text-".$rand.".txt");
readfile($filepath);
exit;

Versuch es einmal so.

Übrigens, Variablen die in einfachen Anführungszeichen stehen, werden nicht interpretiert.
 
Zuletzt bearbeitet:
Gleichnamige Header-Felder werden bei der header()-Funktion standardmäßig überschrieben. Nur mit dem zweiten Parameter kann dies verhindert werden.
In deinem Beispiel wird also der Wert („application/octet-stream“) mit („text/plain“) überschrieben.
 
Benötigst du die Textdateien später noch?
Wenn nicht(die zufällige Benamsung erweckt zumindest nicht den Eindruck), spare dir doch das Speichern, und gebe den Inhalt direkt aus:
PHP:
header('Content-Type: application/octet-stream', true);
header("Content-Disposition: attachment; filename=text-".time().".txt");
echo $_POST['code']."\n\n\nCopyright (c) \n"; 
exit();
 
Hi[
Danke für eure Antworten, aber das funktoniert leider auch nicht, ich habs jetzt mal so gemacht:
PHP:
  $rand = rand('10000','99999');
  $fb = fopen('./files/text-'.$rand.'.txt', 'a');
  fwrite($fb,$_POST['code']."\n\r Copyright (c) by www.notiz.dl.am \n");  
  fclose ($fb);

$filepath = ''.$link.'files/text-'.$rand.'.txt';

header("Content-type: plain/text");
header("Content-Disposition: attachment; filename=text-".$rand.".txt");
echo $_POST['code']."\n\r Copyright (c) by www.notiz.dl.am \n";
Jetzt funktoniert es zwar, aber im normalen Windows Editor, werden die Zeilenumbrüche nicht dargestellt...
lg
 
Zurück