fotoalbum script
Het werkte wel op de vorige website, maar niet meer op de nieuwe. Dus ik denk dat ik een bepaalde functie in php moet instellen.
Dit is het script:
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
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
$albumqry ="
SELECT
webfoto_link,
webfoto_naam,
webfoto_tekst
FROM
webfoto
WHERE
webfoto_taal ='NL'
ORDER BY
volgnr";
if(!$statement = $connection->prepare($albumqry)){
echo 'Fout in query: '.$mysqli->error;
}
$statement->execute();
$result = $statement->get_result();
while($fotoalbum = $result->fetch_assoc())
{$folder = $fotoalbum['webfoto_link'];
if ($handle = opendir($pathfoto)){
if(is_dir($pathfoto.$folder)){
if ($handle2 = opendir($pathfoto.$folder."/tmb")){
while (false !== ($file = readdir($handle2))){
if($file != "." && $file != ".." && $file != "Thumbs.db" && $file != "tmb"){
$files[] = $file;
}
}
}
}
sort($files);
if(is_array($files)){
$map_foto = $urlfoto.$folder."/tmb/".$files[0];
}
SELECT
webfoto_link,
webfoto_naam,
webfoto_tekst
FROM
webfoto
WHERE
webfoto_taal ='NL'
ORDER BY
volgnr";
if(!$statement = $connection->prepare($albumqry)){
echo 'Fout in query: '.$mysqli->error;
}
$statement->execute();
$result = $statement->get_result();
while($fotoalbum = $result->fetch_assoc())
{$folder = $fotoalbum['webfoto_link'];
if ($handle = opendir($pathfoto)){
if(is_dir($pathfoto.$folder)){
if ($handle2 = opendir($pathfoto.$folder."/tmb")){
while (false !== ($file = readdir($handle2))){
if($file != "." && $file != ".." && $file != "Thumbs.db" && $file != "tmb"){
$files[] = $file;
}
}
}
}
sort($files);
if(is_array($files)){
$map_foto = $urlfoto.$folder."/tmb/".$files[0];
}
Dit zijn de foutmeldingen:
Fatal error: Uncaught Error: [] operator not supported for strings in /home/sds/domains/stage-drapes.nl/public_html/new/includes/fotoalbumscript.php:32 Stack trace: #0 /home/sds/domains/stage-drapes.nl/public_html/new/pages/fotoalbums.php(11): include_once() #1 /home/sds/domains/stage-drapes.nl/public_html/new/includes/sql.php(71): include_once('/home/sds/domai...') #2 /home/sds/domains/stage-drapes.nl/public_html/new/includes/functies.php(3): include_once('/home/sds/domai...') #3 /home/sds/domains/stage-drapes.nl/public_html/new/includes/index.php(4): include_once('/home/sds/domai...') #4 /home/sds/domains/stage-drapes.nl/public_html/index.php(13): include_once('/home/sds/domai...') #5 {main} thrown in /home/sds/domains/stage-drapes.nl/public_html/new/includes/fotoalbumscript.php on line 32
En regel 32 is
Is mijn script verouderd of moet ik iets aanpassen in mijn phpversie?
Gewijzigd op 25/01/2022 14:30:37 door J C
$files = [];
Daarmee defineer je dat $files een array is.
Verder:
Apart: eerst sorteer je $files (alsof het een array is) en daarna controleer je met if() of $files wel een array was....
Mocht je in het blok erboven geen files gevonden hebben, dan zal $files in het geheel niet bestaan.
Oplossing is wat Ariën zegt: vooraf definieren dat $files een leeg array is.
Maar de foutmelding zegt dat $files een string zou zijn
Maar opde website podiumverhuurhaaglanden.nl draait hetzelfde script en daar werkt het wel. Zonder de toevoeging $files=[];
Wat het script zou moeten doen is kijken welke folders er in de map staan en die weergeven als een foto met daaronder de titel van de map.
Gewijzigd op 25/01/2022 17:34:47 door J C
Dus voeg die type toewijzing gewoon toe op alle scripts.
Gewijzigd op 25/01/2022 17:47:39 door - Ariën -
JA zal ik zeker doen, want nu werkt het wel! Dank jullie wel.
Fijn om te horen.