Avatar billede ohmish Nybegynder
10. januar 2003 - 22:04 Der er 69 kommentarer og
2 løsninger

Hvordan kan jeg skjule BILLEDER for folk der ikke er logget ind?

Jeg har endelig fået lavet et velfungerende og flot loginscript, der umuligør visning af phpsider hvis man ikke er logget ind som enten admin, bruger eller VIP.

Men hvad gør jeg med billederne på serveren?? de ka vel altid ses hvis man kender den direkte sti? Ikke godt.
(jeg vil ikke bruge htaccess af designgrunde m.m.).

Kan nogen hjælpe med et script eller skubbe mig den rigtige vej?? håber og be'r. Nu har jeg sgu ledt længe efter en løsning.
Avatar billede tipsen Nybegynder
10. januar 2003 - 22:07 #1
.htaccess er ellers løsningen (måske endda den eneste) på dit problem.
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:07 #2
Du viser bare dine billeder via et PHP-script, og holder selve
billedfilerne uden for dit webkatalog
Avatar billede dennism Nybegynder
10. januar 2003 - 22:10 #3
erikjacobsen >>

Men.. Derfor kan de jo stadig ses, hvis nu man skulle være i besidelse af et direkte link!?..
Undskyld jeg lige kommentere! :)
Avatar billede webmasterdk Praktikant
10. januar 2003 - 22:11 #4
dumt spm... hvad ændrer .htaccess ved dit design?
Avatar billede rzj Nybegynder
10. januar 2003 - 22:13 #5
ingen spm. er dumme. Manden gider vel ikke have en grim .htaccess kodeord/passwd op - hvad ved jeg. Men ingen spm er sgu' dummer her på eksperten, hold op med det NUUU !
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:14 #6
Tænk dig lige om, Dennis. I PHP-filen laver man det samme
"login-check" som man gør i de andre PHP-sider. Og er han ikke
logget ind, vises bare et billede af Poul Nyrup på cykel.
Avatar billede angelod Novice
10. januar 2003 - 22:14 #7
dennism >> Nej vel kan de da ej.. Hvis billederne ligger udenfor webkataloget, så kan man da ikke på nogen måde linke til dem uden at bruge PHP-scriptet, der jo kan se efter om personen er logget ind.

Jeg har selv brugt det, og det virker fortrinligt. :)
Avatar billede rzj Nybegynder
10. januar 2003 - 22:14 #8
jeg tror det erikj mener er at du skal lægge dine billede filer uden for webscope. Når man har et webhotel eller for den sags skyld hoster selv, så kan filer lokalt godt se bibs udenfor webscope mens filer udelukkende kan ses genne browsere hvis de ligger i webscope folderne.
Avatar billede rzj Nybegynder
10. januar 2003 - 22:17 #9
ohmish>> Det folk prøver at fortælle dig er:
Bib-struktur:
domænedk
  db
  www

filer (eks. php-filer) i www kan læse filer i db, mens browsere ikke kan tilgå indhold af db. Derfor læg dine billeder i folderen db.
Avatar billede dennism Nybegynder
10. januar 2003 - 22:18 #10
erikjacobsen & angelod >>

Selvfølgelig... :)
Jeg må vist hellere komme i seng... :)
Avatar billede doomstone-dk- Nybegynder
10. januar 2003 - 22:23 #11
hmm når de logger ind må du da have gemt noget information om det i cokkies eller sessions?

jeg har gjort det på denne måde
if($_SESSIONS['id'){
?><img src=""><?
}
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:24 #12
uha. tak for hurtig respons folkens!.

Til webmasterdk>>> jamen.. nu har jeg jo lavet det fede system i php hvor alt følger sidens design (web admininterface uden grimme standard loginprompts). jeg kender ikke meget til htaccess' muligheder, men nu har brugt så meget tid og energi på det andet at det ville være dumt at starte forfra. Kan jeg ikke lægge billeder i en mappe med htaccess, uden at skulle logge igen for at se billederne? Evt. overføre loginnavn/kode fra den cookie jeg iforvejen har lagt hos brugeren.

Til erikajobsen>>> Hvordan holder jeg mappen lukket for browsergennemsyn, og åben for lokalgennemsyn?
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:24 #13
Det hjælper intet at if-fe sig rundt om <img> tags. Prøv lige
at læse de andre indlæg
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:25 #14
Har du ikke noget der ligner det fra Kommentar: rzj 10/01-2003 22:17:09
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:28 #15
Og hvis du ikke har sådan et db-katalog (eller noget der
ligner), så lægger du bare en .htaccess/.htpasswd fil i
dit billedkatalog - der behøver ikke engang være en lovlig
bruger. Den kan ikke ses i en browser, men filoperationerne
i PHP går udenom .htaccess - så de kan.
Avatar billede rzj Nybegynder
10. januar 2003 - 22:29 #16
ohmish>> Hvis du skal konfigurere det selv, så skal man jo vide lidt om hvilken webserver du anvender ?
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:29 #17
jeg skrev dette uden at ha læst mange af de sidste svar.
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:30 #18
Har du så, ohmish, mod på selv at prøve at lave scriptet? Det
er altid det sjoveste.
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:32 #19
ericjacobsen>> er det rigtigt??.. håber det kan virke. det ville jo være optimalt. Jeg har nemlig ikke lov til at tilgå sider under webmappen.
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:32 #20
i er for hurtige til mig..hehe
Avatar billede rzj Nybegynder
10. januar 2003 - 22:33 #21
altså prøv en .htaccess med:
AuthUserFile /xlkahsgf/.htpasswd
#msg on log in
AuthName "Mine hemmelige billeder"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

hvis du altså vil undgå konfigurering af webserver, hvilket er det smarteste da du også kan bruge et sådant bib til andre ting og sager...
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:34 #22
Det virker. Lad os høre hvordan det går.
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:34 #23
dvs. jeg linker bare til et billede i en mappe jeg har htaccess beskyttet, og folk kan IKKE se billedet hvis de skriver stien i browseren?
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:36 #24
jeg får kaffen galt i halsen af glæde over disse positive svar! :) jeg har aldrig før lavet en htaccess funktion.. hjælp mig gerne. ellers finder jeg bare metoden selv. eller ska jeg bare gøre som du skriver der RZJ?
Avatar billede rzj Nybegynder
10. januar 2003 - 22:36 #25
.htaccess behøver ikke at indeholde noget som helst. Men altså (erikj) det er lidt bob-bob'et...
Avatar billede angelod Novice
10. januar 2003 - 22:36 #26
Nej du skal lave et script der læser billedet fra serveren og sender det som output, men det er jeg sikker på ErikJacobsen kan fortælle dig meget mere om. :)
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:38 #27
rzj: .htpasswd behøver ikke indeholde noget ... ik'os'?
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:38 #28
ok. men hva ska scriptet indeholde af særligheder?
Avatar billede rzj Nybegynder
10. januar 2003 - 22:38 #29
ja, men LÆG MÆRKE TIL AT FILEN VIRKELIGT HEDDER .htaccess (det er den klassiske begynder fejl ;-) ift. htaccess.
Altså en punktumhtaccess fil uden indhold i mappen med filer - NUUUUUUUU
/raz
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:39 #30
nu sidder i vel ikke med pilsnere og tar gas på farmand vel?
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:39 #31
.htaccess kan ikke være tom og have nogen virkning. Skriv den som
rzj skrev ovenfor
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:40 #32
jæs. så meget ved jeg allerede. snubler tit over den i andres spørgsmål. Filen er nu oprettet.
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:42 #33
.htaccess fil i billedemappen med indholdet:

AuthUserFile /xlkahsgf/.htpasswd
#msg on log in
AuthName "VERY VERY SECRET AREA"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>


??
Avatar billede rzj Nybegynder
10. januar 2003 - 22:43 #34
ohmish>> MOMENTO por favor: Var lidt for hurtig. Afvent svar om  2 secs. .htaccess skal indeholde oplysninger om at HELE bib skal beskyttes ellers ingen effekt !!
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:44 #35
ok. jeg venter spændt!
Avatar billede rzj Nybegynder
10. januar 2003 - 22:48 #36
her er det:
deny from all
AuthType Basic
AuthUserFile /fuldstændig/ligemeget/info/.ligegyldig
AuthName "Hemmelige billeder"
require valid-user
satisfy any

præcis som ovenfor i en htaccess fil -YEEESS
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:49 #37
Dit script kan være

<?
  $path='/udenfor/din/web/mappe/';
  header('Content-type: image/jpeg');
  if (isset($_GET['billede'])) {
    $billede=$_GET['billede'];
    if (!ereg('\.\.',$billede)) {
      readfile($path.$billede);
    }
  }
?>

Kalder du scriptet bilder.php kalder du det med

<img src="bilder.php?billede=Sjovhest.jpg">
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:49 #38
(eller stien kan være i din webmappe med det her .htaccess halløj)
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:50 #39
satisfy any?
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:51 #40
ok.. eric og rzj. jeg prøver lige at brygge ovenst. sammen. vender tilbage om lidt :)
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:52 #41
Mit bud er bare

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Protected Area"
AuthType Basic
<Limit GET PUT POST>
require valid-user
</Limit>
Avatar billede rzj Nybegynder
10. januar 2003 - 22:53 #42
erikj>>Jeg tror at du har fået lokket ohmish på .htaccess vognen (desværre)
ohmish>>satisfy any => Der er ikke bestemte brugergrupper der skal tilgodese

virker det eller wa' ????

/rasmus
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:53 #43
Du laver også lige selv en if-sætning til at checke om
man er logget ind - jeg kan ikke gætte hvordan du har
gjort det.
Avatar billede rzj Nybegynder
10. januar 2003 - 22:55 #44
erikj>>same same but different ;-)
Avatar billede ohmish Nybegynder
10. januar 2003 - 22:56 #45
er i enige eller hvad?
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 22:59 #46
Ja ja, de er lige gode, de to bud på .htaccess - du kan jo selv checke
Avatar billede rzj Nybegynder
10. januar 2003 - 23:02 #47
jep, we are best pals on this ;-).
Men hvorfor går der så h....... lang tid for dig til at tjekke det??. Du skal jo for f...... bare lægge det i en fil og smide det op!!
Avatar billede ohmish Nybegynder
10. januar 2003 - 23:03 #48
virker det os med andre filtyper? det gør det vel.. så ska scriptet der henter bare lige justeres men hvordan? (jeg roder stadig med det)
Avatar billede erikjacobsen Ekspert
10. januar 2003 - 23:05 #49
Den skal bare kigge på extension på de ønskede filer, og så "gætte" typen.
Avatar billede rzj Nybegynder
10. januar 2003 - 23:07 #50
ohmish>>glem alt om at rode med php kode !! I de foregående poster her er der blevet gennemgået to FORSKELLIGE muligheder.
Lige i øjeblikket er det ENESTE du skal gøre at smide en fil kaldet .htaccess i de bibs, der ikke må kunne læses af en browser. DVS. eksempelvis dit /images/
bib. I det bib kan der ligge de filtyper der vil. Intet bliver tilgået direkte, men du kan sagtens tilgå det med henvisninger gennem php, html o.lign.
/raz
Avatar billede ohmish Nybegynder
10. januar 2003 - 23:07 #51
ftp er lige lidt langsom.....
Avatar billede ohmish Nybegynder
11. januar 2003 - 01:53 #52
eksperten er vist ikke helt frisk i øjeblikket eh?
Avatar billede ohmish Nybegynder
11. januar 2003 - 01:56 #53
im back.. htaccess og sciptet er perfekt! men rzj.. du sagde jeg sku glemme alt om php.? hva så med denne lille sag?:

$path='filer/';
  header('Content-type: image/jpeg');
  if (isset($_GET['billede'])) {
    $billede=$_GET['billede'];
    if (!ereg('\.\.',$billede)) {
      readfile($path.$billede);
Avatar billede ohmish Nybegynder
11. januar 2003 - 02:19 #54
hey gutter (rzj/eric)! jeg ved ik hvem der hjalp mest, men smid et svar, for det er virkelig point værd det her! og mange tak for hjælpen (et af eksperten's mest besvarede spørgsmål? hehe)... i er sgu seje. stay funky :)
Avatar billede erikjacobsen Ekspert
11. januar 2003 - 09:01 #55
Hvis det virker er vi glade. Måske der falder et enkelt point eller to af til mig :)

De to punktummer, der checkes for i ereg-en er vigtige, da en
ondsindet og kløgtig hacker ellers ville kunne spadsere rundt i
dine andre kataloger.
Avatar billede rzj Nybegynder
11. januar 2003 - 09:17 #56
jamen jeg svarer da også, så..
Avatar billede rzj Nybegynder
11. januar 2003 - 09:17 #57
hov
Avatar billede ohmish Nybegynder
11. januar 2003 - 16:58 #58
Sidegodt Egons. Jeg har ændret lidt i .htaccess filen, så den nu ser sån ud:

deny from all
require valid-user
satisfy any

Og selve scriptet der henter filen ser nu så ud:
<?
// mit logincheck her.
  $mappe="filer/"; 
if (isset($_GET['fil'])) { $fil=$_GET['fil'];
if (!ereg('\.\.',$fil)) { readfile($mappe.$fil); } }
?>
<br>test <img src="tegninger.php?fil=festtesthest.gif">

Og det virker fint på kyrds og tværs, og gir ikke adgang til mappen uden dette script og gyldig login.

Er det muligt at uploade til mappen?
Avatar billede erikjacobsen Ekspert
11. januar 2003 - 19:02 #59
ja, det er jo rene php funktioner. Har du prøvet ?
Avatar billede ohmish Nybegynder
11. januar 2003 - 19:16 #60
nej ikke at uploade, da jeg går ud fra at .htacess låser for mappen med mindre man bruger ovenst. script.

Du har ikke lige noget tisvarende liggende, til upload.. eller en hurtig forklaring? jeg åbner gerne et nyt spørgsmål med point hvis det ska til :)
Avatar billede 2-maz Nybegynder
11. januar 2003 - 19:26 #61
<?php

if (isset($_FILES['upfile'])) {

    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") {

        if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {

        $dist = $_SERVER['DOCUMENT_ROOT'] ."/web/upload/";

        move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $_FILES['upfile']['name']);
        $besked = $_FILES['upfile']['name'] ." er blevet uploadet med succes!";
    }else{
        $besked = "Sorry, men upload skete IKKE!";
    }

}else{

$besked = "Du glemte at v&aelig;lge en fil!";
    }

}else{

$besked = "V&aelig;lg en fil til upload:";
}
?>
<html><head><title>Upload fil</title>
</head>
<body>
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<center>
<table><tr>
<td><?php echo $besked; ?><br>
<input name="upfile" type="file" size="32"><p>
<center><input type="submit" value="Upload" class="submit"></center></td>

</tr></table>

</center>
</form>
</body></html>
Avatar billede ohmish Nybegynder
11. januar 2003 - 19:54 #62
Tak 2-maz :) hmm.. ja. det ser fint ud, men sefølli sker dette, da mappen har .htaccess:

Warning: Unable to create '/server/xxxxx/filer/testupload.jpg': Permission denied in /server/xxxxx/admin/upload.php on line 11

Warning: Unable to move '/tmp/phpiagNgD' to '/server/xxxxx/filer/testupload.jpg'
in /server/xxxxx/admin/upload.php on line 11

Så spør' jeg Hr. Eric Jacobsen... skal jeg lave et script som før, med andre kommandoer, til upload?:
<?
$mappe="filer/"; 
if (isset($_GET['fil'])) { $fil=$_GET['fil'];
if (!ereg('\.\.',$fil)) { readfile($mappe.$fil); } }
?>
Avatar billede erikjacobsen Ekspert
11. januar 2003 - 20:04 #63
Det er ikke .htaccess der forhindrer dette. Du kan lige
lave en chmod 777 på det katalog.
Avatar billede ohmish Nybegynder
11. januar 2003 - 20:09 #64
aah.. ja jeg opdagede det lige. sorry. og nu er der vist nok spørgsmål her. tak for hjælpen!
Avatar billede ohmish Nybegynder
11. januar 2003 - 20:11 #65
det hele spiller nu.
Avatar billede erikjacobsen Ekspert
11. januar 2003 - 20:12 #66
Det er nu ikke noget problem. Spørg bare løs
Avatar billede ohmish Nybegynder
11. januar 2003 - 20:20 #67
2-maz. der er lidt point til dig her: http://www.eksperten.dk/spm/303946
Avatar billede 2-maz Nybegynder
11. januar 2003 - 22:29 #68
ohmish: det var da så lidt :)
Avatar billede dmcn Praktikant
12. januar 2003 - 22:05 #69
rzj : Du bedes moderere dit sprogbrug (jvf. kommentar 10/01-2003 23:02:01). Fint nok at du udskifter eventuelle kraftudtryk med punktummer, men det er stadig kraftudtryk og folk stødes stadig af det. Husk det venligst til en anden gang.
- n0rmality, coadmin
Avatar billede rzj Nybegynder
15. januar 2003 - 22:48 #70
n0rmality>> "Husk det venligst..." er måske lige lovligt løftet pegefinger til min smag, men jeg har forstået budskabet og det er jo det vigtigste! Min korttidshukommelse fejler ihvertfald intet ;-)
/rasmus
Avatar billede dmcn Praktikant
23. januar 2003 - 01:02 #71
Husk det venligst er bare en "bøn". Den løftede pegefinger ligger skam i hele min kommentar. ;)
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