Avatar billede wormsk8 Nybegynder
10. juli 2005 - 01:11 Der er 8 kommentarer og
1 løsning

problemer med fremvisning af billeder

Go' aften/nat exp'er.

jB (en af mine venner og jeg) sad og legede med http://euroloser.dk/worm !

En side der hvor man kan trykke forrige og næste billede!

Vi løb dog ind i et problem, som hverken jB (aka php-guru) eller jeg kunne løse.

Man får denne fejl-meddelse når man prøver at trykke forrige.

"Fatal error: [] operator not supported for strings in /home/web/gb0077/worm/index.php on line 66"

Koden ser sådan her ud:
<?
$dir    = "blog";
$def    = "blog";
$tilb    = "‹‹ forrrige";
$frem    = "næste ››";

/* magi ;)
*/
if($dir==NULL){    $dir = $def;    }
if(file_exists($dir))
{
   
    if ($handle = opendir($dir)) {
      while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != "..") {
              $img[] = $file;
          }
      }
      closedir($handle);
    }

    if($_GET[img]==NULL){    $id = (count($img)-1);    }
    else{    foreach($img AS $x=>$get){
            if($img[$x]=="$_GET[img].jpg"){    $id = $x;    }
        }
    }

    if($id==0){    $back = $tilb;    }else{
            $fil  = str_replace(".jpg","",$img[($id-1)]);
            $back = "<a href='?img=".$fil."'>$tilb</a>";
    }
    if($id==(count($img)-1)){
            $next = $frem;    }else{
            $fil  = str_replace(".jpg","",$img[($id+1)]);
            $next = "<a href='?img=".$fil."'>$frem</a>";
    }
/* vis billed
*/
    echo "<div id='top'>$back | <a href='./'>seneste</a> | $next / <a href='./thumbnails.php'>thumbnails</a></div>";
?><div id='billede'>
<div id='billedeind'>
<img border="0" src="<?=$dir?>/<?=$img[$id]?>"></div></div>
<?
}else{?>Ingen mappe "<b><?=$dir?></b>"..<?}
?>

Endnu et problem er på min thumbnail-side! Hvor der simpelthen ikke vises noget. Det virkede indtil denne del kom ind:

    if($file!="."&&$file!=".."){
    if(strtolower(substr($file,(strlen($file)-3),strlen($file)))=="jpg")

Som skal sørge for at det kun er billeder der bliver vidst.

Den fulde kode ser således ud:

<?php
if ($handle = opendir('./blog/thumbs/')) {
    if($file!="."&&$file!=".."){
    if(strtolower(substr($file,(strlen($file)-3),strlen($file)))=="jpg")

{  echo "<a href='./index.php?vis=&img=$file'><img src='./blog/thumbs/$file' /></a><br>\n";
  while (false !== ($file = readdir($handle))) {
    if($file!="."&&$file!=".."){
      echo "<a href='./index.php?vis=&img=$file'><img src='./blog/thumbs/$file' /></a><br>\n";}
  }
while ($file = readdir($handle) && $file != "." && $file != "..") {
      echo "<a href='./index.php?vis=&img=$file'><img src='./blog/thumbs/$file' /></a><br>\n";
  }
  closedir($handle);
}
}}

?>

Det skal siges, at alle mapper osv. passer. Så der kan ikke laves noget om.

Håber i kan hjælpe, mig!

Mvh. Kasper Worm Andersson
Avatar billede jaw Nybegynder
10. juli 2005 - 01:16 #1
Og hvad er linie 66 så? Synes ikke jeg kan se der er 66 linier i din kode...
Avatar billede wormsk8 Nybegynder
10. juli 2005 - 01:25 #2
Nej har taget det overflødige af.

63,64,65,66:

if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$img[] = $file;
Avatar billede jaw Nybegynder
10. juli 2005 - 01:29 #3
Så skyldes din fejl, at du prøver at bygge et array ovenpå en string. Altså, du har sætter $img i din adresselinie (vist nok = juni?), hvor du så senere prøver $img[] = file; - den duer ikke...
Avatar billede wormsk8 Nybegynder
10. juli 2005 - 01:40 #4
Hvad hvordan skal det så se ud?
Avatar billede jaw Nybegynder
10. juli 2005 - 01:51 #5
Tjah, I kan i hvert fald ikke have samme variabel-navn, så jeg har prøvet at ændre det. Om jeg helt når det resultat I ønsker, det ved jeg så ikke, men prøv det:

<?
$dir    = "blog";
$def    = "blog";
$tilb    = "‹‹ forrrige";
$frem    = "næste ››";

/* magi ;)
*/
if($dir==NULL){    $dir = $def;    }
if(file_exists($dir))
{
   
    if ($handle = opendir($dir)) {
      while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != "..") {
              $_img[] = $file;
          }
      }
      closedir($handle);
    }

    if($_GET[img]==NULL){   
        $id = (count($_img)-1);    }
    else{    foreach($_img AS $x=>$get){
            if($_img[$x]=="$_GET[img].jpg"){    $id = $x;    }
        }
    }
echo $id;
    if($id==0){    $back = $tilb;    }else{
            $fil  = str_replace(".jpg","",$_img[($id-1)]);
            $back = "<a href='?img=".$fil."'>$tilb</a>";
    }
    if($id==(count($img)-1)){
            $next = $frem;    }else{
            $fil  = str_replace(".jpg","",$_img[($id+1)]);
            $next = "<a href='?img=".$fil."'>$frem</a>";
    }
/* vis billed
*/
    echo "<div id='top'>$back | <a href='./'>seneste</a> | $next / <a href='./thumbnails.php'>thumbnails</a></div>";
?><div id='billede'>
<div id='billedeind'>
<img border="0" src="<?=$dir?>/<?=$_img[$id]?>"></div></div>
<?
}else{?>Ingen mappe "<b><?=$dir?></b>"..<?}
?>
Avatar billede wormsk8 Nybegynder
10. juli 2005 - 01:52 #6
Nu fik vi lige lavet det om, så nu virker det.

koden:

<html>

<head>
<title>photoblog 2005 version 3</title>
<style>

body {
margin: 0px; background-color: white;
        font-family: Tahoma, Verdana, Georgia, Arial, sans-serif;
        color:#B1B1B1;
        font-size:11px;
       
overflor: never;  }

#top { background: #E8E8E8 url('topbg.jpg') repeat-x; height: 50px; text-align: center; padding: 5px; font-size: 12px; line-height: 20px; padding-top: 30px; color: #B1B1B1; }

* html top { height: 80px; }

#topb { font-size: 24px; line-height: 200%; }

#billede {


    width: 610px;
    border:1px solid #888888;
    /* Selve centreringen */
    margin-top: -150px; /* Sæt til ½ af højden på dit element. */
    margin-left: -305px; /* Sæt til ½ af bredden på dit element. */
    position: absolute;
    top: 50%;
    left: 50%;
    font-size: 11px;
}

#billedeind { padding: 5px;    background-color: #E8E8E8;
    }

img { }

#copyright { top: 95%; left: 0%; position: absolute; text-align: center; color: #B1B1B1; width: 100%; }

a { color: #666666 }




</style>
</head>

<body>
<?
$dir    = "blog";
$def    = "blog";
$tilb    = "‹‹ forrrige";
$frem    = "næste ››";
$tom    = "";

/* magi ;)
*/
if($dir==NULL){    $dir = $def;    }
if(file_exists($dir))
{
   
    if ($handle = opendir($dir)) {
      while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != "..") {
            if(strtolower(substr($file,(strlen($file)-3),strlen($file)))=="jpg")
        {        $list[] = $file;    }
          }
      }
      closedir($handle);
    }

    if($_GET[img]==NULL){    $id = (count($list)-1);    }
    else{    foreach($list AS $x=>$get){
            if($list[$x]=="$_GET[img].jpg"){    $id = $x;    }
        }
    }

    if($id==0){    $back = $tilb;    }else{
            $fil  = str_replace(".jpg","",$list[($id-1)]);
            $back = "<a href='?img=".$fil."'>$tilb</a>";
    }
    if($id==(count($list)-1)){
            $next = $frem;    }else{
            $fil  = str_replace(".jpg","",$list[($id+1)]);
            $next = "<a href='?img=".$fil."'>$frem</a>";
    }
/* vis billed
*/
    echo "<div id='top'><div id='topleft'>$back <a href='./'>seneste</a>  $next</div></div>";
?><div id='billede'>
<div id='billedeind'>
<img border="0" src="<?=$dir?>/<?=$list[$id]?>"></div></div>
<?
}else{?>Ingen mappe "<b><?=$dir?></b>"..<?}
?>
<div id='copyright'>Alle billeder er kopibeskyttet af Kasper Worm Andersson 2005</div>
</body>

</html>

Nu er det kun thumbnails.php der ikke virker.

<html>

<head>
<title>photoblog 2005 version 3</title>
<style>

body {
margin: 0px; background-color: white;
        font-family: Tahoma, Verdana, Georgia, Arial, sans-serif;
        color:#B1B1B1;
        font-size:11px;
       
overflor: never;  }

#top { background: #E8E8E8 url('topbg.jpg') repeat-x; height: 50px; text-align: center; padding: 5px; font-size: 12px; line-height: 20px; padding-top: 30px; color: #B1B1B1 }

* html top { height: 80px; }

#topb { font-size: 24px; line-height: 200%; }

#billede {


    width: 610px;
    border:1px solid #888888;
    /* Selve centreringen */
    margin-top: -150px; /* Sæt til ½ af højden på dit element. */
    margin-left: -305px; /* Sæt til ½ af bredden på dit element. */
    position: absolute;
    top: 50%;
    left: 50%;
    font-size: 11px;
}

#billedeind { padding: 5px;    background-color: #E8E8E8;
    }

img { }

#copyright { top: 95%; left: 0%; position: absolute; text-align: center; color: #B1B1B1; width: 100%; }

a { color: #666666 }

img a { color: none; }




</style>
</head>

<body>
<div id='top'><div id='topleft'><a href='./'>seneste</a> / <a href='./thumbnails.php'>thumbnails</a></div></div>"
<div id='billede'>
<div id='billedeind'>
<?php
if ($handle = opendir('./blog/thumbs/')) {
    if($file!="."&&$file!=".."){
    if(strtolower(substr($file,(strlen($file)-3),strlen($file)))=="jpg")

{  echo "<a href='./index.php?vis=&img=$file'><img src='./blog/thumbs/$file' /></a><br>\n";
  while (false !== ($file = readdir($handle))) {
    if($file!="."&&$file!=".."){
      echo "<a href='./index.php?vis=&img=$file'><img src='./blog/thumbs/$file' /></a><br>\n";}
  }
while ($file = readdir($handle) && $file != "." && $file != "..") {
      echo "<a href='./index.php?vis=&img=$file'><img src='./blog/thumbs/$file' /></a><br>\n";
  }
  closedir($handle);
}
}}

?>

</div></div>

<div id='copyright'>Alle billeder er kopibeskyttet af Kasper Worm Andersson 2005</div>
</body>

</html>
Avatar billede jaw Nybegynder
10. juli 2005 - 02:03 #7
Dit andet problem har jeg ryddet lidt op i det. Prøv det, og se om du får hvad du ønsker:

<?php
    if ($handle = opendir('./blog/thumbs/)) {
      while (false !== ($file = readdir($handle))) {
        $pathinfo    = pathinfo("./blog/thumbs/".$file);
        if( ($file!="."&&$file!="..") && ($pathinfo["extension"] == "jpg")) {
              echo "<a href='./index.php?vis=&img=$file'><img src='./blog/thumbs/$file' /></a><br>\n";
            }
        }
        closedir($handle);
    }

?>
Avatar billede wormsk8 Nybegynder
10. juli 2005 - 02:20 #8
Mange tak for hjælpen, det hele virker nu!

Smid svar, og sov godt..
Avatar billede jaw Nybegynder
10. juli 2005 - 02:22 #9
Det var så lidt - og i lige måde :)
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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