mp3 download-link verstecken (zumindest oberflaechlich)

tutschdamoon

Grünschnabel
Hallo,
ich schlage mich seit einer weile mit einem Problem herum und hoffe ich bin hier richtig!?

Es soll auf meiner Seite mp3 Files zum freien Download geben.
Dies allerdings nur für registrierte Benutzer. Die Registrierung ist frei.
Kostet also nichts! Wer nicht registriert ist darf die mp3 Files als Stream oder ich denke
in einem Flashplayer sich zwar anhören, aber nicht downloaden. Das man diese dann
aufnehmen kann stört mich nicht weiter. Da es viel einfacher ist sie zu downloaden.
Und zu dem die Registrierung ja "for free" ist.
Damit habe ich ein wenig Kontrolle da rüber wer und wie ernst gemeint meine Seite besucht.

Nach dem man sich eingeloggt hat, erscheint der Downloadlink. So weit so gut!

Aber wenn nicht eingeloggt, dann möchte ich wie gesagt, dass die Files trotzdem gespielt werden können.
Eine Variante, die mit einem Flash-Mp3player der in swf oder so umwandelt, fällt weg weil ich dann alle Files doppelt haben muss, und dann mit dem Platz nicht reiche. Zu dem muss das ganze automatisch geschehen.
Ich habe das File, es wird in die Datenbank eingetragen, ausgelesen, und eine Seite mit den Streams erstellt.
Da kann ich also keine swf-Files von Hand erstellen.

Jetzt muss ich irgendwie den Link zu den mp3s verschleiern. (Das muss nicht 100% sein, sondern nur die Sache erschweren, dass die Anmeldung der einfachere Weg ist)

Ich habe es mit .htaccess versucht, aber dann will der Flashplayer vor dem abspielen eine Authentifizierung. Mit Attributen habe ich es auch versucht. Ich dachte dabei an die Ausführung von einem Script, aber keine Lese Rechte für Gruppen und User.

Was kann ich sonst noch tun?
Gibt es eine Möglichkeit einer automatischen Authentifizierung via Session Variable oder ? zu einem .htaccess geschützten Verzeichnis?
Einen Flashplayer, der mit mp3 oder xml Playlist umgehen kann und dem man nicht im Quellcode, sondern auf eine andere Weise den Dateinamen samt Pfad übergeben kann?

Den Player den ich ursprünglich gedacht zu benutzen, ist dieser:
http://www.jeroenwijering.com/?item=Flash_MP3_Player

Vielleicht kann mir ja eine/r auf die Sprünge helfen
Vielen Danke
Torge

ach ja! ich habe auch etwas über mcrypt gelesen, habe aber keine ahnung wie ich das mit einem flashmp3 player in verbindung bringen kann.

Nachtrag: Ich habe von Flash nicht viel Ahnung.
 
Hi,

mir ist wahrscheinlich nicht ganz klar, worin Dein Problem besteht - folgenden Satz verstehe ich z.B. nicht:
Eine Variante, die mit einem Flash-Mp3player der in swf oder so umwandelt, fällt weg weil ich dann alle Files doppelt haben muss, und dann mit dem Platz nicht reiche. Zu dem muss das ganze automatisch geschehen.

Wenn ich den Rest recht verstanden habe, geht es Dir darum, mp3-Dateien, die sich in einem Verzeichnis befinden, mit Flash abzuspielen, als Downloadlink anzubieten, dabei aber den Zugriff von extern zu verbieten.

Du kannst von einer SWF aus durchaus eine Session-ID an ein PHP-Script übergeben, und zwar per GET-Parameter (entweder beim Aufruf per LoadVars.sendAndLoad oder sogar bei der Sound.loadSound-Methode).

Dann (wenn die Authentifizierung stimmt) kannst Du die mp3-Datei per Script ausgeben lassen.

Gruß
.
 
Hallo,

danke für deine Antwort!
Ich habe mich da etwas komisch ausgedrückt.
Was ich mit der Flashvariante meinte ist, dass ich im internen Bereich die mp3-Files anbiete, sie also schon auf dem Server liegen habe.
Jetzt gibt es ja Programme wie SWiSH Jukebox die eine mp3-Datei in eine swf oder flv Datei umwandeln. Dies wäre zuviel für mich. Ich möchte lediglich mit den vorhandenen mp3 Dateien arbeiten.

Du kannst von einer SWF aus durchaus eine Session-ID an ein PHP-Script übergeben
Da wüsste ich gerne wie es andersrum funktioniert.
Dann könnte ich "geheim" den Pfad und Dateinamen an den Player übergeben.
Ich kenne mich nur leider in Flash nicht richtig aus.

Da fällt mir ein...
Der Flashplayer bekommt ja schon etwas übergeben.
Allerdings mit JavaScript. Da werde ich mal ansetzen und versuchen dies mit PHP zu übergeben.

Code:
<script type="text/javascript">
	var s2 = new SWFObject("mp3player.swf", "line", "240", "20", "7");
	s2.addVariable("file","mp3/play.xml");
	s2.addVariable("backcolor","0x00000");
	s2.addVariable("frontcolor","0xFFFFFF");
	s2.addVariable("lightcolor","0xEECCDD");
	s2.addVariable("displayheight","0");
	s2.write("player2");
</script>

Erst mal Danke

Torge
 
Hi,

was Du dem SWFObject übergibst, ist allerdings im Quelltext sichtbar - LoginDaten haben dort nichts zu suchen.

Du kannst entsprechende Daten aber per LoadVars-Objekt vom PHP-Script erfragen (vereinfachte Vorgehensweise):
Code:
var _session = "";

var lv = new LoadVars();

lv.onLoad = function() {
  _session = this.sessionid; // Hier kommt die Rückgabe des Scripts an!
}

lv.login = "Username";

lv.pass = "Passwort";

lv.sendAndLoad("login.php", lv, "POST");
PHP:
if ($_POST("login") == "Username" && $_POST("pass") == "Passwort")) {
    // Session starten ...
    echo "sessionid=".$session_id;
} else {
   echo "sessionid=0";
}

Auf diese Weise sind die ersten Logindaten zwar in der SWF hartcodiert, der Benutzer müsste die SWF aber zumindest dekompilieren, um an die Daten zu kommen (und danach das Script per POST ansprechen, um überhaupt eine Rückgabe zu bekommen).

Gruß
.
 
Hallo,

ich möchte ja eigentlich nur einen Link übergeben und keine Logindaten, es sei denn zu einem .htaccess geschützten Bereich.
Ich werde aber morgen mal anhand von Deinem Model versuchen den Pfad und den Dateinamen zu übergeben.
Mal sehen wie weit ich komme.
Werde dann meine Miss/Erfolge hier beschreiben.

Danke erst mal

Torge
 
hey,

hab den selben player verwendet und mich lange mit diesem problem gespielt wie man die playlist verstecken kann. eine möglichkeit die dir sicher hilft (sofern du adobe flash hast) ist folgende:

im source ordner von jeroenwijerings-flash player die .fla datei öffnen. musst da nur kurz mit dem font am anfang aufpassen (der font im ordner sollte auf deinem system im windows/font ordner sein). dann gehst du zur script ebene (oben in der zeitleiste). im action-script feld n bissi runterscrolln und dort gibt es die möglichkeit eine zeile auszukommentieren und zwar die mit der variable "prefix" (var prefix = "blabla"). das kommentierst du aus und setzt deinen link zu den songs. jetzt musst du nur in der xml datei den direkten dateinamen nehmen und fertig.

unregistrierte user können jetzt den ordner praktisch nur mehr erraten, während du registrierten usern den direkten link geben kannst :)

hoffe das hat geholfen ;)

lg
 
hallo,

das hat sehr geholfen!
ist auch schon einer meiner gedanke gewesen!
allerdings konnte ich dies noch nicht umsetzen, aus zeitlichen gruenden.

ich dachte, dass die javascript variable die den pfad und namen des mp3 file nennt,
auch irgendwo angenommen werden muss von dem actionscript.
dort muss man dann ja nur den pfad vor die variable schreiben und nur noch den namen des mp3 file uebergeben. (das mp3 soll dann mal einer finden)
mit deiner antwort fuehle ich mich jetzt auch noch mehr in der idee bestaerkt und ich weis jetzt sogar wo ich suchen muss.

vielen dank!
ich werde, wenn ich einen erfolg verzeichnen kann, mich noch mal melden.
jetzt muss ich weiter meinen umzug vorbereiten.

gruss

torge

@Tobias
vielen dank auch an dich!
deine loesung habe ich mir auch durch den kopf gehen lassen, aber ich denke eine variable aendern ist eine sache, das ganze actionscript umschreiben eine andere.
ich denke da bin ich nicht bewandert genug.
danke trotzdem

torge
 
Zurück