Login Bereich mit PHP

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Login Bereich mit PHP

    Hallo,
    ich möchte für eine Homepage gern zwei Login Bereiche erstellen.
    Im ersten sollen sich Benutzer mit Name und KEnnwort anmelden,
    und haben dann möglichkeit Dateien (PDF oä) per Link herunterladen zu können.
    Im zweiten sollen Benutzer DAteien hoch und runter laden können, also einen privaten Bereich haben, wo Dateien für sie und von ihnen liegen.

    Zunächst der erste Bereich.
    Ich habe mir aus einem tutorial php Funktionen herausgesucht,
    die ein login realisieren.
    Ich habe eine mysql Datenbank erstellt, mit dem Feldern Benutzer, und Kennwort (und ID), dann fragt die login.php Benutzername und Kennwort ab. Wenn beides stimmt, wird die login-index.php angezeigt. Die Datei logout.php meldet einen wieder ab.
    Das geht.
    Aber ... wenn ich angemeldet bin, also die index-login.php angezeigt wird, wie kann ich hier z.b. links erstellen, die dann auf Dateien zum herunterladen verweisen?
    html code währe so:
    <a href="test.pdf" alt="Testdatei">Download hier</a>
    was müsste ich in der php datei angeben.
    Klar, ich könnte jetzt auch dieses eingeben. Aber mit der htaccess möchte ich den Zugriff von aussen sperren, damit keiner mit deep-links an die Dateien kommt.
    Welchen php code müsste ich in die index-login.php schreiben, so das ich eine Datei downloaden könnte???

  • #2
    du meinst also wenn ein nicht registrierter user dann eingibt:

    www.deineseite.de/test.pdf
    in the web is less more

    Kommentar


    • #3
      Möchtest du Quellcode von uns, oder Hilfestellung bei deinen eigenen Versuchen? Wenn zweiteres, dann zeig mal her, was du bis jetzt hast.
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        Lösung ohne .htaccess möglich?

        Ich weiß nicht, ob man das per htaccess einfach lösen kann. Der Verzeichnisschutz per htaccess erfordert ja einen eigenen Login.
        Das wäre dann doppelt gemoppelt.

        Wenn man Zugriff auf das Rootverzeichnis des Servers hat, kann man die Downloaddateien in ein Verzeichnis außerhalb des httpdocs-Verzeichnisses
        legen.

        Per URL kann dann von außen schonmal auf dieses Verzeichnis niemand zugreifen.

        Per PHP hat man aber über Dateibefehle (z.B. readfile) dennoch Zugriff auf dieses Verzeichnis. Allerdings kann man dann nicht einfach die Links zu den
        Dateien in den Code schreiben.

        Man schreibt eine php-Datei, der man die als Parameter die ID eines Datenbakeintrages mit dem Dateipfad übergibt.

        Der Link für den User sähe dann zum beispiel so aus.
        echo "<a href='get_download_file.php?ID=4'>Filename<a>";

        in get_download_file.php hat man dann eine Funktion die entweder die entsprechende Datei mit readfile ausgibt oder die Datei temporär für den User in ein Downloadverzeichnis unter httpdocs kopiert und erzeugt den Link dynamisch. (In diesem Fall müsste der User halt zweimal klicken, da der endgültige Link erst generiert wird, Vorteil bei der Kopielösung, man kann die Dateien auch in einem X-beliebigen Verzeichnis unterhalb httpdocs verstecken und braucht nicht unbedingt Rootzugriff.)

        Da man in der PHP-Datei prüfen kann, ob der User eingeloggt ist, kann ein Unbefugter auch durch Eingabe von get_download_file.php?ID=5 nicht zugreifen.

        Leider kann ich dies im Moment nicht genauer ausführen, da ich selbst
        diesen Lösungsansatz bisher noch nicht benötigt habe.

        Eventuell ist auch eine Lösung über die Verzeichnisrechte des Servers möglich.
        Zuletzt geändert von media-authoring; 09.07.2009, 22:05.

        Kommentar


        • #5
          Zitat von unset Beitrag anzeigen
          Möchtest du Quellcode von uns, oder Hilfestellung bei deinen eigenen Versuchen? Wenn zweiteres, dann zeig mal her, was du bis jetzt hast.
          sowohl als auch.

          bisher habe ich eine mehr als popelige login umgebung:
          Testumgebung
          wo man sich anmelden und abmelden kann. die daten (kennwort und nutzername) stehen in einer mysql datenbank. nach dem login wird die datei index-login angezeigt. es währe schon viel wert, wenn nach dem login jeder nutzer erstmal ne eigene login seite bekäme, und er von dort dateien herunter laden könnte. optimalerweise nur er und nicht von aussen erreichbar.

          Kommentar


          • #6
            Um den direkten Zugriff auf die Dateien mit einer url zu vermeiden brauchst du noch ein wenig mehr, da bei dem aufruf einer .pdf datei kein php mehr vorher ausgeführt wird.

            Die einfachste Variante ist dann natürlich ein htaccess Schutz davor zu machen, allerdings sehe ich dass nicht als so besonders sauber an.

            Mein Vorschlag wäre die Datei an einen anderen unbekannten Pfad zu stecken und den ursprünglichen .pdf Link durch mod rewrite auf eine ursprüngliche .php datei umzulenken, die bei angemeldeten Benutzer einfach einen gefälschten header und die Datei ausgibt, bei nicht angemeldeten Benutzer eine 404 vortäuscht.

            Damit wird ein normaler Link abgewiesen, die abstrakten adressen der neuen Dateiorte sollte dann keiner erraten dürfen.
            Webdesign und Webentwicklung - Plunix.de

            Kommentar

            Lädt...
            X