Gå til innhold

Link til å virke kun en gang.


Anbefalte innlegg

litt ot men hva er det som hindrer personen i å lagre filmen den ene gangen han får se den? Da kan han jo se filmen så mange ganger han vil

7235676[/snapback]

Det er ikke så avanserte brukere det er snakk om. Dessuten er det ikke så farlig, og det er jo ikke sikkert de tenker på å lagre når han ikke vet om at han bare får se den en gang.

Lenke til kommentar
Videoannonse
Annonse

Skal skal filene dine se ut :)

<?php
ini_set("display_errors", 1);
$dbaddr = 'localhost';
$dbuser = '******';
$dbpass = '******';
$dbname = 'database';
$toadress = '[email protected]';
$mailto = addslashes(htmlentities($toadress));
$movpath = 'donald.avi';
$fil = addslashes(htmlentities($movpath));
$hash = md5(crypt(md5('LH73hLIUH398y9').rand().md5('7asdkn5678'), rand()));
mysql_connect($dbaddr, $dbuser, $dbpass);
mysql_select_db($dbname);
mysql_query(sprintf("INSERT INTO validhashes (hash, file) VALUES ('%s', '%s')", $hash, $fil));
mail ($mailto, "Anbefalt fil", 'En venn av deg har foreslaatt foelgende fil! <a href="http://www.mittdomene/showfile.php?hash='.$hash.'">Klikk her</a>' );
?>

 

 

showfile.php

<?php
ini_set("display_errors", 1);
$dbaddr = 'localhost';
$dbuser = '******';
$dbpass = '******';
$dbname = 'database';
mysql_connect($dbaddr, $dbuser, $dbpass);
mysql_select_db($dbname);
$backer = mysql_query("SELECT * FROM validhashes WHERE hash='".mysql_real_escape_string($_GET['hash'])."'");
mysql_query("DELETE FROM validhashes WHERE hash='".mysql_real_escape_string($_GET['hash'])."'")
$fileinfo = mysql_fetch_array($backer);
$filnavn = $fileinfo['file'];

?>
<html>
<head>
<title><?=$filnavn;?></title>
</head>
<body>
<OBJECT id='mediaPlayer' width="320" height="285" classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95' codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701' standby='Loading Microsoft Windows Media Player components...' type='application/x-oleobject'>
     <param name='fileName' value="<?=$filnavn;?>">
     <param name='animationatStart' value='true'>
     <param name='transparentatStart' value='true'>
     <param name='autoStart' value="true">
     <param name='showControls' value="true">
     <param name='loop' value="false">
     <EMBED type='application/x-mplayer2'
       pluginspage='http://microsoft.com/windows/mediaplayer/en/download/'
       id='mediaPlayer' name='mediaPlayer' displaysize='4' autosize='-1' 
       bgcolor='darkblue' showcontrols="true" showtracker='-1' 
       showdisplay='0' showstatusbar='-1' videoborder3d='-1' width="320" height="285"
       src="<?=$filnavn;?>" autostart="true" designtimesp='5311' loop="false">
     </EMBED>
     </OBJECT>
</body>
</html>

 

Akkurat saann skal koden vaere...

Naa maa du soerge for at du har en database oppe og kjoerer paa localhost.

Navnet paa databasen skriver du inn der hvor det naa staar database, og pass paa aa ikke fjerne ''. Det samme gjelder brukernavn og passord.

 

Inne i databasen din skal du ha en table som heter validhashes med to columns. Den ene skal hete hash og den andre skal heter file, begge to skal vaere av typen TEXT.

 

Haaper dette hjelper :)

Lenke til kommentar
Kan du vise et eksempel på hvordan en slik php fil må se ut?

7236164[/snapback]

 

Dette er bare en idé jeg fikk, og jeg vet ikke om alt lar seg gjøre på en enkel måte, men php-koden for å skrive en .htaccess-fil skal i hvert fall fungere.

 

Fra før må du ha en.htaccess-fil som inneholder "allow from all" (uten anførselstegn) i mappa som videoen ligger. Alt som ligger i denne mappa vil bli utilgjengelig etter at scriptet blir kjørt.

 

 

<?php	
fwrite (fopen(".htaccess", "w")	, "deny from all");
?>

 

 

Utover dette er jeg ikke helt sikker på hva som må gjøres, men før kodesnutten kjøres må man åpne filmen i et nytt vindu, kanskje med JavaScript, og vente i noen sekunder, sånn at personen kan få kontakt med filmen.

 

 

Er det noen som vet om dette er mulig?

Lenke til kommentar

Du får vel sikkert en idé om hva som kan være feil dersom du har disse linjene istedetfor de du har nå (på samme plass)

$backersql="SELECT * FROM validhashes WHERE hash='".mysql_real_escape_string($_GET['hash'])."'";
$backer = mysql_query($backersql) or die("QUERY ERROR:<br>$backersql<br>".mysql_Error());
$deletesql = "DELETE FROM validhashes WHERE hash='".mysql_real_escape_string($_GET['hash'])."'";
mysql_query($deletesql) or die("QUERY ERROR:<br>$deletesql<br>".mysql_Error());
$fileinfo = mysql_fetch_array($backer);
$filnavn = $fileinfo['file'];

Alltid greit å gjøre det på denne måten, så får du en feilmelding hvis det er feil i spørringen, pluss at du ser hvordan spørringen ser ut.

Lenke til kommentar
I rowen med hashen, staar ogsaa filnavnet der da? (i column file altsaa)?

Du kan jo proeve aa sjekke error_log paa serveren, kanskje scriptet gir fra seg noen flere warnings der..

7255953[/snapback]

Kan du forklare litt nærmere?

Error log på serveren har vel ikke jeg tilgang til? Har webhotell fra one.com

Lenke til kommentar

Hvis du har en eller annen form for admin panel eller noe saant saa er det gjerne en mulighet til aa lese errorlogs der...

Sjekk ogsaa i MySQL om filnavnet faktisk staar i samme row som hashen du faar tilsendt.

Sjekk _ogsaa_ at filmen ligger i samme mappe som scriptet.

Lenke til kommentar

Error reporting i kontrollpanel var av.

Nå får jeg følgende:

Notice: Undefined index: HPIM0358.MPG in /customers/data-aid.net/data-aid.net/httpd.www/showfile.php on line 14

 

Filnavnet står i samme row som hashen i MySQL

Er denne feilen fordi det ikke er en index fil i roten hvor dette ligger?

Lenke til kommentar

Feilen kommer fordi det er et array som du prøver å hente ut en "Nøkkel" som heter: HPIM0358.MPG, og det finnes ikke.

Tipper du har satt

$filnavn = $fileinfo[$file];

istedetfor:

$filnavn = $fileinfo['file'];

Kanskje ?

Evt så får du vise hvilken kode du har rundt linje 14

 

EDIT: For å forklare litt: $filnavn = $fileinfo['file']; setter $filnavn til den verdien som kolonnen som heter file inneholder i den aktuelle raden du befinner deg ( I dette tilfellet, raden som er lik den hashen som er i url)

Endret av kakkle
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...