13. december 2005 - 04:05Der er
5 kommentarer og 1 løsning
Hvordan beskytter jeg billeder med login i php?
Jeg vil gerne vide hvordan jeg beskytter billeder via php. Jeg ved hvordan man gør det i htacces men jeg vil gerne gøre det i php. (eller rettere, den jeg laver det for, vil) Jeg havde tænkt på at lægge det i en htaccess beskyttet mappe og så hente det via php's readfile() funktion, men den er ikke så god til billeder så vidt jeg ved..
Er der nogle der har forslag, så bliver jeg glad :)
Sørg for at du checker login i koden til billed henteren. Here er hvad jeg bruger i header når jeg henter billeder fra "låste" mapper.
//sørger for at cache virker rigtig med filen. header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($dir.$file)).' GMT');
//sørger for at det bliver vist som billed. if(ereg(".jpg",$file)) header("Content-Type: image/jpeg"); if(ereg(".png",$file)) header("Content-Type: image/png"); if(ereg(".gif",$file)) header("Content-Type: image/gif");
//sørger for at hvis brugeren vil gemme det bliver det gemt som billed. header("Content-Disposition: attachment; filename=$file.jpg");
jeg vil tro du bare kan hente filen og så sende den til brugeren med en output buffer.
ob_start(); // start a new output buffer file_get_contents($file); $img = ob_get_contents(); ob_end_clean;
Du kan gøre det på denne måde: Du ligger alle pics uden for web-roden! (så de ikke kan tilgåes direkte fra internettet af) Så laver du en side som henter billedetrne, noget i stil med det som ajenbo kommer med. Og husk så lige at lav et login tjek, evt: if(!isset($_SESSION['loggedIn']) && empty($_SESSION['loggedIn'])) { echo "Du er ikke logget ind"; exit(); } og her kommer koden så som henter og viser billedet!
Det skal lige siges at det ikke er billeder der skal downloades, men billeder der skal vises på en side fx. <img src="bla/bla.php" />
Jeg kan ikke få den der ob ting til at virke.. Headers virker fint skulle jeg mene. I vinduets tab (firefox) står der pic.ph (jpeg image) så jeg går ud fra at herders fungere fint. Der er bare intet billede at se. Siden er blank. Hvad gør jeg nu?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.