Hallo,
der PHP-Skript sieht brauchtbar aus. Aber mir ist erneut nicht klar, was dieses JavaScript da oben für einen Vorteil bringen soll. Lass es weg und verlinke einfach direkt auf diese download.php.
Was das file_exists Problem angeht: du musst in $dir den absoluten Pfad zu diesem Verzeichnis auf dem Server schreiben. Sowas wie "/srv/www/htdocs/download" oder so. Wenn du einen Fehler von PHP bekommst siehst du den Pfad meistens. Der hängt auch stark von deinem Anbieter ab. Im Zweifel einfach mal eine Funktion in PHP aufrufen, die nicht existiert. In der dann erscheinden Fehlermeldung siehst du den Pfad.
Noch 'ne Frage: warum erstellst du nicht einfach eine Datei, nennst sie .htaccess, schreibst
Header set Content-disposition "attachment;" rein und lädst sie in den Downloads-Order?
Liebe Grüße,
Valentin