Benutzer-Werkzeuge

Webseiten-Werkzeuge


webedition:code-examples:customer:downloads-only-for-logged-in-customers

Downloads nur für eingeloggte Kunden

Voraussetzungen

  • webEdition wird auf einem Apache-Webserver betrieben
  • Modul Kundenverwaltung

Downloads, die Sie nur eingeloggten Kunden zur Verfügung stellen möchten, schützen Sie mit einer .htaccess-Datei. Die .htaccess-Datei muss in dem Verzeichnis liegen, in dem Sie die Download-Dateien abgelegt haben. Mit dieser .htaccess-Datei leiten Sie alle Dateiaufrufe eines bestimmten Verzeichnisses auf eine dynamische webEdition-Datei um. Diese überprüft, ob der aktuelle Webseitenbesucher ein eingeloggter Kunde ist oder nicht. Besitzt der Besucher der Website die nötigen Zugriffsrechte (ist eingeloggter Kunde), dann wird an ihn die angeforderte Datei ausgeliefert. Besitzt er nicht die nötigen Zugriffsrechte, wird ihm eine entsprechende Meldung angezeigt.

Quellcode

.htaccess-Datei

RewriteEngine on

# Alle Dateiaufrufe in diesem Verzeichnis werden an die
# Datei "download.php" umgeleitet. Der Pfad zur angeforderten
# Datei wird als Parameter "file" weitergegeben.

RewriteRule (.+) /download.php?file=$1

Vorlage der dynamischen webEdition-Seite "download.php"

<we:sessionStart/>
<we:ifRegisteredUser>
  <?php
    $str_file = (string) $_GET['file'];

    // Grobe Manipulationen am Pfad abfangen
    $str_file = str_replace('../', '..', $str_file);

    $str_file = $_SERVER['DOCUMENT_ROOT'].'/Kunden-Downloads/'.$str_file;

    // Nur wenn die angeforderte Datei auch existiert...
    if (file_exists($str_file))
    {
      // Download-Header setzen
      header('Content-Type: application/octet-stream');
      header('Content-Disposition: attachment; filename="'.basename($str_file).'"');
      // Datei einlesen und ausliefern (ausgeben)
      readfile($str_file);
    }
  ?>
<we:else/>
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <we:title></we:title>
      <we:description/>
      <we:keywords/>
      <we:charset defined="UTF-8">UTF-8</we:charset>
    </head>
    <body>
      <h1>Zugriff verweigert</h1>
      <p>
        Sie haben nicht die Berechtigung, um auf diese Datei zuzugreifen.
      </p>
    </body>
  </html>
</we:ifRegisteredUser>

Weiterführende Informationen

webedition/code-examples/customer/downloads-only-for-logged-in-customers.txt · Zuletzt geändert: 2015/12/28 21:58 von 66.249.64.12

Recent changes RSS feed