Toon posts:

[PHP] Link verboden maken voor niet-eigenaars,niet betaald

Pagina: 1
Acties:
  • 34 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo mede PHP-ers.

Ik gebruik voor het laten zien van images op mijn website een php pagina die de foto's aanmaakt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 switch ($_GET['kind']) {
    case "l": $folder = "pictures/thumbs";                  break;
    case "m": $folder = "pictures/original_thumbs";         break;
    case "h": $folder = "pictures/original";                break;
    case "u": $folder = "pictures/users";                   break;
 }

 // Kijk of de image wel bestaat, als de image bestaat, laat m zien.
    
 if ((file_exists($folder."/".$_GET['picID'].".JPG")) && (is_numeric($_GET['picID']))) {
    $picSrc = imagecreatefromjpeg($folder."/".$_GET['picID'].".jpg");
 } else {
    $picSrc = imagecreatefromjpeg($folder."/notFound.jpg");
    //error("Afbeelding " . $_GET['picID'] . " is niet gevonden of picID was geen getal.");
 }
    
  imagejpeg($picSrc);


Bovenstaande code werkt perfect en laat zijn mijn foto zien. de link binnen de pagina waar de foto's op komen te staan komen er dus zo uit te zien:

Voorbeeld:
HTML:
1
<img src="makejpeg.php?kind=l&picID=<?=$picObj->picID?>">


Dit werkt ook perfect en laat dus uit de map Thumbs het plaatje zien [ slechte kwaliteit ].
Nu als gebruikers de link naar makejpg.php kopieren en de letter "l" in een "h" veranderen krijgen ze de originele foto te zien. Is er een mogelijkheid om dit te blokkeren?

Het lijkt mij dat er gekeken moet worden of een gebruiker de eigenaar van een image is of dat ie de image heeft gekocht, dan mag hij er wel bij[ bij de originele image ].

Kan iemand mij vertellen hoe ik makejpeg.php zo kan aanpassen dat dit het gewenste resultaat opleverd?

Verwijderd

Onder welke voorwaarde mag iemand het wel zien dan? Anders zou ik zeggen, sloop h uit je switch, dan kan je die dus nooit meer selecteren!

Indien er een "inlog" achter zit, doe je dit dan met een session? Zo ja, dan kan je kijken of de session is geset, indien dat weer het geval is, kan je de "h" gewoon toelaten lijkt me??

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Session id? Beetje scriptrequest.

Maar ik help je:

Maak een login systeem, dan bepaal of die persoon betaald heeft of niet, dat stop je in een sessie

Dan kies je op basis van dat het kind ( niet betaald = thumb ... ed )

Going for adventure, lots of sun and a convertible! | GMT-8


Verwijderd

Topicstarter
het is ivm een inlogsysteem ja.

op voorwaarde dat een afbeelding "gekocht" is of de afbeelding van de sessie user is mag de map original benadert worden.
ik heb een tabel waarin ik bijhou welke image gekocht is door welke user id. ik moet alleen nog de pagina makejpeg.php aanpassen zodat mocht er iemand zijn die niet de foto heeft gekocht maar wel naar de link probeert te gaan, een melding krijgt dat die foto niet benaderbaar is door hem/haar.

bvd.

Nick

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 10:33
Begrijp ik het goed als:
Mensen die niet betalen en geen eigenaar zijn, mogen alleen de thumb zien dus:
PHP:
1
2
case "l": $folder = "pictures/thumbs";                     break;
case "m": $folder = "pictures/original_thumbs";         break;

Mensen die wel betalen en eigenaar zijn moeten toegang hebben tot
PHP:
1
2
case "h": $folder = "pictures/original";                 break;
case "u": $folder = "pictures/users";                    break;

Verwijderd

Topicstarter
Jij begrijpt m ;)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 14:25

Janoz

Moderator Devschuur®

!litemod

Als dit je eigen script was geweest dan had je met dit probleem waarschijnlijk weinig moeite gehad. In plaats van enkel checken op de meegegeven letter voeg je ook een check toe welke gebruiker hem opvraagd. Degene die dit script geschreven heeft zou geen enkele moeite moeten hebben met het toevoegen hiervan.

Aangezien het in PRG niet de bedoeling is dat men support gaat vragen op scripts van anderen gaat dit topic dicht.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.