meer pagina's includen
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
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
<!-- Dit staat in de hoofdpagina in de content DIV -->
<?php
switch (strtolower($_GET['pagina']))
{
case "test1": //Link "test1"? variabele $pagina = test1.php
$pagina="test1.php";
break;
case "test2":
$pagina="test2.php";
break;
case "test3":
$pagina="test3.php";
break;
default: //Geen pagina gevonden? standaard tekst
$pagina="default.php";
break;
}
include ($pagina); //include de variabele $pagina
?>
<!-- Dit is de link in de navigatie naar de pagina die geinclude moet worden -->
<a href="index.php?pagina=test1">test1</a>
<a href="index.php?pagina=test2">test2</a>
<a href="index.php?pagina=test3">test3</a>
<?php
switch (strtolower($_GET['pagina']))
{
case "test1": //Link "test1"? variabele $pagina = test1.php
$pagina="test1.php";
break;
case "test2":
$pagina="test2.php";
break;
case "test3":
$pagina="test3.php";
break;
default: //Geen pagina gevonden? standaard tekst
$pagina="default.php";
break;
}
include ($pagina); //include de variabele $pagina
?>
<!-- Dit is de link in de navigatie naar de pagina die geinclude moet worden -->
<a href="index.php?pagina=test1">test1</a>
<a href="index.php?pagina=test2">test2</a>
<a href="index.php?pagina=test3">test3</a>
Als ik bijvoorbeeld 20 links naar verschillende verslagen maak moet ik dan al die 20 links in de hoofdpagina verwerken zoals ik heb gedaan met test1, test2 en test3?
Of is hier een gemakkelijkere en efficentere manier voor?
En ik wil graag niet veranderen van manier van includen.
Kan iemand mij dat uitleggen?
$pagina="map1/test4.php";
Dus als ik het goed begrijp gewoon het pad naar de pagina in de paginanaam verwerken?
Dit is dan wel wat netter:
Code (php)
Die array kan je altijd uitbreiden met meer paginas die toegestaan zijn.
Pas iemand die GET variable aan in de URL, en de pagina staat niet in de Array, of die staat er wel in maar de pagina.php bestaat niet, dan wordt gewoon home.php weergegeven.
Als je 10 paginas op die manier van jouw wilt includen, krijg je een ellendig lang script.
Hier hoef je alleen de toegestane paginas (zonder .php erachter) in de array te zetten.
dit is een gecombineerde versie Ik zal het even met commentregels erin herposten voor je
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// een array met toegestane pagina's
$allow_pages = array('map1/home','map2/login');
// controleer of de opgevraagde pagina is toegestaan
if(isset($_GET['page']) && in_array($_GET['page'],$allow_pages)){
//als die is toegestaan, controleer of de opgevraagde php pagina wel bestaat
if(file_exists($_GET['page'].".php")){
include($_GET['page'].".php");
}
//als bestand niet bestond, include dan de standaard pagina
else{
include("map1/home.php");
}
//als het een niet toegestane pagina is, include dan de standaard pagina
}else{
include("home.php");
}
?>
// een array met toegestane pagina's
$allow_pages = array('map1/home','map2/login');
// controleer of de opgevraagde pagina is toegestaan
if(isset($_GET['page']) && in_array($_GET['page'],$allow_pages)){
//als die is toegestaan, controleer of de opgevraagde php pagina wel bestaat
if(file_exists($_GET['page'].".php")){
include($_GET['page'].".php");
}
//als bestand niet bestond, include dan de standaard pagina
else{
include("map1/home.php");
}
//als het een niet toegestane pagina is, include dan de standaard pagina
}else{
include("home.php");
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
http://www.ypm-design.com/source.php vanaf regel 180 tot 200
En wat ook kan:
Code (php)
Grote nadelen hiervan:
Pagina's van buitenaf kunnen door users geinclude worden...
Misschien lange dingen achter ?pag=
Gewijzigd op 01/01/1970 01:00:00 door Nick Mulder
Het voorbeeld van jou (de code die je postte) is ook gebruikt in voorgaande oplossingen, waarbij wel een beveiliging is ingebouwd, zodat je alleen toegestane pagina's kan includen.
En wat het "probleem" is met jouw code van de link die je postte, je controleerd helemaal niet of er wel een $_GET['pag'] is geset (functie isset()) Op sommige servers geeft dit een warning weer, en op andere is er wel een warning, maar wordt die niet geshowd. Probeer met het programeren error_reporting op E_ALL te zetten, en dan ook te zorgen dat je geen notices meer krijgt. Het helpt je goed en netjes te programmeren en voorkomt problemen die vroeger of later toch wel zullen ontstaan.
Allen bedankt voor de moeite en als ik het niet werkend krijg dan horen jullie vanzelf weer van me.
Maar als iemand zo al weet welke ik bedoel hoe moet ik dit script aanpassen aan de bovengenoemde methode??
Dat ligt waarschijnlijk aan de includes in het script van Arjan. (Ik neem aan dat daar includes in zitten). Als je dat script in een eigen map hebt gezet en je include het als mapnaam/pagina.php dan zul je de path's in dat script ook moeten voorzien van 'mapnaam/'.
Ik denk dat het probleem is dat het foto-album ook gegevens meegeeft met de GETmethode.
Zorg ervoor dat je in de links die je genereerd ook altijd aangeeft dat je pag=fotoalbum in de url meegeeft.
@Robert: Dat zou ook heel goed kunnen.
Ok, ik heb nu geen mogelijkheid om er aan te knutselen. Maar als eht zover is dan horen jullie weer van me.
Gebruik een database dat scheelt weer 20 statements bij switch statement.
Dit is de link die gegenereerd wordt voor de volgende knop:
index.php?paginanr=1&pagina=fotoalbum/valkenburg_2006
Dit zijn de links die van de thumbnails naar de foto's gaan:
index.php?pagina=fotoalbum/valkenburg_2006&foto=1
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
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
<?php
echo '<h1>Valkenburg 2006</h1><p>';
//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();
$map = 'fotoalbum/valkenburg_2006/';
//Een aantal variabelen die je naar eigen behoefte kunt aanpassen.
$hoogte_klein = 75;
$breedte_klein = 100;
$hoogte_groot = 400;
$breedte_groot = 400;
$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 && ($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;
}
}
//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']).'/';
}
//Die get variabele halen we uit elkaar zodat we alle losse mappen hebben in een array.
$mappen = arraySchoonmaken(explode('/', $map));
$aantal = count($mappen)+1;
//Even vervelende mensen als abiboe weghouden ;)
if($mappen[0] != 'fotoalbum')
{
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] == 'fotoalbum')
{
$temp .= $mappen[$y];
}
else{
$temp .= '/'.$mappen[$y];
}
}
echo ' >> <a href="?pagina='.$temp.'">'.ucfirst($mappen[$z-1]).'</a>';
}
echo '<hr>';
//Open de directory en we gaan die bestand voor bestand uitlezen.
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' && $file != 'Geheim')
{
//Toevoegen aan de directories array!
$directories[] = $file;
}
}
}
}
closedir($dir);
}else{
//Wat doe je! Je maakt hem kapot! Bel 112!!!!1111oneoneoneone
echo 'Sorry, deze directory kan ik niet openen!';
}
//Als de directories array niet leeg is gaan we die eerst laten zien zodat mensen verder kunnen.
if(!empty($directories))
{
foreach($directories as $directory)
{
echo '<img src="afbeeldingen/folder.gif" class="centreren"><a href="?pagina='.$map.$directory.'">'.ucfirst($directory).'</a><br>';
}
echo '<hr>';
}
//Als iemand niet enkel één foto opvraagt laten we de thumbnails zien.
if(!isset($_GET['foto']))
{
if(!empty($bestanden))
{
if(isset($_GET['paginanr']))
{
if(is_numeric($_GET['paginanr']))
{
$paginanr = $_GET['paginanr'];
}
}else{
$paginanr = 0;
}
$aantalfotos = count($bestanden);
//Als er meer dan 10 fotos zijn krijgen we een volgende/vorige knopje.
if($aantalfotos > $afbeeldingenperpagina)
{
echo '<div style="text-align: center; margin: 10px;">';
//Hebben we een vorige knopje nodig?
if ($paginanr > 0)
{
echo '<a href="?paginanr='.($paginanr - 1).'&pagina='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr).'"><< Vorige</a>';
}else{
echo '<< Vorige';
}
//We laten even zien op welke pagina we zitten en hoeveel er zijn.
echo ' Pagina '.ceil($paginanr+1).' van '.ceil($aantalfotos/$afbeeldingenperpagina).' ';
//Hebben we een volgende knopje nodig?
if ($paginanr < floor(($aantalfotos -1)/$afbeeldingenperpagina))
{
echo '<a href="?paginanr='.($paginanr + 1).'&pagina='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr + 2).'">Volgende >></a><br>';
}else{
echo 'Volgende >><br>';
}
echo '</div><div style="text-align: center;">';
}
//Don't ask, hogere wiskunde vereist. Ik weet zelf niet meer wat ik deed maar het werkt...
for($fotonr = ($paginanr * $afbeeldingenperpagina); $fotonr <= ($paginanr * $afbeeldingenperpagina) + ($afbeeldingenperpagina) -1 && $fotonr < count($bestanden); $fotonr += 1)
{
//Okay.. wat als er geen thumbsmap is?
if(!is_dir($map.'thumbs/'))
{
//Dan maak je die natuurlijk!
mkdir($map.'thumbs/',0755);
}
//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 '<a href="?pagina='.substr_replace($map,"",-1).'&foto='.($fotonr+1).'" style="border: 0px;"><img src="'.$map.'thumbs/'.$bestanden[$fotonr].'" class="thumbs"></a>';
}
}
echo '</div>';
}else{
//Duidelijk, de map is leeg!
if(empty($directories))
{
echo '<p>Sorry, deze map is leeg!</p>';
}
}
}else{
//Stel dat iemand één enkele foto opvraagt! STEL JE VOOR!
if(is_numeric($_GET['foto']))
{
$fotonr = $_GET['foto'] -1;
if(@is_file($map.$bestanden[$fotonr]))
{
echo '<div style="text-align: center; margin: 10px;">';
if ($fotonr > 0)
{
echo '<a href="?pagina='.substr_replace($map,"",-1).'&foto='.$fotonr.'" title="Ga naar foto '.$fotonr.'"><< Vorige</a>';
}else{
echo '<< Vorige';
}
echo ' Foto '.($fotonr+1).' van '.count($bestanden).' ';
if ($fotonr < count($bestanden))
{
echo '<a href="?pagina='.substr_replace($map,"",-1).'&foto='.($fotonr+2).'" title="Ga naar foto '.($fotonr+2).'">Volgende >></a><br>';
}else{
echo 'Volgende >><br>';
}
echo '</div>';
//Als er geen map bestaat kan je die aanmaken...
if(!is_dir($map.'thumbsgroot/'))
{
mkdir($map.'thumbsgroot/',0755);
}
//Als de thumbnail niet bestaat wil ik dat je hem aanmaakt!
if(!file_exists($map.'thumbsgroot/'.$bestanden[$fotonr]))
{
thumbnail($map,'thumbsgroot/', $bestanden[$fotonr],$hoogte_groot,$hoogte_groot);
}
//De grotere thumbnail bestaat... laat maar zien die handel!
if(file_exists($map.'thumbsgroot/'.$bestanden[$fotonr]))
{
echo '<div style="text-align: center;"><a href="'.$map.$bestanden[$fotonr].'" target="_blank" style="border: 0px;"><img src="'.$map.'thumbsgroot/'.$bestanden[$fotonr].'" class="groot" title="'.$bestanden[$fotonr].'"></a>';
$afmeeting = getimagesize($map.$bestanden[$fotonr]);
echo '<br><br><a href="'.$map.$bestanden[$fotonr].'" target="_blank">Origineel ('.$afmeeting[0].' x '.$afmeeting[1].')</a></div>';
}
}else{
echo '<p>Sorry, deze foto bestaat niet!</p>';
}
}
}
?>
echo '<h1>Valkenburg 2006</h1><p>';
//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();
$map = 'fotoalbum/valkenburg_2006/';
//Een aantal variabelen die je naar eigen behoefte kunt aanpassen.
$hoogte_klein = 75;
$breedte_klein = 100;
$hoogte_groot = 400;
$breedte_groot = 400;
$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 && ($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;
}
}
//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']).'/';
}
//Die get variabele halen we uit elkaar zodat we alle losse mappen hebben in een array.
$mappen = arraySchoonmaken(explode('/', $map));
$aantal = count($mappen)+1;
//Even vervelende mensen als abiboe weghouden ;)
if($mappen[0] != 'fotoalbum')
{
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] == 'fotoalbum')
{
$temp .= $mappen[$y];
}
else{
$temp .= '/'.$mappen[$y];
}
}
echo ' >> <a href="?pagina='.$temp.'">'.ucfirst($mappen[$z-1]).'</a>';
}
echo '<hr>';
//Open de directory en we gaan die bestand voor bestand uitlezen.
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' && $file != 'Geheim')
{
//Toevoegen aan de directories array!
$directories[] = $file;
}
}
}
}
closedir($dir);
}else{
//Wat doe je! Je maakt hem kapot! Bel 112!!!!1111oneoneoneone
echo 'Sorry, deze directory kan ik niet openen!';
}
//Als de directories array niet leeg is gaan we die eerst laten zien zodat mensen verder kunnen.
if(!empty($directories))
{
foreach($directories as $directory)
{
echo '<img src="afbeeldingen/folder.gif" class="centreren"><a href="?pagina='.$map.$directory.'">'.ucfirst($directory).'</a><br>';
}
echo '<hr>';
}
//Als iemand niet enkel één foto opvraagt laten we de thumbnails zien.
if(!isset($_GET['foto']))
{
if(!empty($bestanden))
{
if(isset($_GET['paginanr']))
{
if(is_numeric($_GET['paginanr']))
{
$paginanr = $_GET['paginanr'];
}
}else{
$paginanr = 0;
}
$aantalfotos = count($bestanden);
//Als er meer dan 10 fotos zijn krijgen we een volgende/vorige knopje.
if($aantalfotos > $afbeeldingenperpagina)
{
echo '<div style="text-align: center; margin: 10px;">';
//Hebben we een vorige knopje nodig?
if ($paginanr > 0)
{
echo '<a href="?paginanr='.($paginanr - 1).'&pagina='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr).'"><< Vorige</a>';
}else{
echo '<< Vorige';
}
//We laten even zien op welke pagina we zitten en hoeveel er zijn.
echo ' Pagina '.ceil($paginanr+1).' van '.ceil($aantalfotos/$afbeeldingenperpagina).' ';
//Hebben we een volgende knopje nodig?
if ($paginanr < floor(($aantalfotos -1)/$afbeeldingenperpagina))
{
echo '<a href="?paginanr='.($paginanr + 1).'&pagina='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr + 2).'">Volgende >></a><br>';
}else{
echo 'Volgende >><br>';
}
echo '</div><div style="text-align: center;">';
}
//Don't ask, hogere wiskunde vereist. Ik weet zelf niet meer wat ik deed maar het werkt...
for($fotonr = ($paginanr * $afbeeldingenperpagina); $fotonr <= ($paginanr * $afbeeldingenperpagina) + ($afbeeldingenperpagina) -1 && $fotonr < count($bestanden); $fotonr += 1)
{
//Okay.. wat als er geen thumbsmap is?
if(!is_dir($map.'thumbs/'))
{
//Dan maak je die natuurlijk!
mkdir($map.'thumbs/',0755);
}
//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 '<a href="?pagina='.substr_replace($map,"",-1).'&foto='.($fotonr+1).'" style="border: 0px;"><img src="'.$map.'thumbs/'.$bestanden[$fotonr].'" class="thumbs"></a>';
}
}
echo '</div>';
}else{
//Duidelijk, de map is leeg!
if(empty($directories))
{
echo '<p>Sorry, deze map is leeg!</p>';
}
}
}else{
//Stel dat iemand één enkele foto opvraagt! STEL JE VOOR!
if(is_numeric($_GET['foto']))
{
$fotonr = $_GET['foto'] -1;
if(@is_file($map.$bestanden[$fotonr]))
{
echo '<div style="text-align: center; margin: 10px;">';
if ($fotonr > 0)
{
echo '<a href="?pagina='.substr_replace($map,"",-1).'&foto='.$fotonr.'" title="Ga naar foto '.$fotonr.'"><< Vorige</a>';
}else{
echo '<< Vorige';
}
echo ' Foto '.($fotonr+1).' van '.count($bestanden).' ';
if ($fotonr < count($bestanden))
{
echo '<a href="?pagina='.substr_replace($map,"",-1).'&foto='.($fotonr+2).'" title="Ga naar foto '.($fotonr+2).'">Volgende >></a><br>';
}else{
echo 'Volgende >><br>';
}
echo '</div>';
//Als er geen map bestaat kan je die aanmaken...
if(!is_dir($map.'thumbsgroot/'))
{
mkdir($map.'thumbsgroot/',0755);
}
//Als de thumbnail niet bestaat wil ik dat je hem aanmaakt!
if(!file_exists($map.'thumbsgroot/'.$bestanden[$fotonr]))
{
thumbnail($map,'thumbsgroot/', $bestanden[$fotonr],$hoogte_groot,$hoogte_groot);
}
//De grotere thumbnail bestaat... laat maar zien die handel!
if(file_exists($map.'thumbsgroot/'.$bestanden[$fotonr]))
{
echo '<div style="text-align: center;"><a href="'.$map.$bestanden[$fotonr].'" target="_blank" style="border: 0px;"><img src="'.$map.'thumbsgroot/'.$bestanden[$fotonr].'" class="groot" title="'.$bestanden[$fotonr].'"></a>';
$afmeeting = getimagesize($map.$bestanden[$fotonr]);
echo '<br><br><a href="'.$map.$bestanden[$fotonr].'" target="_blank">Origineel ('.$afmeeting[0].' x '.$afmeeting[1].')</a></div>';
}
}else{
echo '<p>Sorry, deze foto bestaat niet!</p>';
}
}
}
?>
Jelle Posthuma schreef op 15.12.2006 12:18:
@Nick Mulder:
Dit is dan wel wat netter:
Die array kan je altijd uitbreiden met meer paginas die toegestaan zijn.
Pas iemand die GET variable aan in de URL, en de pagina staat niet in de Array, of die staat er wel in maar de pagina.php bestaat niet, dan wordt gewoon home.php weergegeven.
Als je 10 paginas op die manier van jouw wilt includen, krijg je een ellendig lang script.
Hier hoef je alleen de toegestane paginas (zonder .php erachter) in de array te zetten.
Dit is dan wel wat netter:
Code (php)
Die array kan je altijd uitbreiden met meer paginas die toegestaan zijn.
Pas iemand die GET variable aan in de URL, en de pagina staat niet in de Array, of die staat er wel in maar de pagina.php bestaat niet, dan wordt gewoon home.php weergegeven.
Als je 10 paginas op die manier van jouw wilt includen, krijg je een ellendig lang script.
Hier hoef je alleen de toegestane paginas (zonder .php erachter) in de array te zetten.
Kan je niet beter de bestanden mét extensie in de array zetten, want als je een .html bestand wilt includen kan het zo niet, of zie ik dat verkeerd?