Gå til innhold

Gjemme sti under streaming


Anbefalte innlegg

Case: Hjemme sti fra html kode under streaming av flash video.

 

Sitter å lager ett lite avspillingsystem for flash via php+mysql. Henter sti til flv fil fra mysql db og deretter putter denne i en variabel som flashspillern får tak i.

Fungerer fint når stien står svart på hvitt, men de ter ikke ønskelig at denne står i html dokumentet. Istedenfor /mappe/fil.flv ønsker jeg å få til feks. fil.php?vid=1. Lar dette seg gjøre, evnt noen tips på hvordan?

 

<script type="text/javascript">
var s1 = new SWFObject("flvplayer.swf","single","720","405","7");
s1.addParam("allowfullscreen","true");
s1.addVariable("file","/mappe/fil.flv");
s1.addVariable("image","preview.jpg");
s1.addVariable("width","720");
s1.addVariable("height","405");
s1.write("player1");
</script>

 

Har en alternativ metode jeg tror kan fungere, men den involverer xml og spillelister som må genereres, så en siste utvei...prøver å holde ting enklest mulig da jeg ikke er en ekspert i php.

Lenke til kommentar
Videoannonse
Annonse

<?php
// Fortell browseren det er en FLV-film.
header('Content-Type: video/x-flv');
// Forvandle id til en integer for å hindre SQL injection
$id = (int)$_GET['id'];

// Finn sti fra databasen (f.eks. SELECT path FROM videos WHERE id=$id;)
...

// Send alt innholdet i filen
readfile($file);
?>

Hvorfor, forresten? Hvis det er for å hindre at den blir lastet ned, vil det være ubrukelig. Brukerne kan uansett laste den ned fra denne filen. Husk på at så lenge man kan se filmen, kan man få tak i den. (Sikkerhetstiltak vil bare gjøre det vanskeligere).

Endret av itsmebth
Lenke til kommentar

Er vel mulig å legge til ein session når du laster siden som skal vise en film, og deretter slette sessionen når filmen blir lastet. Dette vil nok stoppe de fleste, men som itsmebth sier så er det alltid mulig å gå rundt det.

 

Edit: Og da selfølgelig returnere ein feilmelding vist en bruker prøve å laste en film uten at sessionen er satt.

Endret av Runar0
Lenke til kommentar
<?php
// Fortell browseren det er en FLV-film.
header('Content-Type: video/x-flv');
// Forvandle id til en integer for å hindre SQL injection
$id = (int)$_GET['id'];

// Finn sti fra databasen (f.eks. SELECT path FROM videos WHERE id=$id;)
...

// Send alt innholdet i filen
readfile($file);
?>

Hvorfor, forresten? Hvis det er for å hindre at den blir lastet ned, vil det være ubrukelig. Brukerne kan uansett laste den ned fra denne filen. Husk på at så lenge man kan se filmen, kan man få tak i den. (Sikkerhetstiltak vil bare gjøre det vanskeligere).

 

Virker som jeg ikke var sååålangt unna med minde forsøk:) takk for tipset

 

Ang. nedlastning så klarer ingen å hindre det, tanken er heller ikke det. Skal legges opp til at brukere får laste ned, skal ligge link under selve flashvideo'n. Kun for å gjøre statistikk rundt hver fil for visning under video'n jeg helst prøver å få nedlastning via ett script og "gjemme" stien

Lenke til kommentar

Har testet litt fram og tilbake nå, men får stadig denne feilmeldingen:

 

<br />
<b>Warning</b>:  readfile("filnavn") [<a href='function.readfile'>function.readfile</a>]: failed to open stream: No such file or directory in <b>/mappe/stream.php</b> on line <b>44</b><br />

Lenke til kommentar
Det faktum at du kaller readfile("filnavn")m, kan ha noe med saken å gjøre - er det mulig å få se hele koden?

 

 

filnavn = det står "mappe/fil.flv" der når scriptet blir kjørt, filnavn/sti blir korrekt hentet fra db.

 

Resten av koden skal jeg se om jeg får tak på igjen i kveld, men er mye fra Dreamweaver sin php motor der mao logikken er der...bare litt kryptisk å forstå den.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...