Avatar billede MrPingWin1255 Nybegynder
19. maj 2014 - 18:47 Der er 3 kommentarer og
1 løsning

Undgå fejl melding

Hej jeg har leget, med at lave et lille cms, og det virker, men inde på en af de sider, der henter nogle billeder ned. Mit problem er, at den melder en fejl, når der ikke er er nogen billeder i mappen, hvilket jeg gerne vil undgå. jeg har lavet det lille stykke kode:

<?php
$billeder = scandir("images/komiker/$title/images");
        foreach($billeder as $billede){
    if ($billede != "." && $billede != "..") {
    $billede_info = getimagesize("images/komiker/$title/images/$billede");
        if($billede_info){
        echo "<a href='images/komiker/$title/images/$billede' class='img_small'><img src='images/komiker/$title/images/$billede' alt='Galleri billede' /></a>";
}
}
}
?>

på forhånd tak
19. maj 2014 - 20:43 #1
scandir() returnerer en array med resultater, $billeder skulle blive en array med nul eller flere elementer.  At undgå fejlmelding, når der ikke er billeder, er det ikke 'bare' et spørgsmål om at teste, om $billeder har mere end nul elementer?  Ikke testet, men noget i retning af:

$billeder = scandir("images/komiker/$title/images");
if(count($billeder))
{
    foreach($billeder as $billede)
    {
        if ($billede != "." && $billede != "..")
        { ........
Avatar billede erikjacobsen Ekspert
19. maj 2014 - 22:57 #2
Det er vist ikke fordi kataloget er tomt, der kommer en fejl. Der kommer en fejl, når den angivne sti ikke er et katalog. I det tilfælde giver scandir et FALSE som resultat, og det kan ikke bruges i en foreach. Så noget i retning af:

<?php
$billeder = @scandir("images/komiker/$title/images");
  if($billeder!==FALSE) {
        foreach($billeder as $billede){
    if ($billede != "." && $billede != "..") {
    $billede_info = getimagesize("images/komiker/$title/images/$billede");
        if($billede_info){
        echo "<a href='images/komiker/$title/images/$billede' class='img_small'><img src='images/komiker/$title/images/$billede' alt='Galleri billede' /></a>";
}
}
}
}
?>
26. maj 2014 - 10:26 #3
Hvad så, kom du fra det igen?  Hvis spørgsmålet ikke længere er aktuelt, så luk det venligst igen.  Ellers kom ind og reager på indlæggene og fortæl hvad din videre hensigt er med spørgsmålet.
26. december 2014 - 15:10 #4
Jeg prøver lige en gang mere.  Fik du løst problemet, eller er spørgsmålet ikke længere aktuelt?  I så fald luk venligst spørgsmålet igen.  Ellers kom ind og fortæl, hvad din videre hensigt er med spørgsmålet.  Lad os ikke blive hængende i et åbent spørgsmål.  Please.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester