Avatar billede Peter Praktikant
06. marts 2004 - 09:39 Der er 13 kommentarer og
1 løsning

Billeder som kun er tilgængelige via php

Hej
Jeg har en side hvor jeg har grupper af 3 billeder.
Det ene billede i hver gruppe skal vises med det samme, men de to andre skal først vises når brugeren har udfyldt en formular korrekt. Alle billederne hedder det samme pånær et nummer, så når brugeren har udfyldt en formular korrekt vil han kunne gætte hvad alle de andre billeder hedder.
Derfor vil jeg høre hvad der er af muligheder med at ligge alle billederne i en mappe som kun kan tilgås af php. Evt ligge dem i en mysql tabel.

Til dem der undrer sig over hvad det er til, så er det til en gætteleg. Man ser et billede og skal derefter gætte hvad det er der er på billedet, derefter kan man vælge at få vist et hint, det er billede nummer to. Når man har gættet rigtigt får man billede nummer tre at se.
Jeg har tænkt mig at registrere hvert enkelt gæt og om man har brugt hintet i en database.
Avatar billede webcreator Nybegynder
06. marts 2004 - 10:06 #1
Hm, hvis problemet blot er, at de ikke må kunne tilgå mappen /images , så kan du jo placere en index.php fil i mappen, som redirecter til www.domain.dk
Avatar billede Peter Praktikant
06. marts 2004 - 10:21 #2
vil det du, det vil det vel ikke, for hvis man så skriver /images/gaet1_svar.jpg vil man jo stadigvæk kunne se billedet og ikke ramme index.php.
Avatar billede webcreator Nybegynder
06. marts 2004 - 10:24 #3
Ja, det er korrekt. Man vil altid kunne gætte sig til billedets navn.

Jeg vil gætte på, at du skal i gang med noget .htaccess-gejl. Og det har jeg desværre ikke meget forstand på.
Avatar billede Peter Praktikant
06. marts 2004 - 10:32 #4
Jeg kan sagtens begrænse adgangen til folderen med htaccess, det er intet problem. Men jeg ved ikke hvordan jeg kan give php lov til at tilgå folderen alligevel.
billederne kommer alle til at hedde noget i retning af gaet#.jpg gaet#_hint.jpg og gaet#_svar.jpg. Derfor vil det være meget let at gætte navnene på de næste gæt når man har gættet et.
Avatar billede sukos Juniormester
06. marts 2004 - 10:51 #5
Du kan jo lave lidt med sessions.
1. Du kan jo ha' billederne liggende i et dir udenfor http.
2. Når du skal vise det første, kopiere du det til et dir som kan nås med http, og omdøber et det til f.eks. session_id().".jpg";
Næste billede kan så omdøbes til md5(session_id()).".jpg"; f.eks.

Hmm, forstår du hvad jeg mener? :O)
Avatar billede Peter Praktikant
06. marts 2004 - 11:16 #6
jeg forstår fint hvad du mener, dette ville også være en mulighed hvis det ikke var fordi min side ligger ude i byen, jeg har kun adgang til mapper der er tilgængelige via http.
Men hvad med at ligge billederne ind i databasen, det har jeg ikke erfaring med, er det en mulighed?
Avatar billede sukos Juniormester
06. marts 2004 - 11:31 #7
jahh, det har jeg aldrig prøvet selv, men skulle jo være en mulighed.
Men har også forstået at det vist er temmelig resourcekrævende.

Ehmm, hvis nu du lagde billeder i et dir, som blev beskyttet med en .htaccess

Options None

så vil man IKKE kunne komme til dem. Men mener at du med et PHP script vil kunne kopiere en fil til et dir, og på den måde kunne bruge filen.
Avatar billede Peter Praktikant
06. marts 2004 - 12:43 #8
mht til databasen, så var det sidste udvej. Men det betyder ikke så meget at det er resourcekrævende, der vil kun være et par personer der skal bruge det, derfor er det ret begrænset hvor mange gange billederne skal hives ud af databasen.
Mht .htaccess, kan du sige lidt mere om hvilke muligheder der er med et script, jeg tænkte noget i retning af at man måske kunne definere brugernavn og password i php-scriptet og på den måde få adgang til filerne.
Avatar billede sukos Juniormester
06. marts 2004 - 14:50 #9
æhh, jeg har aldrig prøvet det af, men det er muligt at bruge en eller form for kombination med .htacces og PHP
http://www.devshed.com/c/a/PHP/User-Authentication-With-Apache-And-PHP/
Avatar billede sukos Juniormester
06. marts 2004 - 14:51 #10
Men en bruger vil jo stadig kunne gætte næste filnavn
Avatar billede Peter Praktikant
06. marts 2004 - 14:55 #11
tanken var at selvom han kan gætte næste filnavn, så har han ikke adgang til den. Altså at det kun er php-scriptet der har adgang til at læse i den pågældende mappe. Så længe filnavnet ikke gives med via adresselinjen burde det så ikke hjælpe at han kan gætte filnavnet. Er der noget jeg mangler at tage højde for, eller burde det ikke kunne være sådan.
Avatar billede Peter Praktikant
06. marts 2004 - 15:11 #12
ok, har læst linket igennem. Ved ikke rigtigt om jeg kan bruge det. Han skriver først om hvordan man kan beskytte sine mapper med .htaccsess. Derefter skriver han om hvordan man kan beskytte sider med php. Jeg troede han skrev om hvordan man kunne beskytte mapper med htaccess og tilgå dem via php.
Men jeg har muligvis en løsning et andet sted fra, melder tilbage når jeg ved om problemet er løst.
Avatar billede Peter Praktikant
06. marts 2004 - 16:59 #13
Det virker nogenlunde, her er koden:
<?
    header("Content-Type: image/jpeg");
    readfile("sti/filnavn.jpg");
?>

og så en htaccess fil med følgende indhold:

<limit GET>
deny from all
</limit>

Problemet er så bare at man skal lave en php-fil for hvert enkelt billede. Jeg leder stadigvæk efter en lettere måde at gøre det på.
Avatar billede Peter Praktikant
18. marts 2004 - 10:56 #14
pga tidsnød er problemet ikke aktuelt i øjeblikket. Jeg fandt som sagt en nogenlunde løsning og fandt også ud af at levere filnavnet med til php-filen, men så kan brugeren igen gætte et filnavn og selv give det med. Løsningen må næsten være at smide filnavnene i en database og udtrække dem i php-filen. Ved så at have en indgang i databasen til at indikere om filen må ses eller ej af brugeren kan man nægte adgang.
Der kommer sikkert flere spørgsmål om emnet herfra når jeg får bedre tid.
Men tak for jeres input.
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