Avatar billede jop... Nybegynder
20. maj 2006 - 00:09 Der er 15 kommentarer og
1 løsning

Hente billede udenfor WWW

Hej Eksperter.

Jeg har lidt problemer med at hente nogle billeder som ligger i en mappe i roden af min server.

Jeg kan fange mappen således:
$stien = $_SERVER['DOCUMENT_ROOT'] . "/" . $row['billede'];

Men når jeg smider stien ind i en <img src=" kan den ikke fange adressen. Så kommer der www.domæne.dk/ foran adressen.

Hvordan kan jeg undgå det?

Og forstår i spørgsmålet?  :-)
Avatar billede viper_killerguy Nybegynder
20. maj 2006 - 00:18 #1
$_SERVER['document_root'] indeholder den complette sti til det dir webserveren læser fra, hvilket jo er ubrugeligt.
Jeg ved ikke om det er en standard men du kan bare <img src=".$row['billede'] hvis scriptet brugeren er på også er i roden (eg, www.domæne.dk/index.php).

ellers ville $_SERVER['SERVER_NAME']."/".$row['billede'] måske virke
Avatar billede jop... Nybegynder
20. maj 2006 - 00:21 #2
Laver jeg echo på $stien er den helt rigtig. Det er først når jeg sætter det ind i en <img src=". at det går galt  :-/
Avatar billede viper_killerguy Nybegynder
20. maj 2006 - 00:28 #3
så kan det være du bare skal smide http:// foran
Avatar billede jop... Nybegynder
20. maj 2006 - 00:31 #4
Nej, for så tager den jo ikke server-root??
Avatar billede viper_killerguy Nybegynder
20. maj 2006 - 00:37 #5
<img src=/home/jop/images/image42.jpeg> vil aldrig kunne fungere hvis det er det du prøver på.

Men ellers forstår jeg det ikke
Avatar billede jop... Nybegynder
20. maj 2006 - 00:38 #6
Ok.. Det er det jeg prøver på i store træk. Er der en omvej til at hente billederne fra et sted udenfor www?
Avatar billede viper_killerguy Nybegynder
20. maj 2006 - 00:46 #7
well, du kunne vel lave et script der sætter en header og udskriver indholdet af en billedefil  du indsætter som variable på en eller anden måde, selv om du self kan checke at det er en billedefil er det stadig farlig, da folk kan se om du har nogen applicationer inde.
redirect.php?img=/etc/passwd kan man lade være med at sende ved simple check men
redirect.php?img=/usr/local/share/root4all/splash.jpg ville kunne vise at du har root4all (som ikke lyder særligt sikkert) installeret.

så flyt dine images til et sted i server roden.
Avatar billede jop... Nybegynder
20. maj 2006 - 00:55 #8
ALtså flyt dem til et sted i www?
Avatar billede viper_killerguy Nybegynder
20. maj 2006 - 01:32 #9
ja
Avatar billede olebole Juniormester
20. maj 2006 - 04:49 #10
<ole>

Det var dog nogle sære råd. Det er netop hamrende sikkert at have sine billeder liggende udenfor webroden - og en ofte anbefalet måde at beskytte dem på. Men det kræver, man tænker sig om ... mappen er vel én, veldefineret mappe  :)

<img src="http://www.domain.dk/img.php?pic=blabla.jpg">

- i 'img.php' skriver du så:

<?
$pic = $_GET["pic"]; // Check som altid, om modtagne data svarer til det forventede format

$fp = fopen("/home/jop/images/".$pic, "rb");
$fileStr = fread($fp, filesize($pic));
fclose($fp);
$aPicName = explode(".", $pic);
header("Content-Length: ".strlen($fileStr));
header("Content-Type: image/".end($aPicName));
print $fileStr;
?>

/mvh
</bole>
Avatar billede viper_killerguy Nybegynder
20. maj 2006 - 13:13 #11
bemærk:
$pic = basename($_GET['pic']);
så man ikke kan
img.php?pic=../../../etc/passwd
Avatar billede olebole Juniormester
20. maj 2006 - 13:18 #12
Det er der ingen grund til, hvis man i forvejen checker formatet grundigt ... og det gør man naturligvis  :)
Avatar billede jop... Nybegynder
20. maj 2006 - 13:54 #13
Kors, hvor er jeg bare sat af..  :-)

Men jeg kigger lige på det, og så skal jeg nok dele lidt point ud..
Avatar billede jop... Nybegynder
19. juni 2006 - 15:54 #14
olebole vil du ikke smide et svar?
Avatar billede jop... Nybegynder
28. juni 2006 - 11:47 #15
Olebole. Skriv lige hvis du vil have point. Så laver jeg en tråd. Jeg lukker denne nu.
Avatar billede jop... Nybegynder
28. juni 2006 - 11:47 #16
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester