Antworten auf deine Fragen:
Neues Thema erstellen

Erledigt - Mit "denny from all" ist meine sounddatei über ein Browser nicht aufrufbar. DOCH

F

face2000

Guest



Mit "denny from all" ist meine sounddatei, die sich innerhalb eines Ordners befindet, über einenen Browser nicht aufrufbar. Das ist super und auch gewollt.;)

Doch, leider kann ich auf meiner PHP Seite :

HTML:
<audio id="play1">
  <source src="soundclips/meineanakonda.mp3" type="audio/mp3" />
</audio>

Leider nicht mehr abspielen? Kennt ihr denn ein paar Alternativen? Ich bitte um eine Unterstützung. :ciao:
 
Zuletzt bearbeitet von einem Moderator:

Myhar

Hat es drauf

Wer ist Denny? Und warum kommt er von überall? Oder meinst du deny? :-D

Wenn du den Zugriff sperrst, kannst du die Datei auch nicht einbinden, das eine schließt das andere aus. Du kannst den Zugriff beschränken, so dass Besucher deine Ordnerstruktur (und die darin enthaltenen Files/Ordner) nicht sehen, wenn sie zB /soundclips/ direkt aufrufen. Aber wenn du den Zugriff direkt auf /soundclips/meinaudio.mp3 sperrst dann ist der Zugriff auch gesperrt, egal wo du die Datei einbindest.
 
F

face2000

Guest

Wer ist Denny? Und warum kommt er von überall? Oder meinst du deny? :-D

Wenn du den Zugriff sperrst, kannst du die Datei auch nicht einbinden, das eine schließt das andere aus. Du kannst den Zugriff beschränken, so dass Besucher deine Ordnerstruktur (und die darin enthaltenen Files/Ordner) nicht sehen, wenn sie zB /soundclips/ direkt aufrufen. Aber wenn du den Zugriff direkt auf /soundclips/meinaudio.mp3 sperrst dann ist der Zugriff auch gesperrt, egal wo du die Datei einbindest.

Lach. Sorry. Gemeint war, "Deny". Richtig. Die Sounddateien befinden sich in einem Ordner "soundclips". Darüber hinaus enthält diese noch eine .htaccess Datei. Damit Niemand unerlaubten Zugriff darauf hat.

Das mit dem Einbinden war mir schon irgendwie klar, hab's dennoch versucht.

Gibst da vielleicht Alternativen, wenn ja, welche? Kannst Du mir bitte helfen?

Mir ist das Einbinden der mp3 Datein sehr wichtig.

Edit: Meine PHP Seite, in der meine mp3 Dateien eingebunden werden, befindet sich außerhalb des Ordners: "Soundclips"
 
F

face2000

Guest

Okay, super vielen Dank. Hab's selbst heraus gekriegt! :)

Edit: Oder auch nicht =(
 
Zuletzt bearbeitet von einem Moderator:

Myhar

Hat es drauf

F

face2000

Guest

Okay, super vielen Dank. Hab's selbst heraus gekriegt! :)
Du musst abstellen, dass er die Verzeichnisstruktur ansehen kann (kenne mich mit servern eher mäßig aus, aber das ist eine konfiguration)

Einfachste Lösung ist, im betreffenden Folder eine leere index.php zu haben. Siehe auch folgende Antwort:
https://stackoverflow.com/questions...eing-directory-contents-but-allow-server-to-u
Auch von dort:

wenn ich beispielsweise meine mp3 datei über den Browser aufrufe:



Soll das verboten werden.

Allerdings darf ich die Sounddatei problemlos in die index.html Seite einbinden. Ich hoffe ich konnte mich verständlich ausdrücken.
 

dkarvounaris

Lead Web Developer

PSD Beta Team
Dazu musst du die Rewrite-Funktionalität des Apache benutzen.
Eine Menge praktische Beispiele findest du auch gleich in der Apache Dokumentation unter http://httpd.apache.org/docs/current/mod/mod_rewrite.html - was du suchst ist im Abschnitt Blocked Inline-Images. Du kannst es für deine Ordner oder Dateinamen anpassen, dabei musst du die erste Zeile vom Beispiel weglassen, dann ist ein direkter Aufruf im Browser nicht mehr möglich.

Allerdings, bedenke zwei Sachen:
1. Der Grund für die erste Zeile in dem Beispiel, welches auch den direkten Aufruf zulässt, ist der, daß der Referer von bestimmten Browser im privaten Modus oder bestimmten Browserplugins gelöscht wird. Wenn das der Fall ist, dann können diese Nutzer deine Datei auch nicht abspielen, weil dessen Aufruf geblockt wird. Der Aufruf ohne Referer sieht ja für den Server dann wie ein direkter Aufruf der URL aus.
2. Der Nutzer kann jederzeit die Datei dennoch erhalten, auch wenn du einen direkten Aufruf blockst, solange sie für die Webseite erreichbar ist. Man kann einen Referer leicht manipulieren, ein kleines PHP Script schreiben um den Referer zu faken oder einfach im Untersuchen-Modus des Browsers auf die Datei zugreifen und sie speichern/kopieren.

Einen effizienten Schutz wie du ihn willst, gibt es nur:
a) Wenn du die Datei erst gar nicht im Internet veröffentlichst, oder
b) Durch propriätere Lösungen die DRM Verfahren integrieren.
 
F

face2000

Guest

Vielen Dank für deine ausführliche Antwort. Nein, ich versuche mich gerade als Synchronsprecher. Aber es muss nicht sein, dass jeder meine Sounddateien ohne Weiteres einfach runterladen bzw. abspielen kann.

Die Soundclip Seite ist eh passwort geschützt. Da kommen nur spezielle Firmen ran.

Beste Grüße
 

Curanai

Aktives Mitglied

Allerdings, bedenke zwei Sachen:
1. Der Grund ...
2. Der Nutzer ...

Nein, auch noch zwei weitere ... ^^
3. Plugins für sowas einsetzen - alles, was derartig kommt, kann direkt mitgenommen werden. Mit anderen Worten: Was bei Youtube etc. klappt, klappt auch bei sowas. ;)

4. Puristisch: analoger Mitschnitt mittels DAW, Audacity o. ä. ;)

"public" und "nicht mitnehmbar" – doch, das geht. Allerdings nicht per Script und auch nicht für schmalen Taler: Media-Server. Da beißen sich sehr viele die Zähne dran kaputt. Mir ist so, als hätte Adobe mal sowas gehabt ... Krake Google spuckt das hier sofort aus: bzw.

Bist Du in einer Sprecherkartei gelistet? Ja: Wie sieht das Urheberrecht mit der Nutzung dieser Datei über die aus? Nein: Warum nicht? Ein Beispiel: http://www.sprecherkartei.info/

Alle Punkte von oben erfüllt - die dortigen Muster kann ich mir so wegnehmen; null Zeitaufwand.

Schauen wir bei anderen Sprechern: https://sprecher-holger-koch.de/sprecherdemos/
... gleiches Szenario ...

Aber: Es darf durch Unbefugte gar nicht verwendet werden. Zugegeben, wenn es von einem DJ in irgendeinem Track mit zwei, drei Sekunden verwendet wird, kräht kein Hahn danach (wobei die sich Filmzitate etc. auch schon klemmen). Produktioner verzichten sehr gern auf derartige Aktivitäten, da Bummerang (explizit bei Kosten).

Hier dann vielleicht ein Kompromiss: Bitrate runter! Versuche also eine Mischung aus Qualität (Kompression) und Länge. Demnach solltest Du vielleicht nur höchstens 96er kbit/s mp3s verwenden - keine 320er. ;)
 
F

face2000

Guest

Ich hab's gerade selbst gelöst mit:

Beim Einloggen wird die Soundclips Seite erstellt -> die Datei ist eine zufällige Zahlenkombination 239836.php (als Beispiel)
dann kann man sich beliebig alles anhören. Sobald man die nächste Seite aufruft, wird die php Seite mit unlink gelöscht.

edit: @
Curanai Hey cool Danke für deinen ausführlichen Beitrag
 
Zuletzt bearbeitet von einem Moderator:

msa1989

Bin da

@face2000

Nur ein kleiner Hinweiß: Was wenn der Besucher nach abspielen deines Beispiels den Browser schließt. Dann bleibt deine Datei erhalten oder welcher Service löscht diese Dateien dann? Ich empfehle dir diese Lösung auch wenn sie funktionieren mag nicht zu verwenden. Das ganze funktioniert wesentlich einfacher und sicherer:

Wenn dir die Lösung von Curanai zu komplex ist (kann schon etwas dauern einen Mediaserver dafür anständig zu konfigurieren) dann "liefere" die Datei über PHP aus. Das ganze kann so ablaufen:
  1. Nutzer loggt sich ein
    => PHP Session wird gestartet
  2. Wenn Nutzer eine Datei anhören will schaut der Link dann z.B. so aus:
    www.meine-seite.de/sample.php?datei=meine-datei.mp3
    • Nutzer loggt sich aus => Session wird gelöscht, ODER:
    • Nutzer verlässt die Webseite bzw. schließt den Browser
      => keine Sorge, PHP kümmert sich darum dass die Session verschwindet.
Die sample.php macht dann folgendes:
  1. Prüfen ob eine gültige Session existiert
  2. Prüfen welche Datei angefragt ist
  3. Zurückliefern der Datei
    => dazu müssen in PHP header gesetzt werden. Für ein PDF sähe das so aus:
    PHP:
    header('Content-Type: application/pdf');
    header('Content-Disposition: inline; filename="meine-datei.pdf"');
    header('Content-length: '.filesize('meine-datei.pdf'));
    Je nach Datei (MP3, WAV etc.) musst du halt schauen wie da die Header sein müssen. Ich glaub in meiner Liste fehlen noch 2 - 3 weitere aber google weiß da sicher alles
Auf deiner eigentlichen Seite schaut der Link zu der Datei natürlich dann in etwa so aus:
HTML:
<audio id="play1">
  <source src="www.meine-seite.de/sample.php?datei=meine-datei.mp3" type="audio/mp3" />
</audio>
 
F

face2000

Guest

Viel zu kompliziert, ich würde es so programmieren, sobald er den Browser schliesst oder eine neue Webseite aufruft, wird mit unlink die php Seite gelöscht.

Alles Andere kann ich leider nicht =/
 

msa1989

Bin da

Wenn du es schaffst dass beim Schließen des Browsers deine php unlink Funktion aufgerufen wird dann bist du wohl der beste php programmiere den es gibt :)

Also ernsthaft: Das geht nicht. Wenn der user einen button bei dir drückt: => Ja kein Problem. Aber ohne Rückkanal (z.b. Websockets) bekommst du nicht mit wann der Benutzer die Seite wirklich verlässt. Wenn du es unbedingt so (tut mir leid aber es ist schlecht) umsetzen willst, dann bau doch noch eine Backup Funktion ein die dann alte Dateien wieder löscht. Nach 2 Tagen wird er schon die Webseite nicht mehr auf haben.
 
F

face2000

Guest

Wenn du es unbedingt so (tut mir leid aber es ist schlecht) umsetzen willst, dann bau doch noch eine Backup Funktion ein die dann alte Dateien wieder löscht. Nach 2 Tagen wird er schon die Webseite nicht mehr auf haben.

Eine Sehr gute Idee!!!!! Danke. =) Das schmorrt den Server dann nicht ab... hihi
 
F

face2000

Guest

Wie kann ich es anstellen, dass eine generierte .php Seite nach 30 Minuten per unlink gelöscht wird? Kann mir Jemand helfen?
 

Curanai

Aktives Mitglied

Guten Morgen.

Mit Cronjob:
- Dateinamen mit einer Art "Flag" kennzeichnen (bspw. immer gleicher Anfang; quasi "Schlüsselwort_beliebigerHash", damit Du beim Iterieren durchs Verzeichnis die zu löschende Datei findest (erspart Dir das Ablegen des Namens in einer Datenbank).
- per Automation dann eben eine Methode/Funktion aufrufen, die Deine per Iteration (durchs Verzeichnis) gefundene Datei via unlink() entfernt; beachte, dass Du hier sowohl den absoluten Pfad nehmen solltest (beginnt NICHT mit dem Verzeichnis Deiner Domain; Info bekommst Du aus php_info()) sowie bei Deinem Hoster mal testen müsstest, ob der das zulässt.
- neue Datei erstellen nach dem Schema "Schlüsselwort_beliebigerHash.php"

Mit Pseudo-Cron:
Wenn Du keinen echten Cronjob einsetzen willst/kannst, so kannst Du einen "Pseudo-Cron" anwenden. Funktioniert in Deinem Fall wie folgt:
- Deine Internetseite verfügt an relevanten Stellen (bspw. wenn der User den Bereich besucht, wo diese Datei eingesetzt wird; oder auch schon früher) über eine weitere Funktion, die prüft, wann zuletzt gelöscht wurde und ob daher gelöscht werden muss.
- jeder Besucher ruft das Script auf, welches lediglich ausliest (Datenbank/File auf Server), wann die Löschung bzw. Neuanlage zuletzt lief.
- Ist der letzte Zeitpunkt 30 Minuten zum jetzigen Zeitpunkt her, wird die vorige Datei gelöscht, eine neue erstellt und der Zeitstempel aktualisiert
- ist der letzte Zeitpunkt noch keine 30 Minuten her, passiert nichts

Der Vorteil der letzten Art ist, dass tatsächlich kein Dienst läuft, der nicht erforderlich ist (bspw. wenn kein Besucher kommt und dennoch der Cronjob stets läuft). Bei Wartungsarbeiten kann man Cronjobs auch mal "vergessen" bzw. "übersehen".

Bedenke, dass diese Datei bei Google und sonstigen Suchmaschinen nix zu suchen hat; weder per Google Analytics, noch "per Zufall" indexiert werden sollte (also: noindex im Meta-Bereich und/oder Suchmaschinen eher eine 404 liefern bei Request auf diese Seite). Wenn Dich der Einsatz der Seite interessiert, würde ich zu einer eigenen Art des Loggens tendieren (kleine Table mit Dateiname, geklickte Files, Tagesdatum und Gesamt-Impressionen; geht auch als JSON-Konstrukt in einem File).

Deine Dateierstellung bzw. den Namen der Datei ("Schlüsselwort_" etc.) kannst Du simpel halten - ein paar Beispiele (bedenke, dass die [ und ] nicht dazu gehören);
- "Schlüsselwort_[ md5("DEIN_BEGRIFF" . time()) ].php // time, damit der Hash immer anders ist
- "Schlüsselwort_[ time() ].php // oder direkt nur als timestamp der Generierung

In Deiner Internetseite, die später diese Datei nutzen (verlinken) soll, wirst Du eine Funktion benötigen, die durch das Verzeichnis wieder iteriert (also "schau Dir alle Dateien in einem Verzeichnis an und suche nach Dateien mit dem Namen "Schlüsselwort_" am Anfang"; der "DirectoryIterator" in PHP ist super-easy). Es empfiehlt sich daher eigentlich, dass diese Datei in einem eigenen Verzeichnis liegt und nicht im "root" Deiner Domain.

Aber vielleicht hat noch wer eine andere Idee/andere Vorschläge oder würde es ganz anders lösen. Es ist immer abhängig davon, was schon eingesetzt wird (bspw. Cronjobs), wie fit Du bist oder ob man unbedingt für sowas winziges eine Datenbank involviert (weil ein Name gespeichert werden müsste). Das ist alles wohl die Kategorie "Geschmackssache". ;)

Viel Erfolg - das ist viel wichtiger. ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.634
Beiträge
1.538.448
Mitglieder
67.555
Neuestes Mitglied
scheflo
Oben