fotoalbum script
Ik heb een probleem met mijn fotoalbumscript.
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:
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?
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
Zet bovenaan je while van lijn 23 dit neer:
$files = [];
Daarmee defineer je dat $files een array is.
$files = [];
Daarmee defineer je dat $files een array is.
de vraag is wel, waarom $files dan voor die tijd een string is geworden. Dat heb je ergens zelf ingesteld. Mogelijk met $files = ''; ???
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
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
Ik heb het script niet zelf gemaakt.
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.
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
Klopt, maar vroeger is het blijkbaar niet volgens de juiste regels geprogrammeerd, maar werd het door PHP gecorrigeerd. Daar komt nu blijkbaar een eind aan.
Dus voeg die type toewijzing gewoon toe op alle scripts.
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.




