Das ist ein ziemliches durcheinander. Die Frage ist aber nach wie vor, warum der download Dialog nicht angezeigt wird?
Da bis hierhin kein offenischtlicher Fehler zu sehen ist, solltest du ganz vorne anfangen und prüfen, was dein Browser macht wenn er diesen Header bekommt. Das geht einfach in dem du dir nur diesen ausgeben läßt.
So könnte eine test.php aussehen:
PHP-Code:
<?php
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="test.php"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: 0');
Wird damit der Dialog angezeigt?