Archief - Q: img in dir niet publiek maken

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Incinnerator

Legacy Member
Yu

Ik heb voor elke persoon een foto van deze persoon en dit staat in een directorie.

Nu wil ik niet dat de directorie publiek toegankelijk is (je mag er dus niet naar kunnen surfen)
en dat je niet rechtstreeks naar een foto kan surfen maar mijn phppagina moet wel in staat zijn om die foto's weer te geven.

als je surft naar
url/img/ => mag niet
url/img/5.jpg => mag niet
maar mijn phppagina moet wel in staat zijn om 5.jpg op te halen en te tonen.

Hoe pak ik dit aan?

Thx
Incinnerator

killgore

Legacy Member
via .htaccess een gebruikersnaam en paswoord vragen.

Maar nog beter is eigenlijk dat je dit buiten je apache-folder zet, dan is het sowieso onmogelijk er naar te surfen. Gewoon via http kan je er dan niet aan, maar je kan wel een php-scriptje maken dat die afbeeldingen ophaalt en weergeeft :).

Incinnerator

Legacy Member
killgore,

bedoel je dan die afbeelding inlezen in ne string?
en hoe laat ik die dan zien?

Bram

Legacy Member
Incinnerator zei:
killgore,

bedoel je dan die afbeelding inlezen in ne string?
en hoe laat ik die dan zien?

veel hosts zijn eruit als
/httpdocs/
/httpsdocs/
/private/
en nog een hele hoop andere folders. In geval van shared hosting komt hier heel vaak nog iets voor alla
/www/username/httpdocs/ ofzoiets, ge kunt dees zien voor u eigen server door $_SERVER['DOCUMENT_ROOT'] te echoën.

Als ge u images in /private/ bv zet, dan kunt ge met php ze wel uitlezen en ze naar een temp file kopieren.

Incinnerator

Legacy Member
ik heb idd een /private directorie, dus ik kan de images daar plaatsen.
is er geen manier om die image in te lezen en dan in een html element te outputten?
een beetje zoals een externe afbeelding inladen in flash.

want het kopieren van de images die nodig zijn naar een tmp dir is wel een oplossing maar dan moet ik elk jaar die tmp dir leegmaken en dan wordt da vergeten en is heel het nut weg :)

merci voor de reacties al

Incinnerator

Legacy Member
ik heb het volgende getest en dit werkt

index.php
<img src="image.php?id=1">

image.php
<?php
$number = $_GET['id'];

function LoadJpeg($imgname)
{
$im = @imagecreatefromjpeg($imgname); /* Attempt to open */
if (!$im) { /* See if it failed */
$im = imagecreatetruecolor(150, 30); /* Create a black image */
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Output an errmsg */
imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
}
return $im;
}
header("Content-Type: image/jpeg");
$img = LoadJpeg("$number.jpg");
imagejpeg($img);
?>

killgore

Legacy Member
dat was dus inderdaad wat ik bedoelde :). De code is nog niet al te perfect, maar dat zijn details.

Op die manier kan je die data zeer mooi afschermen. Dat is ook hoe de meeste downloadapps werken trouwens.

passero

Legacy Member
en als je dan de foto op de site hebt staan, dan kan je toch rechtsklik -> opslaan als of werkt dit niet als je het op die manier doet?

dJeez

Legacy Member
Rechtsklik en opslaan als zal uiteraard steeds werken (en ja, ook als je daar een idioot Javascript voor hebt is het een kleine moeite om de afbeeldingen alsnog te verkrijgen). Ze kunnen nu overigens ook nog rechtstreeks je script aanroepen met die ID om de foto op hun eigen site weer te geven (er van uitgaande dat die site publiek is uiteraard).

Als je enkel hotlinking wou tegengaan waren er nog wel andere oplossingen (vb. via mod_rewrite op apache), die je makkelijk online kan terugvinden.

Incinnerator

Legacy Member
Het was niet de bedoeling hotlinking of het opslaan van de afbeelding tegen te gaan.
Het was de bedoeling om enkel de foto's te laten zien die ik wens te laten zien via een pagina. Zodat je niet zomaar een nummer.jpg invult en dan een foto te zien krijgt.

ja de code is zeker niet perfect , het was maar om te testen of het werkt :)

Maar het komt zeker goe op deze manier.
Bedankt :)

Jexx

Legacy Member
foto's kan je altijd van website halen... maakt ni uit wat voor beveiligingen...

Printscreen - > photoshop en eruit knippen. Het enigste nadeel is dat je geen groot formaat zult hebben. Maar dan nog. Enkel amateur webdesigners zullen groto foto's of img's uploaden en die via html doen verkleinen... -.-
Hate those people

passero

Legacy Member
als je dat script gaat gebruiken zit de ID ergens in een parameter in de URL, als iemand dan die URL kopieert en de ID aanpast, kan je dus gelijk welke foto opvragen... tenzij je ergens een encryptie gebruikt voor het ID

Incinnerator

Legacy Member
Ik ga in dat script eerst controleren of de id die uit de url meekomt, toehoort tot een persoon die weergegeven mag worden :)

killgore

Legacy Member
Jexx zei:
foto's kan je altijd van website halen... maakt ni uit wat voor beveiligingen...

Printscreen - > photoshop en eruit knippen. Het enigste nadeel is dat je geen groot formaat zult hebben. Maar dan nog. Enkel amateur webdesigners zullen groto foto's of img's uploaden en die via html doen verkleinen... -.-
Hate those people
Lees misschien eens de thread voor je antwoord.

Lord Kveldulv

Legacy Member
Incinnerator zei:
Zodat je niet zomaar een nummer.jpg invult en dan een foto te zien krijgt.

Als het enkel daar voor is zou'k uw foto's renamen naar iets anders. Ik weet niet of je zelf via ftp client upload of via een php scriptje. Maar in een php script zou je bijv. kunnen zeggen dat nieuwe foto's gerenamed worden naar time().".jpg".
Je kan er nog uw ID voorzetten en dan zijt ge vrij zeker dat het uniek is en veel geluk aan degenen die de foto's willen rippen door de nummerkes opeenvolgend in te typen ;)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan