Tach!
Es sollte von außen kein Zugriff auf die Dokumente möglich sein, sondern nur über eine Auswahl in der Anwendung (die passwortgeschützt ist).
Also: Auslesen des directories mit den geschützten pdf-Dateien,
Anzeigen der dort vorhandenen Dateinamen.
Der Anwender wählt eine aus und bekommt dann die pdf-Datei zu sehen.
Da liegt also Werkzeug im Lager. Jeder soll zwar sehen, was es gibt, aber nicht selbständig hineingehen können, um es sich zu nehmen. Der Rundgang im Lager ist also auch nicht gestattet, weil man sonst zugreifen kann. Es gibt nur eine Schautafel am Eingang. Und wer kontrolliert nun den Zugriff, gewährt oder verbietet ihn? Der Lagerverwalter.
Du musst also diese Komponenten nachbilden. Das Lager ist das Verzeichnis außerhalb des Docroot (zur Not innerhalb und generell zugriffsgeschützt). Dein Schautafel-Script listet die Werkzeuge auf, und ein Lagerverwaltungsscript reicht sie raus. Letzteres ist recht einfach. Nach der Zugriffsprüfung (berechtigt, gewünschter Dateiname zeigt auf eine vorhandene Datei im Verzeichnis (mit realpath() die Eingabe auf einen absoluten Dateinamen bringen, gegebenenfalls Verzeichnisnamen voranstellen)) sendest du Content-Type-Header für den Dateityp und reichst sie mit readfile() durch.
dedlfix.