Automatisch Fotoalbum
Dus je wilt je fotoverzameling delen met de wereld maar je hebt geen zin in het gebruik van onhandige programma's? Laat PHP het werk voor je doen! Gooi dit bestand ergens neer en maal in dezelfde directory een map fotoalbum. Gooi in die map al je fotos en de rest gaat automatisch. Zodra iemand een foto bekijkt die nog niet gethumbnailed is word dat op dat moment gedaan.
Bij kijk versie 3 hier!
Voorbeeld: http://www.i-cey.net/?pagina=fotoalbum
Gesponsorde koppelingen
PHP script bestanden
185 reacties op 'Automatisch Fotoalbum'
Gesponsorde koppelingen
Als je er blij mee bent... schrijf eventjes een berichtje in mijn gastenboek, of doneer met je telefoon een euro voor het goede doel (kinderen met kanker).
Hi Arjan,
Jawel ik ben aan het stoeien met de paden en heb ze al gevonden :)
Nu is het path dit: http://www.bearded-collies.net/index2.php?id=70
Ik heb een map gemaakt genaamd: fotoalbum met daarin twee mappen genaamd thumbs + fotoalbum en de index.php (waar jouw script op staat).
Ik heb nu dit als link:
en wat fout zit in het path is dit : "map=.......
Wat doe ik hier fout?
HIER de link om te kijken.
Jawel ik ben aan het stoeien met de paden en heb ze al gevonden :)
Nu is het path dit: http://www.bearded-collies.net/index2.php?id=70
Ik heb een map gemaakt genaamd: fotoalbum met daarin twee mappen genaamd thumbs + fotoalbum en de index.php (waar jouw script op staat).
Ik heb nu dit als link:
Code (php)
en wat fout zit in het path is dit : "map=.......
Wat doe ik hier fout?
HIER de link om te kijken.
Jelle Posthuma & ArendJan, bedankt voor het melden... opgelost nu ;). Zoals je ziet gebruik ik zelf een pagina=fotoalbum om het juiste document te includen ipv dat ik rechtstreeks met een fotoalbum.php werk.
Lissy, volgens mij werkt het... alleen is er een probleem...
Warning: mkdir() [function.mkdir]: Permission denied in bladiebla
Mijn script maakt automatisch mappen aan (thumbs & thumbsgroot) en blijkbaar heb jij daar geen rechten voor op jou server. Wat je kan doen... is het fotoalbum mapje chmodden naar 755, en kijken wat er dan gebeurd.
Lissy, volgens mij werkt het... alleen is er een probleem...
Warning: mkdir() [function.mkdir]: Permission denied in bladiebla
Mijn script maakt automatisch mappen aan (thumbs & thumbsgroot) en blijkbaar heb jij daar geen rechten voor op jou server. Wat je kan doen... is het fotoalbum mapje chmodden naar 755, en kijken wat er dan gebeurd.
Met betrekking tot alle fotos achter elkaar... ik doe daar niks speciaals mee. Als de div waar alle fotos instaan een vaste breedte heeft (pixels of percentage) dan gaat dat allemaal vanzelf.
Oo_dj_tm_oO;
Die boot is (nog) niet van mij, kost iets van 14 miljoen in de standaard uitvoering. Ik heb er wel een paar rondjes omheen kunnen lopen dus wie weet in de toekomst.
Oo_dj_tm_oO;
Die boot is (nog) niet van mij, kost iets van 14 miljoen in de standaard uitvoering. Ik heb er wel een paar rondjes omheen kunnen lopen dus wie weet in de toekomst.
Oehja, als je hem commercieel gebruikt (eg, je levert hem aan een klant, verdient er geld mee... etc etc) dan vind ik dat je op ze minst even een euro moet overmaken voor het goede doel.
http://www.henzenrunners.nl/inhoud/doneren/
Eigenlijk vind ik een euro te weinig, maar vooruit. En vertel ook je klant eerlijk dat je dat systeem niet zelf geschreven hebt... en geef mij de credits kay ;).
http://www.henzenrunners.nl/inhoud/doneren/
Eigenlijk vind ik een euro te weinig, maar vooruit. En vertel ook je klant eerlijk dat je dat systeem niet zelf geschreven hebt... en geef mij de credits kay ;).
Omdat ik meestal niet iets maak wat ik daarna zelf gebruik. Bijv. mijn nieuwssysteem gebruik ik zelf dus niet. Ik merk dat er een bepaalde vraag is waarna ik voor jullie iets ga maken.
In dit geval had ik het wel voor mijzelf gemaakt, en daarna (toen ik merkte dat er vraag naar was in een topic gisteren) hem aangepast/verbeterd en van commentaar voorzien voor op PHPHulp.
In dit geval had ik het wel voor mijzelf gemaakt, en daarna (toen ik merkte dat er vraag naar was in een topic gisteren) hem aangepast/verbeterd en van commentaar voorzien voor op PHPHulp.
Mijn functie werkt met imagejpeg, imagecreatejpeg etc. Die werken alleen voor jpg. Maar dat is geen punt, die functies zijn er ook voor PNG. Je moet dan eerst kijken naar de extensie, en aan de hand daarvan acties ondernemen. Opzich niet zo moeilijk te implementeren. Kijk bijv. eens hoe Eris dat heeft gedaan.
He,
Netjes script :)
Alleen 1 dingetje.
Ik was ff aan 't testen en wil nu een aantal foto's en mapjes weer verwijderen.
Nu krijg ik een 550 FTP error. Ook in cPanel lukt het me niet ze te verwijderen
M.v.g.
Netjes script :)
Alleen 1 dingetje.
Ik was ff aan 't testen en wil nu een aantal foto's en mapjes weer verwijderen.
Nu krijg ik een 550 FTP error. Ook in cPanel lukt het me niet ze te verwijderen
Code (php)
1
2
2
Command: DELE /public_html/fotos/fotoalbum/Autos/thumbs/000.jpg
Response: 550 Could not delete /public_html/fotos/fotoalbum/Autos/thumbs/000.jpg: Permission denied
Response: 550 Could not delete /public_html/fotos/fotoalbum/Autos/thumbs/000.jpg: Permission denied
M.v.g.
Ik heb eventuele nog wel een linksysteem voor je liggen... Ik gebruik hem zelf ook op i-cey.net. En de achterkant ziet er ongeveer zo uit:
http://test.i-cey.net/affiliatie.php
http://test.i-cey.net/affiliatie.php
Ik heb een probleem met het script..
Als ik foto's bekijk en ik klik op fotoboek (om terug tegaan naar het overzicht van de mappe) dan komt er ?map=/fotoboek te staan terwijl het ?map=fotoboek/ moet zijn.. weet iemand hoe ik dit kan aan passen?
(het zal wel een simpele oplossing zijn maar op dit moment kan ik het niet vinden)
Hoop dat iemand me kan helpe..
Als ik foto's bekijk en ik klik op fotoboek (om terug tegaan naar het overzicht van de mappe) dan komt er ?map=/fotoboek te staan terwijl het ?map=fotoboek/ moet zijn.. weet iemand hoe ik dit kan aan passen?
(het zal wel een simpele oplossing zijn maar op dit moment kan ik het niet vinden)
Hoop dat iemand me kan helpe..
ik neem aan dat ik ongeveer bij regel 191 moet zijn. ik kan die foto's zelf wel een grootte geven. dit heb ik staan op width=100.
dit is mijn regel nu.
hoe maak ik het dan rijen van 4 foto's? ik kom er niet echt uit.
dit is mijn regel nu.
Code (php)
1
echo ' <a href="?map='.substr_replace($map,"",-1).'&foto='.($fotonr+1).'" style="border: 0px;"><img src="'.$map.'thumbs/'.$bestanden[$fotonr].'" class="thumbs" width=100></a>';
hoe maak ik het dan rijen van 4 foto's? ik kom er niet echt uit.
Zet eens een iets als border: 1px solid red; bij dat divje.. en kijk dan eens of dat divje wel zo breed is als jij hem hebben wilt.
Ikzelf doe het namelijk ook zo
Ikzelf doe het namelijk ook zo
Hoi,
Ik wilde het script gebruiken op mijn site. Ik heb dus de fotoboek.php gemaakt en daarna een map fotoalbum gemaakt waarin ik de foto's zet. Maar ik kom altijd terug op mijn homepagina uit als ik ergens op klik. En die foto wat voor de link van de mappen staat krijg ik ook niet tegoei want ik heb die link veranderd maar het blijft een kruisje. Mijn site is www.lizard-sl.be en dan fotoboek. Zou je eens willen kijken wat ik misschien fout heb gedaan. Ik heb hier alles nagelezen en kan niet echt een antwoord vinden. Ben ook geen superexpert in php. Maar ik heb zelf mappen aangemaakt en daarin foto's gezet want hij maakt niet zelf mappen aan of ligt dat aan mij??? Miss heb ik weer wat doms fout gedaan ik hoop het niet.
Groeten Jeroen
Ik wilde het script gebruiken op mijn site. Ik heb dus de fotoboek.php gemaakt en daarna een map fotoalbum gemaakt waarin ik de foto's zet. Maar ik kom altijd terug op mijn homepagina uit als ik ergens op klik. En die foto wat voor de link van de mappen staat krijg ik ook niet tegoei want ik heb die link veranderd maar het blijft een kruisje. Mijn site is www.lizard-sl.be en dan fotoboek. Zou je eens willen kijken wat ik misschien fout heb gedaan. Ik heb hier alles nagelezen en kan niet echt een antwoord vinden. Ben ook geen superexpert in php. Maar ik heb zelf mappen aangemaakt en daarin foto's gezet want hij maakt niet zelf mappen aan of ligt dat aan mij??? Miss heb ik weer wat doms fout gedaan ik hoop het niet.
Groeten Jeroen
Je spreekt je fotoalbum aan met:
?g=fotoboek
Op dat moment word je fotoalbum blijkbaar geinclude. Als jij vervolgens in dat script iets heb staan als:
?map=fotoalbum/BBQ%20Bosstraatje%202005
Dan word je fotoalbum niet geinclude en zal het idd niet werken. Kwestie van eventjes een beetje logisch nadenkwerk en ?map=fotoalbum vervangen door ?q=fotoalbum&map=fotoalbum.
En verder, dat het plaatje niet werkt is logisch... die bestaat niet:
http://www.lizard-sl.be/lizard%20black%20dik.JPG
?g=fotoboek
Op dat moment word je fotoalbum blijkbaar geinclude. Als jij vervolgens in dat script iets heb staan als:
?map=fotoalbum/BBQ%20Bosstraatje%202005
Dan word je fotoalbum niet geinclude en zal het idd niet werken. Kwestie van eventjes een beetje logisch nadenkwerk en ?map=fotoalbum vervangen door ?q=fotoalbum&map=fotoalbum.
En verder, dat het plaatje niet werkt is logisch... die bestaat niet:
http://www.lizard-sl.be/lizard%20black%20dik.JPG
ik heb het al zo ver de links staan er en er staat ?pagina=fotoalbum voor nu nog mijn laatste vraag als ik op een link klik kom altijd terug bij home uit :'( ik heb onderaan ook zo een paar foto's erop gezet maar niet in een map ma als ge klikt op een thumbnail om te vergroten of op de volgende knop kom je altijd op home uit??? Als dit is opgelost zal ik geen vragen meer stellen :p
JA het werkt allez de foto's zelf alleen de links die naar de mappen gaan nog niet :-s. Maar nu had ik een andere vraag is het mogelijk om zelf de volgorde te bepalen van de titels zodat ik het laatste wat ik bijvoeg als bovenaan heb staan. www.lizard-sl.be/?g=fotoalbum ;-)
ik probeer dus ook dit te installeren, maar het lukt niet echt...
Ik heb de code in index.php bestand gegoten, en samen met de map fotoalbum in een subdomein gezet van me. ik heb het boeltje upgeload, (zie hier en hier) maar ik krijg telkens dit en niks anders: KLIK
Als ik op "fotoalbum" klik gebeurt er niks....
Kan iemand me helpen?
Ik heb de code in index.php bestand gegoten, en samen met de map fotoalbum in een subdomein gezet van me. ik heb het boeltje upgeload, (zie hier en hier) maar ik krijg telkens dit en niks anders: KLIK
Als ik op "fotoalbum" klik gebeurt er niks....
Kan iemand me helpen?
Kweenie, ik ga het eens proberen. Ik zit er nu niet op de juiste pc voor.
Moet je in die submap dan ook foto's steken? Ja zeker...
Ik ken alleen een kleine basis van php zie je, cursussen kosten me ietsje te veel geld om te volgen, dus het blijft bij "zelfstudie" (als 15-jarige moet het betaalbaar blijven hé ;) )
Moet je in die submap dan ook foto's steken? Ja zeker...
Ik ken alleen een kleine basis van php zie je, cursussen kosten me ietsje te veel geld om te volgen, dus het blijft bij "zelfstudie" (als 15-jarige moet het betaalbaar blijven hé ;) )
Oja of je zet dit
<style type="text/css">
img.centreren {
vertical-align:middle;
margin: 5px;
border: 0px;
}
img.thumbs {
vertical-align:middle;
border: 0px;
margin: 10px;
}
img.groot {
vertical-align:middle;
border: 0px;
}
</style>
in een eennaam.css bestandje en include het op de volgende manier (boven het fotoalbum script)
<link rel="stylesheet" type="text/css" href="naamvancss.css">
mzzl kèvin
<style type="text/css">
img.centreren {
vertical-align:middle;
margin: 5px;
border: 0px;
}
img.thumbs {
vertical-align:middle;
border: 0px;
margin: 10px;
}
img.groot {
vertical-align:middle;
border: 0px;
}
</style>
in een eennaam.css bestandje en include het op de volgende manier (boven het fotoalbum script)
<link rel="stylesheet" type="text/css" href="naamvancss.css">
mzzl kèvin
Snap iets nog steeds niet, heb alles goed doorgenomen.
Maar ik include de page ?pid=5.
Vervolgens heb ik dit staan.
Kan niet want dan krijg ik ?map=fotoalbum/amnesia bijvoorbeeld in de adresbalk en dan is die pid=5 natuurlijk weer weg die 'm moet includen. Hoe doe ik dit? Ik wil de fotoalbums.php wel het liefst includen. Die pagina wordt anders zo groot.
Alvast bedankt. P.S. Echt een TOPSCRIPT Arjan! Proficiat en dank voor 't sharen.
Maar ik include de page ?pid=5.
Vervolgens heb ik dit staan.
Kan niet want dan krijg ik ?map=fotoalbum/amnesia bijvoorbeeld in de adresbalk en dan is die pid=5 natuurlijk weer weg die 'm moet includen. Hoe doe ik dit? Ik wil de fotoalbums.php wel het liefst includen. Die pagina wordt anders zo groot.
Alvast bedankt. P.S. Echt een TOPSCRIPT Arjan! Proficiat en dank voor 't sharen.
Ik krijg per foto of map die ik in de map fotoalbum toevoeg de volgende twee meldingen. Wie kan mij helpen?
Warning: is_file(): Stat failed for fotoalbum/0001.jpg (errno=13 - Permission denied) in /var/www/www. /foto/album.php on line 107
Warning: is_dir(): Stat failed for fotoalbum/0001.jpg (errno=13 - Permission denied) in /var/www/www. foto/album.php on line 119
grts,
G
Warning: is_file(): Stat failed for fotoalbum/0001.jpg (errno=13 - Permission denied) in /var/www/www. /foto/album.php on line 107
Warning: is_dir(): Stat failed for fotoalbum/0001.jpg (errno=13 - Permission denied) in /var/www/www. foto/album.php on line 119
grts,
G
Arjan, bedankt: Ik heb de rechten van de map op 777 gezet. Ik krijg de meldingen nu niet meer. Nu krijg ik een andere melding; Call to undefined function: imagecreatetruecolor()
In vorige reacties lees ik dat er iets aangepast moet worden in php.ini maar daar kan ik denk ik niet bij komen is het ook op een andere manier op te lossen of kan ik er wel bij komen? Grts, G
In vorige reacties lees ik dat er iets aangepast moet worden in php.ini maar daar kan ik denk ik niet bij komen is het ook op een andere manier op te lossen of kan ik er wel bij komen? Grts, G
Regel 144:
if($aantalfotos > 10)
word:
if($aantalfotos > 20)
---
Regel 157
ceil($aantalfotos/10)
word
ceil($aantalfotos/20)
---
Regel 160
if ($paginanr < floor(($aantalfotos -1)/10))
word
if ($paginanr < floor(($aantalfotos -1)/20))
---
Regel 171
for($fotonr = $paginanr * 10; $fotonr <= (($paginanr * 10) + 9) && $fotonr < count($bestanden); $fotonr ++ )
word
for($fotonr = $paginanr * 10; $fotonr <= (($paginanr * 10) + 19) && $fotonr < count($bestanden); $fotonr ++ )
En dan ben je er wel... volgende keer mag je zelf ook wel wat proberen, en anders ga ik gewoon uurloon rekenen ofzo... ik ben geen aapje.
if($aantalfotos > 10)
word:
if($aantalfotos > 20)
---
Regel 157
ceil($aantalfotos/10)
word
ceil($aantalfotos/20)
---
Regel 160
if ($paginanr < floor(($aantalfotos -1)/10))
word
if ($paginanr < floor(($aantalfotos -1)/20))
---
Regel 171
for($fotonr = $paginanr * 10; $fotonr <= (($paginanr * 10) + 9) && $fotonr < count($bestanden); $fotonr ++ )
word
for($fotonr = $paginanr * 10; $fotonr <= (($paginanr * 10) + 19) && $fotonr < count($bestanden); $fotonr ++ )
En dan ben je er wel... volgende keer mag je zelf ook wel wat proberen, en anders ga ik gewoon uurloon rekenen ofzo... ik ben geen aapje.
Of declareer bovenin je script een variabele $aantalThumbs. Vervang in het script overal waar 10 staat met deze variabele. En bij regel 171 wordt het dus:
for($fotonr = $paginanr * 10; $fotonr <= (($paginanr * 10) + ($aantalThumbs-1)) && $fotonr < count($bestanden); $fotonr ++ )
Dan hoef je het ook niet iedere keer opnieuw aan te passen als je wat meerdere thumbs op een pagina wil.
Goed gescript Arjan! Complimenten!
for($fotonr = $paginanr * 10; $fotonr <= (($paginanr * 10) + ($aantalThumbs-1)) && $fotonr < count($bestanden); $fotonr ++ )
Dan hoef je het ook niet iedere keer opnieuw aan te passen als je wat meerdere thumbs op een pagina wil.
Goed gescript Arjan! Complimenten!
ik krijg deze error:
Warning: mkdir() [function.mkdir]: Toegang geweigerd in /home/stijn/domains/stijn.xtahosted.net/public_html/fotoalbum/album.php on line 177
Warning: imagejpeg() [function.imagejpeg]: Unable to open 'fotoalbum/thumbs/mela.jpg' for writing in /home/stijn/domains/stijn.xtahosted.net/public_html/fotoalbum/album.php on line 47
Warning: mkdir() [function.mkdir]: Toegang geweigerd in /home/stijn/domains/stijn.xtahosted.net/public_html/fotoalbum/album.php on line 177
Warning: imagejpeg() [function.imagejpeg]: Unable to open 'fotoalbum/thumbs/dfdfd.JPG' for writing in /home/stijn/domains/stijn.xtahosted.net/public_html/fotoalbum/album.php on line 47
wat doe ik verkeerd?
Warning: mkdir() [function.mkdir]: Toegang geweigerd in /home/stijn/domains/stijn.xtahosted.net/public_html/fotoalbum/album.php on line 177
Warning: imagejpeg() [function.imagejpeg]: Unable to open 'fotoalbum/thumbs/mela.jpg' for writing in /home/stijn/domains/stijn.xtahosted.net/public_html/fotoalbum/album.php on line 47
Warning: mkdir() [function.mkdir]: Toegang geweigerd in /home/stijn/domains/stijn.xtahosted.net/public_html/fotoalbum/album.php on line 177
Warning: imagejpeg() [function.imagejpeg]: Unable to open 'fotoalbum/thumbs/dfdfd.JPG' for writing in /home/stijn/domains/stijn.xtahosted.net/public_html/fotoalbum/album.php on line 47
wat doe ik verkeerd?
Ik kreeg een vraag om hem even aan te passen zodat gif en png ook werden ondersteund:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function thumbnail($map,$thumblocatie,$bestandsnaam,$breedte,$hoogte)
{
list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($map.$bestandsnaam);
//We weten de breedte/hoogte van een afbeelding, we weten ook hoe groot ze moeten worden en gaan dus lekker rekenen!
if ($breedte && ($breedte_origineel < $hoogte_origineel)) {
$breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
}else{
$hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
}
//Maak een nieuwe afbeelding aan met de juiste breedte en hoogte, openen de originele en gebruik de functie imagecopyresampled om daar een mooie afbeelding van te maken.
$afbeelding = imagecreatetruecolor($breedte, $hoogte);
switch ($type)
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagegif($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagejpeg($afbeelding, $map.$thumblocatie.$bestandsnaam,80);
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagepng($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
}
}
{
list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($map.$bestandsnaam);
//We weten de breedte/hoogte van een afbeelding, we weten ook hoe groot ze moeten worden en gaan dus lekker rekenen!
if ($breedte && ($breedte_origineel < $hoogte_origineel)) {
$breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
}else{
$hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
}
//Maak een nieuwe afbeelding aan met de juiste breedte en hoogte, openen de originele en gebruik de functie imagecopyresampled om daar een mooie afbeelding van te maken.
$afbeelding = imagecreatetruecolor($breedte, $hoogte);
switch ($type)
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagegif($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagejpeg($afbeelding, $map.$thumblocatie.$bestandsnaam,80);
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagepng($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
}
}
Alles gaat goed onder Windows, perfect script, erg handig. Maar onder linux, op mijn Linksys NSLU2 (http://www.nslu2-linux.org/) gaat het niet goed. De dir thumbs wordt niet aangemaakt en dus worden er geen foto's getoond. Heeft dit te maken met de rechten op de dir waaronder de dir thumbs moet worden aangemaakt?
Hallo,
ik zie dat sommige mensen er ook problemen hebben.. namelijk heb probleem premission dinied... Ik heb er alles aan gedaan. maar ik kan de thumbs niet verwijderen.
De map waar de map 'thumbs' in staat heeft alle rechten (777) maar de map thumbs heeft de rechten 744. maar die kan ik neit veranderen.. ik hoop dat jullie mij kunnen helpen!!
alvast bedankt!
ik zie dat sommige mensen er ook problemen hebben.. namelijk heb probleem premission dinied... Ik heb er alles aan gedaan. maar ik kan de thumbs niet verwijderen.
De map waar de map 'thumbs' in staat heeft alle rechten (777) maar de map thumbs heeft de rechten 744. maar die kan ik neit veranderen.. ik hoop dat jullie mij kunnen helpen!!
alvast bedankt!
Arjan,
Een prachtig script; althans volgens het voorbeeld. Helaas lukt het nog niet helemaal. Dat zit zo:
- ik krijg zoals het moet een pagina met thumbnails. Alleen als ik daar op klik, gebeurt er helemaal niks. Ik zie wel het adres in de adresbalk veranderen, maar er opent geen grote foto. Ter informatie: ik gebruik een index.php waarin ik alle inhoud include via een switch. Een van die paginas is dus fotoscript.php Ik zal vast ergens in de links in het script iets moeten aanpassen, maar heb geen idee waar. Heb je meer info nodig?
Dan nog twee minder belangrijke vraagjes:
- bij het maken van de thumbs, schrijf je "we weten hoe groot zo moeten worden". Waar is dat gedefinieerd? Hoe kan ik dat veranderen?
- ik heb "horizontale" en "verticale" fotos door elkaar, en wil graag voor elke thumb een even groot vierkante "cel" wil gebruiken. Kan dit met blocks (dus vaste breedte en hoogte aan de blocks opgeven (die dus iets groter is dan de breedte en hoogte van de thumbs, zie ook vorige vraag) en kan ik de thumbs dan centreren (ook in IE?).
Alvast bedankt voor je / jullie antwoorden.
Bas
Een prachtig script; althans volgens het voorbeeld. Helaas lukt het nog niet helemaal. Dat zit zo:
- ik krijg zoals het moet een pagina met thumbnails. Alleen als ik daar op klik, gebeurt er helemaal niks. Ik zie wel het adres in de adresbalk veranderen, maar er opent geen grote foto. Ter informatie: ik gebruik een index.php waarin ik alle inhoud include via een switch. Een van die paginas is dus fotoscript.php Ik zal vast ergens in de links in het script iets moeten aanpassen, maar heb geen idee waar. Heb je meer info nodig?
Dan nog twee minder belangrijke vraagjes:
- bij het maken van de thumbs, schrijf je "we weten hoe groot zo moeten worden". Waar is dat gedefinieerd? Hoe kan ik dat veranderen?
- ik heb "horizontale" en "verticale" fotos door elkaar, en wil graag voor elke thumb een even groot vierkante "cel" wil gebruiken. Kan dit met blocks (dus vaste breedte en hoogte aan de blocks opgeven (die dus iets groter is dan de breedte en hoogte van de thumbs, zie ook vorige vraag) en kan ik de thumbs dan centreren (ook in IE?).
Alvast bedankt voor je / jullie antwoorden.
Bas
Bas,
Je zult de linkjes moeten aanpassen. Waarschijnlijk maak jij gebruik van iets als ?pagina=fotoalbum o.i.d. Dan zul je de linkjes ook wel zo moeten aanpassen dat de juiste pagina word geinclude. Omdat ik verder geen code heb van jou switchsysteem kan ik je daar weinig mee helpen.
Voor de rest van je problemen... er is een versie 2 die jij nodig hebt ;). Zie hier. Bovenin kan je aangeven hoe groot de thumbs moeten zijn. Verder houd hij daar ook rekening met het feit dat fotos ook op zijn kant kunnen liggen. De breedte krijg namelijk voorrang. Thumbs worden gecentreerd als je de css toepast.
Je zult de linkjes moeten aanpassen. Waarschijnlijk maak jij gebruik van iets als ?pagina=fotoalbum o.i.d. Dan zul je de linkjes ook wel zo moeten aanpassen dat de juiste pagina word geinclude. Omdat ik verder geen code heb van jou switchsysteem kan ik je daar weinig mee helpen.
Voor de rest van je problemen... er is een versie 2 die jij nodig hebt ;). Zie hier. Bovenin kan je aangeven hoe groot de thumbs moeten zijn. Verder houd hij daar ook rekening met het feit dat fotos ook op zijn kant kunnen liggen. De breedte krijg namelijk voorrang. Thumbs worden gecentreerd als je de css toepast.
Arjan,
Bedankt voor je reactie. Ik heb meteen versie 1 vervangen door 2. De "minder belangrijke vragen" zijn opgelost, maar ik kan nog steeds niet een foto openen door op een thumbnail te klikken. Ik gebruik inderdaad een switch, als volgt:
Uiteraard is dit een verkorte versie en ik include ook header, footer en menu. De inhoud vormt dus het "vierde vlak". De pagina met thums komt daar mooi te staan, maar helaas nog niet de grote foto.
Zag in de reacties bij versie 2 ook al een vergelijkbaar probleem staan, maar kwam er toch niet echt uit (pas begonnen met php, maar probeer het wel te snappen). Las iets over de regels 74 en 86 waar ook paden worden opgegeven. Wellicht daar iets veranderen, of juist in de index.php. En, kan ik niet (is het niet handiger om) die paden in 74 en 86 via een variabele die je aan het begin definieert, aan te geven (hoef je niet te zoeken).
Ik hoop dat het zo duidelijk genoeg is, en natuurlijk dat je mij kunt helpen!
Bas
Oja, en ik gebruik ook "URL vriendelijke benamingen"; dus ik type gewoon foto.html en eigenlijk staat er dan ?page=foto (oid).
Bedankt voor je reactie. Ik heb meteen versie 1 vervangen door 2. De "minder belangrijke vragen" zijn opgelost, maar ik kan nog steeds niet een foto openen door op een thumbnail te klikken. Ik gebruik inderdaad een switch, als volgt:
Code (php)
Uiteraard is dit een verkorte versie en ik include ook header, footer en menu. De inhoud vormt dus het "vierde vlak". De pagina met thums komt daar mooi te staan, maar helaas nog niet de grote foto.
Zag in de reacties bij versie 2 ook al een vergelijkbaar probleem staan, maar kwam er toch niet echt uit (pas begonnen met php, maar probeer het wel te snappen). Las iets over de regels 74 en 86 waar ook paden worden opgegeven. Wellicht daar iets veranderen, of juist in de index.php. En, kan ik niet (is het niet handiger om) die paden in 74 en 86 via een variabele die je aan het begin definieert, aan te geven (hoef je niet te zoeken).
Ik hoop dat het zo duidelijk genoeg is, en natuurlijk dat je mij kunt helpen!
Bas
Oja, en ik gebruik ook "URL vriendelijke benamingen"; dus ik type gewoon foto.html en eigenlijk staat er dan ?page=foto (oid).
Thanks again,
over de URL vriendelijke benaming; dat is wat ik bedoelde, maar ik noemde had geen zin om www.website.nl?page=foto te typen.
Over het aanpassen van de linkjes:
- dat is neem ik aan alle linkjes in het script? ik tel namelijk 9 keer 'href=...'
- en waar plaats ik 'page=foto'? ziet dat er zo uit:
href="?page=foto&map='..wat er al staat..'$amp;foto='..wat er al staat..'></a>
Dus met andere woorden VOORAAN in de link, of toch anders?
Bas
over de URL vriendelijke benaming; dat is wat ik bedoelde, maar ik noemde had geen zin om www.website.nl?page=foto te typen.
Over het aanpassen van de linkjes:
- dat is neem ik aan alle linkjes in het script? ik tel namelijk 9 keer 'href=...'
- en waar plaats ik 'page=foto'? ziet dat er zo uit:
href="?page=foto&map='..wat er al staat..'$amp;foto='..wat er al staat..'></a>
Dus met andere woorden VOORAAN in de link, of toch anders?
Bas
Hallo Arjan,
wederom bedankt, maar het mag niet zo zijn. Ik heb bij alle linkjes page=foto toegevoegd; vooraan. De linkjes zien er dan zo uit:
href="?page=foto&map etc
In totaal is dat negen keer in het script. Nog ideeen? Is handig als ik een linkje geef, het script laat zien oid? Liever over e-mail of (live)messenger of liever via dit forum?
Overigens valt me op dat bij het resizen van de verticale pics naar thumbnails de opgegeven waarde niet de maximale waarde is, maar dat hij altijd de waarde van de breedte pakt. Ook worden foto's die kleiner zijn, vergroot. Ik heb een ander albumscript (dat ik op min of meer hetzelfde punt) ook niet aan de praat krijg, waarin dat wel goed gaat. Geinteresseerd?
In afwachting van weer een antwoord,
Bas
wederom bedankt, maar het mag niet zo zijn. Ik heb bij alle linkjes page=foto toegevoegd; vooraan. De linkjes zien er dan zo uit:
href="?page=foto&map etc
In totaal is dat negen keer in het script. Nog ideeen? Is handig als ik een linkje geef, het script laat zien oid? Liever over e-mail of (live)messenger of liever via dit forum?
Overigens valt me op dat bij het resizen van de verticale pics naar thumbnails de opgegeven waarde niet de maximale waarde is, maar dat hij altijd de waarde van de breedte pakt. Ook worden foto's die kleiner zijn, vergroot. Ik heb een ander albumscript (dat ik op min of meer hetzelfde punt) ook niet aan de praat krijg, waarin dat wel goed gaat. Geinteresseerd?
In afwachting van weer een antwoord,
Bas
In het voorbeeld lijkt het script echt handig :-)
Ik zou het zelf graag willen gebruiken maar ben beetje leek..
Ik heb het script gekopieërd en dan in mijn site geïntegreerd, een map 'fotoalbum' gemaakt en dan enkele foto's in gezet
resultaat: http://tehvuune.be/site/index.php?map=fotoalbum
mijn foto's komen niet tevoor schijn, iemand een idee om dit op te lossen?
Ik zou het zelf graag willen gebruiken maar ben beetje leek..
Ik heb het script gekopieërd en dan in mijn site geïntegreerd, een map 'fotoalbum' gemaakt en dan enkele foto's in gezet
resultaat: http://tehvuune.be/site/index.php?map=fotoalbum
mijn foto's komen niet tevoor schijn, iemand een idee om dit op te lossen?
Vraagje: Is het mogelijk dat de volgorde van de mappen zoals ik deze in mijn fotoalbum directery heb staan ook wordt aangehouden op de site. De directory array is nu een willekeurige volgorde volgens mij. Heb de functie sort($directory ingebouwd maar dan krijg ik natuurlijk op alfabetische volgorde en dat wil ik niet. een optie is sorteren op datum van wanneer de map is aangemaakt maar kan die functie niet voor elkaar krijgen
Ten eerste, dit is een oude versie. De nieuwe staat hier. PHPGD is een kwestie van de php.ini aanpassen, draai je zelf een server of besteed je dat uit?
Hallo, ik heb je nieuwe php code gebruikt maar probleem blijft hetzelfde,
ik heb zelf via windows xp professional een webserver draaien waar ik php heb geinstalleerd, maar die PHPGD begrijp ik niet zo goed, ik heb onder c:\windows php.ini staan ik heb dat geopend en het ; gewist voor extension=php_gd2.dll maar dan krijg ik de melding
Fatal error: Call to undefined function imagecreatetruecolor() in c:\Inetpub\wwwroot\test.php on line 39
PHP Warning: PHP Startup: Unable to load dynamic library './php_gd2.dll' - Kan opgegeven module niet vinden. in Unknown on line 0
dus ik weet niet wat ik nu dan moet doen, weet jij raad Arjan
dank u
ik heb zelf via windows xp professional een webserver draaien waar ik php heb geinstalleerd, maar die PHPGD begrijp ik niet zo goed, ik heb onder c:\windows php.ini staan ik heb dat geopend en het ; gewist voor extension=php_gd2.dll maar dan krijg ik de melding
Fatal error: Call to undefined function imagecreatetruecolor() in c:\Inetpub\wwwroot\test.php on line 39
PHP Warning: PHP Startup: Unable to load dynamic library './php_gd2.dll' - Kan opgegeven module niet vinden. in Unknown on line 0
dus ik weet niet wat ik nu dan moet doen, weet jij raad Arjan
dank u
Het scipt werkt perfect bij mij, alleen 1 probleem heb ik.
Heb deze ook al eerder gelezen , maar geen duidelijk antwoord gezien.
Om te testen heb ik een paar foto's geupload, en deed t perfect.
Fotos weer verwijderd van ftpserver ging ook goed. alleen de thumbnails niet..
deze mappen staan Cmod 755 en kan ze dus niet verwijderen, poging gedaan om deze in te stellen als 777 lukt niet, In het script gekeken en daarin de codes verandert nr 777, en weer het script geupload , nogsteeds kan ik neit verwijderen.
Wat nu? Alvast bedankt
Heb deze ook al eerder gelezen , maar geen duidelijk antwoord gezien.
Om te testen heb ik een paar foto's geupload, en deed t perfect.
Fotos weer verwijderd van ftpserver ging ook goed. alleen de thumbnails niet..
deze mappen staan Cmod 755 en kan ze dus niet verwijderen, poging gedaan om deze in te stellen als 777 lukt niet, In het script gekeken en daarin de codes verandert nr 777, en weer het script geupload , nogsteeds kan ik neit verwijderen.
Wat nu? Alvast bedankt
Dit kun je met deze code doen:
Let wel op datn iemand hier bij kan want anders zou iemand er misbruik van kunnen maken ;)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
function remove_directory($dir) {
if ($handle = opendir("$dir")) {
while (false !== ($item = readdir($handle))) {
if ($item != "." && $item != "..") {
if (is_dir("$dir/$item")) {
remove_directory("$dir/$item");
} else {
unlink("$dir/$item");
echo " removing $dir/$item<br>\n";
}
}
}
closedir($handle);
rmdir($dir);
echo "removing $dir<br>\n";
}
}
//fotoalbum veranderen in de map die je wilt verwijderen, geen / aan het einde
remove_directory("fotoalbum");
?>
function remove_directory($dir) {
if ($handle = opendir("$dir")) {
while (false !== ($item = readdir($handle))) {
if ($item != "." && $item != "..") {
if (is_dir("$dir/$item")) {
remove_directory("$dir/$item");
} else {
unlink("$dir/$item");
echo " removing $dir/$item<br>\n";
}
}
}
closedir($handle);
rmdir($dir);
echo "removing $dir<br>\n";
}
}
//fotoalbum veranderen in de map die je wilt verwijderen, geen / aan het einde
remove_directory("fotoalbum");
?>
Let wel op datn iemand hier bij kan want anders zou iemand er misbruik van kunnen maken ;)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Test</title>
<style type="text/css">
html, body {
font: 12px verdana,arial,sans-serif;
height: 100%;
text-align: justify;
}
img.centreren {
vertical-align:middle;
margin: 5px;
border: 0px;
}
img.thumbs {
vertical-align:middle;
border: 0px;
margin: 10px;
border: 1px solid black;
}
img.groot {
vertical-align:middle;
border: 0px;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
</head>
<body>
<?php
echo '<h1>Admin</h1>';
//We maken 2 array's, eentje voor de bestanden en een voor de mappen. We geven ook aan in welke map we de afbeeldingen kunnen vinden.
$directories = array();
$bestanden = array();
$beginmap = 'fotoalbum';
//Een aantal variabelen die je naar eigen behoefte kunt aanpassen.
$hoogte_klein = 150;
$breedte_klein = 100;
$hoogte_groot = 600;
$breedte_groot = 380;
$afbeeldingenperpagina = 15;
//functie, voor het opruimen van een array.
function arraySchoonmaken($array) {
foreach ($array as $index => $value) {
if (empty($value)) unset($array[$index]);
}
return $array;
}
//functie, voor het maken van een afbeelding.
function thumbnail($map,$thumblocatie,$bestandsnaam,$breedte,$hoogte)
{
list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($map.$bestandsnaam);
//We weten de breedte/hoogte van een afbeelding, we weten ook hoe groot ze moeten worden en gaan dus lekker rekenen!
if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte)) {
$breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
}else{
$hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
}
//Maak een nieuwe afbeelding aan met de juiste breedte en hoogte, openen de originele en gebruik de functie imagecopyresampled om daar een mooie afbeelding van te maken.
$afbeelding = imagecreatetruecolor($breedte, $hoogte);
switch ($type)
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagegif($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagejpeg($afbeelding, $map.$thumblocatie.$bestandsnaam,80);
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagepng($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
}
}
function remove_directory($dir)
{
if(@$handle = opendir($dir))
{
while(false !== ($item = readdir($handle)))
{
if ($item != "." && $item != "..")
{
if(is_dir($dir.'/'.$item))
{
remove_directory($dir.'/'.$item);
}else{
unlink($dir.'/'.$item);
}
}
}
closedir($handle);
rmdir($dir);
}
}
//Als er een map opgegeven is in de $_GET parameters kijken we of die leeg is en zorgen ervoor dat er geen misbruik van ons script gemaakt kan worden.
if(isset($_GET['map']) && !empty($_GET['map']))
{
$map = str_replace(array(".", "\\", ":"), " ", $_GET['map']).'/';
}else{
$map = $beginmap.'/';
}
//Die get variabele halen we uit elkaar zodat we alle losse mappen hebben in een array.
$mappen = arraySchoonmaken(explode('/', $map));
$aantal = count($mappen)+1;
if($mappen[0] != $beginmap)
{
echo 'Ey kappen nou! Je maakt hem kapot!';
exit();
}
//Dit gedeelte snap ikzelf niet eens meer... vraag mij niet wat ik hier doe en hoe en waarom ik dat doe. Het doet iets en het werkt. Ik denk dat we het daar maar bij moeten laten.
for($z = 1; $z < $aantal; $z++)
{
$temp = NULL;
for($y = 0; $y < $z; $y++)
{
if($mappen[$y] == $beginmap)
{
$temp .= $mappen[$y];
}else{
$temp .= '/'.$mappen[$y];
}
}
echo ' >> <a href="?map='.$temp.'">'.ucfirst($mappen[$z-1]).'</a>';
}
echo '<hr>';
if(@$dir = opendir($map))
{
while (false !== ($file = readdir($dir)))
{
//Standaard krijgen we een . en een .. te zien, die willen we niet hebben.
if ($file != "." && $file != "..")
{
//Als $file een bestand is is...
if(is_file($map.$file))
{
//... halen we de extensie eruit en checken of dat een jpeg is.
$bestandsgegevens = getimagesize($map.$file);
$extensie = $bestandsgegevens['mime'];
if($extensie == 'image/jpeg' || $extensie == 'image/gif' || $extensie == 'image/png')
{
//Toevoegen aan de bestanden array!
$bestanden[] = $file;
}
}
//Als $file een map is...
if(is_dir($map.$file))
{
//... kijken we eerst of het niet onze thumbs of thumbsgroot map is.
if($file != 'thumbs' && $file != 'thumbsgroot')
{
//Toevoegen aan de directories array!
$directories[] = $file;
}
}
}
}
closedir($dir);
}else{
//Wat doe je! Je maakt hem kapot! Bel 112!!!!1111oneoneoneone
echo '<p>Sorry, er gaat iets mis met het uitlezen van de directory!</p>';
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['verwijderenfoto']))
{
foreach($_POST['verwijderenfoto'] as $fotonr)
{
if(file_exists($map.$bestanden[$fotonr]))
{
unlink($map.$bestanden[$fotonr]);
if(file_exists($map.'thumbs/'.$bestanden[$fotonr]))
{
unlink($map.'thumbs/'.$bestanden[$fotonr]);
}
if(file_exists($map.'thumbsgroot/'.$bestanden[$fotonr]))
{
unlink($map.'thumbsgroot/'.$bestanden[$fotonr]);
}
unset($bestanden[$fotonr]);
}
}
}
if(isset($_POST['verwijderendirectory']))
{
foreach($_POST['verwijderendirectory'] as $dirnr)
{
if(file_exists($map.$directories[$dirnr].'/thumbs/'))
{
remove_directory($map.$directories[$dirnr].'/thumbs/');
}
if(file_exists($map.$directories[$dirnr].'/thumbsgroot/'))
{
remove_directory($map.$directories[$dirnr].'/thumbsgroot/');
}
remove_directory($map.$directories[$dirnr]);
unset($directories[$dirnr]);
echo '<p>Verwijderd!</p>';
}
}
}
//Als de directories array niet leeg is gaan we die eerst laten zien zodat mensen verder kunnen.
if(!empty($directories))
{
echo '<form action="" method="post">';
foreach($directories as $key => $directory)
{
echo '<input type="checkbox" name="verwijderendirectory[]" value="'.$key.'"><img src="afbeeldingen/folder.gif" class="centreren"><a href="?map='.$map.$directory.'">'.ucfirst($directory).'</a><br>';
}
echo '<br><input type="submit" name="Wissen" value="Wissen"></form>';
echo '<hr>';
}
if(!empty($bestanden))
{
echo '<form action="" method="post">';
foreach($bestanden as $fotonr => $key)
{
//Okay.. wat als er geen thumbsmap is?
if(!is_dir($map.'thumbs/'))
{
//Dan maak je die natuurlijk!
mkdir($map.'thumbs/',0777);
}
//Okay... wat als er geen thumbnail is?
if(!file_exists($map.'thumbs/'.$bestanden[$fotonr]))
{
//Dan maak je die natuurlijk!
thumbnail($map,'thumbs/', $bestanden[$fotonr],$breedte_klein,$hoogte_klein);
}
//De thumbnail bestaat... wat moet ik doen?
if(file_exists($map.'thumbs/'.$bestanden[$fotonr]))
{
//Jeetje man, kan je helemaal niks zelf? Laat die foto dan zien mafkees!
echo '<input type="checkbox" name="verwijderenfoto[]" value="'.$fotonr.'"><a href="?map='.substr_replace($map,"",-1).'&foto='.($fotonr+1).'" style="border: 0px;"><img src="'.$map.'thumbs/'.$bestanden[$fotonr].'" class="thumbs"></a><br>';
}
}
echo '<br><input type="submit" name="Wissen" value="Wissen"></form>';
}
?>
</body>
</html>
<html>
<head>
<title>Test</title>
<style type="text/css">
html, body {
font: 12px verdana,arial,sans-serif;
height: 100%;
text-align: justify;
}
img.centreren {
vertical-align:middle;
margin: 5px;
border: 0px;
}
img.thumbs {
vertical-align:middle;
border: 0px;
margin: 10px;
border: 1px solid black;
}
img.groot {
vertical-align:middle;
border: 0px;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
</head>
<body>
<?php
echo '<h1>Admin</h1>';
//We maken 2 array's, eentje voor de bestanden en een voor de mappen. We geven ook aan in welke map we de afbeeldingen kunnen vinden.
$directories = array();
$bestanden = array();
$beginmap = 'fotoalbum';
//Een aantal variabelen die je naar eigen behoefte kunt aanpassen.
$hoogte_klein = 150;
$breedte_klein = 100;
$hoogte_groot = 600;
$breedte_groot = 380;
$afbeeldingenperpagina = 15;
//functie, voor het opruimen van een array.
function arraySchoonmaken($array) {
foreach ($array as $index => $value) {
if (empty($value)) unset($array[$index]);
}
return $array;
}
//functie, voor het maken van een afbeelding.
function thumbnail($map,$thumblocatie,$bestandsnaam,$breedte,$hoogte)
{
list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($map.$bestandsnaam);
//We weten de breedte/hoogte van een afbeelding, we weten ook hoe groot ze moeten worden en gaan dus lekker rekenen!
if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte)) {
$breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
}else{
$hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
}
//Maak een nieuwe afbeelding aan met de juiste breedte en hoogte, openen de originele en gebruik de functie imagecopyresampled om daar een mooie afbeelding van te maken.
$afbeelding = imagecreatetruecolor($breedte, $hoogte);
switch ($type)
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagegif($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagejpeg($afbeelding, $map.$thumblocatie.$bestandsnaam,80);
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagepng($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
}
}
function remove_directory($dir)
{
if(@$handle = opendir($dir))
{
while(false !== ($item = readdir($handle)))
{
if ($item != "." && $item != "..")
{
if(is_dir($dir.'/'.$item))
{
remove_directory($dir.'/'.$item);
}else{
unlink($dir.'/'.$item);
}
}
}
closedir($handle);
rmdir($dir);
}
}
//Als er een map opgegeven is in de $_GET parameters kijken we of die leeg is en zorgen ervoor dat er geen misbruik van ons script gemaakt kan worden.
if(isset($_GET['map']) && !empty($_GET['map']))
{
$map = str_replace(array(".", "\\", ":"), " ", $_GET['map']).'/';
}else{
$map = $beginmap.'/';
}
//Die get variabele halen we uit elkaar zodat we alle losse mappen hebben in een array.
$mappen = arraySchoonmaken(explode('/', $map));
$aantal = count($mappen)+1;
if($mappen[0] != $beginmap)
{
echo 'Ey kappen nou! Je maakt hem kapot!';
exit();
}
//Dit gedeelte snap ikzelf niet eens meer... vraag mij niet wat ik hier doe en hoe en waarom ik dat doe. Het doet iets en het werkt. Ik denk dat we het daar maar bij moeten laten.
for($z = 1; $z < $aantal; $z++)
{
$temp = NULL;
for($y = 0; $y < $z; $y++)
{
if($mappen[$y] == $beginmap)
{
$temp .= $mappen[$y];
}else{
$temp .= '/'.$mappen[$y];
}
}
echo ' >> <a href="?map='.$temp.'">'.ucfirst($mappen[$z-1]).'</a>';
}
echo '<hr>';
if(@$dir = opendir($map))
{
while (false !== ($file = readdir($dir)))
{
//Standaard krijgen we een . en een .. te zien, die willen we niet hebben.
if ($file != "." && $file != "..")
{
//Als $file een bestand is is...
if(is_file($map.$file))
{
//... halen we de extensie eruit en checken of dat een jpeg is.
$bestandsgegevens = getimagesize($map.$file);
$extensie = $bestandsgegevens['mime'];
if($extensie == 'image/jpeg' || $extensie == 'image/gif' || $extensie == 'image/png')
{
//Toevoegen aan de bestanden array!
$bestanden[] = $file;
}
}
//Als $file een map is...
if(is_dir($map.$file))
{
//... kijken we eerst of het niet onze thumbs of thumbsgroot map is.
if($file != 'thumbs' && $file != 'thumbsgroot')
{
//Toevoegen aan de directories array!
$directories[] = $file;
}
}
}
}
closedir($dir);
}else{
//Wat doe je! Je maakt hem kapot! Bel 112!!!!1111oneoneoneone
echo '<p>Sorry, er gaat iets mis met het uitlezen van de directory!</p>';
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['verwijderenfoto']))
{
foreach($_POST['verwijderenfoto'] as $fotonr)
{
if(file_exists($map.$bestanden[$fotonr]))
{
unlink($map.$bestanden[$fotonr]);
if(file_exists($map.'thumbs/'.$bestanden[$fotonr]))
{
unlink($map.'thumbs/'.$bestanden[$fotonr]);
}
if(file_exists($map.'thumbsgroot/'.$bestanden[$fotonr]))
{
unlink($map.'thumbsgroot/'.$bestanden[$fotonr]);
}
unset($bestanden[$fotonr]);
}
}
}
if(isset($_POST['verwijderendirectory']))
{
foreach($_POST['verwijderendirectory'] as $dirnr)
{
if(file_exists($map.$directories[$dirnr].'/thumbs/'))
{
remove_directory($map.$directories[$dirnr].'/thumbs/');
}
if(file_exists($map.$directories[$dirnr].'/thumbsgroot/'))
{
remove_directory($map.$directories[$dirnr].'/thumbsgroot/');
}
remove_directory($map.$directories[$dirnr]);
unset($directories[$dirnr]);
echo '<p>Verwijderd!</p>';
}
}
}
//Als de directories array niet leeg is gaan we die eerst laten zien zodat mensen verder kunnen.
if(!empty($directories))
{
echo '<form action="" method="post">';
foreach($directories as $key => $directory)
{
echo '<input type="checkbox" name="verwijderendirectory[]" value="'.$key.'"><img src="afbeeldingen/folder.gif" class="centreren"><a href="?map='.$map.$directory.'">'.ucfirst($directory).'</a><br>';
}
echo '<br><input type="submit" name="Wissen" value="Wissen"></form>';
echo '<hr>';
}
if(!empty($bestanden))
{
echo '<form action="" method="post">';
foreach($bestanden as $fotonr => $key)
{
//Okay.. wat als er geen thumbsmap is?
if(!is_dir($map.'thumbs/'))
{
//Dan maak je die natuurlijk!
mkdir($map.'thumbs/',0777);
}
//Okay... wat als er geen thumbnail is?
if(!file_exists($map.'thumbs/'.$bestanden[$fotonr]))
{
//Dan maak je die natuurlijk!
thumbnail($map,'thumbs/', $bestanden[$fotonr],$breedte_klein,$hoogte_klein);
}
//De thumbnail bestaat... wat moet ik doen?
if(file_exists($map.'thumbs/'.$bestanden[$fotonr]))
{
//Jeetje man, kan je helemaal niks zelf? Laat die foto dan zien mafkees!
echo '<input type="checkbox" name="verwijderenfoto[]" value="'.$fotonr.'"><a href="?map='.substr_replace($map,"",-1).'&foto='.($fotonr+1).'" style="border: 0px;"><img src="'.$map.'thumbs/'.$bestanden[$fotonr].'" class="thumbs"></a><br>';
}
}
echo '<br><input type="submit" name="Wissen" value="Wissen"></form>';
}
?>
</body>
</html>
^^ Nog mooier, dan heb je een hele admin. Kan je foto's of hele mappen weggooien.
Dag Arjan,
Bedankt voor je mooie script, eigenlijk was ik al lang naar een script als dit op zoek omdat mijn hudige script de thumnails niet gelijk had staan.
We twee kleine vraagjes:
afstand thussen thumbnails is nul ze staan tegen elkaar aan, hoe pas ik dat aan.
na het klikken op een thumbnail direct de pop up dus geen extra mogelijkheid om te vergroten hoe pas ik dat aan
Ik gebruik het eerste script dat je schreef dat was voor mij al genoeg.
Bedankt voor je mooie script, eigenlijk was ik al lang naar een script als dit op zoek omdat mijn hudige script de thumnails niet gelijk had staan.
We twee kleine vraagjes:
afstand thussen thumbnails is nul ze staan tegen elkaar aan, hoe pas ik dat aan.
na het klikken op een thumbnail direct de pop up dus geen extra mogelijkheid om te vergroten hoe pas ik dat aan
Ik gebruik het eerste script dat je schreef dat was voor mij al genoeg.
Beste Arjan,
Het meest gebruiksvriendelijke script dat ik al gezien heb. Jammer genoeg niet implementeerbaar door mezelf.
Ik upload script en zie de map ./oud die in mijn dir staat, maar ik kan niet verder browsen. Of hij toont geen foto's. Moet ik nog iets aanpassen ? Want ik veronderstel dat jouw code zoals ik deze zie, zelf thumb mappen en dergelijke aanmaakt.
http://www.chiroliebel.be/test/index.php?c=foto
Mvg,
Koen DS
Het meest gebruiksvriendelijke script dat ik al gezien heb. Jammer genoeg niet implementeerbaar door mezelf.
Ik upload script en zie de map ./oud die in mijn dir staat, maar ik kan niet verder browsen. Of hij toont geen foto's. Moet ik nog iets aanpassen ? Want ik veronderstel dat jouw code zoals ik deze zie, zelf thumb mappen en dergelijke aanmaakt.
http://www.chiroliebel.be/test/index.php?c=foto
Mvg,
Koen DS
Koen, ik heb verder geen FTP toegang om te kijken wat er precies aan de hand is. Maar het lijkt er op het eerst gezicht op dat die directory beveilig is o.i.d. Heb je wel een directe link waarmee je door die map kunt bladeren? Stuur anders even een mail met wat meer info (mapstructuur, configuratie, etc).
Hey Arjan,
Op jouw antwoord ivm achors... heb ik nog een probleem mee.
Ik heb dit anker geplaatst net achter de titel (Fotoalbum) <a name="pic" id="pic"></a>
Nu weet ik bij god niet hoe ik deze kan aanroepen.
deze wil niet werken: echo '<a href="#pic?map='.substr_replace($map,"",-1).....
hij plaatst de # achter de link. Waarom weet ik niet.
Op jouw antwoord ivm achors... heb ik nog een probleem mee.
Ik heb dit anker geplaatst net achter de titel (Fotoalbum) <a name="pic" id="pic"></a>
Nu weet ik bij god niet hoe ik deze kan aanroepen.
deze wil niet werken: echo '<a href="#pic?map='.substr_replace($map,"",-1).....
hij plaatst de # achter de link. Waarom weet ik niet.
Heren, dit is versie 1! Er is ondertussen ook een sterk verbeterde versie 2 welke hier te bekijken is. Vragen kunnen dus ook daar terecht!
Tumbler, #pic hoort idd achter de url met al die get variabelen.
Tumbler, #pic hoort idd achter de url met al die get variabelen.
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Arjan Kapteijn- 7 jaar geleden
- 1.033 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP scripts opties
- Image manipulation
- Nieuwste PHP scripts
- PHP script toevoegen


PHP hulp
0 seconden vanaf nu