php ingen løsning på password beskytte folder ?!

Tags:    php

hej, jeg har forsøgt at programmere og lave nogle htacess filer og htpassword både med og uden mysql database tilgang, de virker dog på min xampp "server", men jeg skal dog ikke bruge disse filer på xampp men på cliche webhotel.
har prøvet alt virker ikke, indtil jeg fandt ud af at ciche på igen måde støtter (vistnok?) htacess og htpasswd filer.
jeg prøver forgæves at password beskytte en folder på serveren, hvor der er billeder i jpg format.
derfor støtte jeg på et lidt anden måde at bruge htttp auth på, nemlig med http auth og server variabelerbe som er arrays.
jeg kunne jo bruge server $_SERVER['PHP_AUTH_USER' og $_SERVER['PHP_AUTH_PW', (og de kan også tilgås mysql databasen), men denne måda at gøre det på understøtter på ingen måde selve folderen,(DE ER FIL BASERET!), altså at password beskytte folderen med brugernavn og password, eller også tager jeg fejl? (det nytter ikke at proppe php script i mine php script med denne form for http auth., da det jo ikke er filerne jeg skal beskytte men derimod selve folderen og billederne), desuden ved jeg godt hvordan man laver et php script med http auth og $_SERVER['PHP_AUTH_USER' osv (har prøvet virker, men kun FIL BASERET!).

SÅ HVAD GØR MAN SÅ ?.

SKAL JEG SKIFTE WEBHOTEL, DER UNDERSTØTTER HTACESS FILER ?

ELLER PASSWORD ZIPPE HVER FOLDER FOR HVER BRUGER (WINZIP!), SÅ
HVER BRUGER KAN DOWNLOADE DET VIA MYSQL DATABASEN (VED GODT HVORDAN MAN GØR!) ?.



3 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Tyr filen ind i en database, så kan du nemt styre hvem der får lov til at hente hvad. Det lyder som om du ved hvordan man gør det :)



Jeg ikke den store php haj, men samme fremgangsmåde burde være mulig.

1) Placer mappen uden for roden af din hjemmeside.
2) Sæt en funktion eller lign (aner ikke hvad php folket bruger), så når du gør: http://some.com/pictures.php?=mypicture.jpg - så tjekker du om brugeren har tilladelse til at se billedet - hvis ja så sender du blot filen til brugeren.

Idéen er at ingen kan tilgå billederne da mappen med dem er placeret uden for roden af din hjemmeside, og derfor bliver nød til at bruge picture.php?=some.jpg

Dette forudsætter selvfølgelig at du har mulighed for at placere din mappe med billeder et niveau "højere" end din hjemmeside, hvilket ikke er tilfældet for alle webhoteller.




Indlæg senest redigeret d. 27.04.2011 16:15 af Bruger #16594
ok, men nu har jeg fundet løsningen.
det ser ud til at man kan bruge htacess filer i en enkelt udforming uden mysql tilgang, har prøvet igen, men denne gang har jeg prøvet med kryptering i linux format, ok det hedder det ikke, men med krypt() linen fra php sproget og base64 kryptering, det hjalp nu virker det, jeg har lige lavet et script der omdanner almen tekst til base64 kryptering, så nu er det nemt.

det bliver altså sådan her, jeg putter en htacess fil, til hver bruger (de skal ikke selv have low til at bare, downloade uden login, hver bruger har deres egen mappe med deres egen familie billeder (min storesøster er fotograf, så vi laver hjemmeasiden sammen (er lavet plus login system, næsten færsig), desuden har hver bruger et link til hver billed mappe i mysql database (alle bruger ops, bliver gemt i mysql databasen).
jeg kan ikke gøre det nemmer, der er ikke andre løsninger, så jeg nøjes med denne. men tak for hjælpen, ja det var svært at knække den nød.

her er en demo af htacess filen, og htpasswd filen.

htacessfil

AuthName "indtast venligst bruger ops."
AuthType Basic
AuthUserFile /home/din sti stil webhotel/billedmappe/.htpasswd
require user ditbrugernavn


htpasswd

henrik:bGKTAwnYBk3/2

script kryptering med krypt og base64 kryptering.



hmtl formen der modtager tekst og sender til php filen, krypter.php

inputkode.html

<html>

<head>

</head>

<body>

kryptering af koder til base64 krypt.

<br></br>
<br></br>

<form action="http://localhost/krypter.php" method="POST">

kode: <input name="kryptkode" type="text" /> <br> </br>

<input type="submit" value="krypter" />


</form>

</body>

</html>




krypter.php


php filen der kryptere til base64.

<?php

$kryptkode=$_REQUEST["kryptkode"];

$kryptkode = -->
crypt($_REQUEST["kryptkode"],base64_encode($_REQUEST["kryptkode"]));

$almenligkode=$_REQUEST["kryptkode"];
echo "<br><br>";

echo "du skrev koden: ",$almenligkode;

echo "<br><br>";

echo "koden, i base64 krypt format = ",$kryptkode;

?>
her er et lille script til at konvertere tekst/tal til base64 kryptering som kan bruges direkte i htacess filen.

takker.




t