PHP: Wie kann ich den direkten URL-Zugriff auf eine Datei blockieren, aber trotzdem zulassen, dass sie von angemeldeten Benutzern heruntergeladen wird?
Ich habe eine website, wo Benutzer sollten in der Lage sein log-in und hören sich ein Lied (eine selbst erstellte mp3). Ich will es machen, damit der angemeldete Benutzer kann listen/download/was auch immer, und die Datei sollte sich auf dem server befinden (nicht gespeichert werden, in der MySQL-Datenbank), aber nicht in der Lage sein, um den Zugriff durch nicht-Nutzer, die den Pfad der URL.
Zum Beispiel: sagen, meinen mp3-liegt bei mysite.com/members/song.mp3 Wenn Sie eingeloggt sind, sollten Sie in der Lage, um zu sehen, die mysite.com/members/index.php Seite, die es erlauben, Zugang zu dem song.mp3-Datei. Wenn Sie nicht angemeldet sind, wird der mysite.com/members/index.php Seite wird nicht zeigen Ihnen den song.mp3 Datei und die Verknüpfung direkt in es sollte nicht Zugriff gewähren.
Ich bin mir ziemlich sicher, dass dies geschieht mittels htaccess, und ich habe eine Menge Googeln bereits, und gesucht auf hier. Die zwei besten Antworten, die ich fand, waren diese htaccess-guide http://perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/ und diese StackOverflow-Frage Blockieren Sie den direkten Zugriff auf eine Datei über http, aber php-Skript Zugriff aber weder alle meine Fragen beantwortet zu erfüllen meine Kriterien. Was bin ich?
InformationsquelleAutor der Frage Bing | 2011-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ordner Mitglieder neuen Ordner erstellen Dateienbewegen sich hier alle Ihre songs, erstellen Sie neue .htaccess - Datei und fügen Sie die folgenden Zeilen:
In Ordner Mitglieder erstellen Sie die Datei get_song.php und den folgenden code hinzufügen:
Und jetzt können Sie verwenden Sie diese URL, um die song-Datei:
http://mysite.com/members/get_song.php?name=my-song-name
InformationsquelleAutor der Antwort B7ackAnge7z
Die einzige Sache, die Sie tun können, um diese über .htaccess erforderlich ist, einen referer, kommt von Ihrer Seite, und es ist NICHT sicher. es ist darüber hinaus trivial zu fälschen, referer und jeder konnte saugen Ihre Website trocknen.
Den NUR Weise werden Sie in der Lage sein, zu haben nur angemeldete Benutzer laden Sie die Datei indem Sie die Datei AUßERHALB Ihres webroot und mit einem PHP-Skript vermitteln den Zugang. Kurz gesagt:
InformationsquelleAutor der Antwort Marc B
Verwenden Sie eine Skriptsprache wie PHP, um Ihre website? wenn ja, dann ist der beste Weg, um ein Skript zu erstellen, mit der "Lieferung" von Inhalten. Speichern Sie den Inhalt in einem geschützten Verzeichnis, dh über Ihre http oder www Ordner. Dann, wenn der Benutzer eingeloggt ist, den link zu Ihrem Inhalt würde wie folgt Aussehen:
http://yoursite.com/listen.php?song_id=xxx
wird das script suchen Sie den gewünschten song von der id und dann die Daten an den Benutzer
InformationsquelleAutor der Antwort Nick