fotoalbum script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

J C

J C

25/01/2022 14:29:36
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
$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];
               }


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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$files[] = $file;


Is mijn script verouderd of moet ik iets aanpassen in mijn phpversie?
Gewijzigd op 25/01/2022 14:30:37 door J C
 
PHP hulp

PHP hulp

26/06/2022 12:52:57
 
- Ariën  -
Beheerder

- Ariën -

25/01/2022 15:21:32
Quote Anchor link
Zet bovenaan je while van lijn 23 dit neer:
$files = [];

Daarmee defineer je dat $files een array is.
 
Ivo P

Ivo P

25/01/2022 16:43:29
Quote Anchor link
de vraag is wel, waarom $files dan voor die tijd een string is geworden. Dat heb je ergens zelf ingesteld. Mogelijk met $files = ''; ???

Verder:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
sort($files);
             if(is_array($files)){
?>


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
 
J C

J C

25/01/2022 17:33:37
Quote Anchor link
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.
Gewijzigd op 25/01/2022 17:34:47 door J C
 
- Ariën  -
Beheerder

- Ariën -

25/01/2022 17:46:56
Quote Anchor link
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.
Gewijzigd op 25/01/2022 17:47:39 door - Ariën -
 
J C

J C

25/01/2022 17:53:27
Quote Anchor link
JA zal ik zeker doen, want nu werkt het wel! Dank jullie wel.
 
- Ariën  -
Beheerder

- Ariën -

25/01/2022 19:20:01
Quote Anchor link
Fijn om te horen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.