echo $begrüßung;
Noch ein paar Ergänzungen.
- /pics komplett für den HTTP-Zugriff sperren (Order deny, allow sowie Deny from all) - dann kann *niemand* mehr von außen auf die Bilder zugreifen.
Noch besser ist es, das pics-Verzeichnis gleich außerhalb des DocumentRoot abzulegen, dann benötigt man auch keine HTTP-Zugriffssperre, die mit einem versehentlichen Löschen der .htaccess nicht mehr vorhanden ist. Und da der OP die <Directory>-Direktive des Apachen verwenden kann, hat er höchstwahrscheinlich auch Einfluss auf die Verzeichnisstruktur. Lediglich das Auslieferungsscript muss unterhalb des DocumentRoot liegen oder es muss eine andere Apache-Konfiguration dafür sorgen, dass es aufgerugen wird. Der Möglichkeiten gibt es viele.
// Erlaubte Dateiendungen
$allowedExtensions = array ('.jpeg', '.jpg', '.png', '.gif', '.pdf');// MIME-Typ-Mappings
$mimeMappings = array (
'.jpeg' => 'image/jpeg',
'.jpg' => 'image/jpeg',
'.png' => 'image/png',
'.gif' => 'image/gif',
'.pdf' => 'application/pdf'
);
Das kann man optimieren. Du hast hier eine doppelte Datenhaltung. Einmal stehen die Endungen in $allowedExtensions, zum anderen genau die gleichen nochmal als Schlüssel in $mimeMappings. Statt
if (!in_array ($extension, $allowedExtensions)) {
kann man
if (!isset($mimeMappings[$extension])) {
oder
if (!array_key_exists($extension, $mimeMappings)) {
notieren und sich $allowedExtensions sparen.
- Bilder so in den HTML-Code einbinden:
<img src="/pics.php/bild1.jpeg" ...>
Dann wird also content.php aufgerufen und $_SERVER['PATH_INFO'] auf '/bild1.jpeg' gesetzt.
Hier wäre zu prüfen, ob das Feature PathInfo überhaupt verfügbar ist. Im Apachen kann es mit AcceptPathInfo beeinflussbar. Im IIS habe ich unterschiedliche Erfahrungen gemacht, kann aber grad nicht genau benennen, unter welchen Umständen PathInfo verfügbar ist oder nicht.
Alternativen zu PathInfo wären der Querystring bzw. GET-Parameter und eine URL-Umschreibung mit mod_rewrite. Letztere ist vor allem dann sinnvoll, wenn bereits vorhandene Links nicht durch das Einfügen des .php geändert werden sollen. Eine Alternative zu mod_rewrite wäre ForceType, mit der man ein Script namens pics (ohne Endung) durch den PHP-Handler schicken kann. Normalerweise ist ja nur die Dateiendung .php konfiguriert, durch PHP behandelt zu werden.
echo "$verabschiedung $name";