link in fotoalbum werkt niet

Status
Niet open voor verdere reacties.

weswillem

Gebruiker
Lid geworden
8 nov 2011
Berichten
310
Had al enige tijd een fotoalbum script liggen.
Heb deze een beetje aangepast aan mijn wensen.
Nu ben ik al een week bezig om het script zodanig
te maken dat wanneer ik op een link klikt, een x aantal
foto's krijg te zien uit die directory die daaraan gekoppeld is.
Maar ik denk dat ik van het padje ben, want het lukt
mij maar niet.
Alles werkt goed, behalve links.
Foto's worden geplaatst in:
bv
Fotos/Test1
Fotos/Test2
Linken worden dan zichtbaar als Test1, Test2
Iemand die mij op weg cq padje kan helpen.

de foutmelding die ik krijg is:
Notice: Undefined index: page in C:\wamp\www\foto6nu bezig\index.php on line 236

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');	
// Deze variabelen moet je naar eigen wensen veranderen



$dirname = "fotos/"; // map waarin de afbeeldingen staan
$dir_thumbs = "fotos/thumbs/"; // map waarin de thumbnails zitten
$afbeeldingenperrij = "6"; // aantal afbeeldingen per rij
$aantalrijen = "4"; // aantal rijen per pagina
$breedte_thumbnail = "100"; // breedte van de thumbnails
$hoogte_thumbnail = "100"; // hoogte van de thumbnails
$showtitle = "yes"; // wil je bovenaan een titel weergeven? ("yes" of "no")
$albumnaam = "Fotoalbum"; // titel die bovenaan weergegeven wordt

// de huidige locatie op de server vaststellen
//mappen/albums zoeken 
 if (file_exists($dirname)) {  
  $SubDir = array();  
      if ($dirHandle = opendir($dirname)){ 
        //echo $dirname;
          while ($album = readdir($dirHandle)){ 
               //echo $dirHandle;
              if ($album != "." && $album != ".."){ 
                  $pathAlbum = $dirname."/".$album;              
                 if (is_dir($pathAlbum)){ 
                     $SubDir[] = array(filemtime($pathAlbum),$album);                 
                 }  
              } 
          } 
          closedir($dirHandle); 
      } //echo $pathAlbum;
 } else { 
    $str .= "Hoofdmap bestaat niet!"; 
 } 
 
  $AantalSubDir = count($SubDir)-1; 
  //echo "Er zijn " .$AantalSubDir. " albums";
  if($AantalSubDir>0){ 
     $count = 0; 
     $coll = 1; 
     while ($count < $AantalSubDir) { 
        //if ($coll <= $aantalthumbs) { 
       //if(file_exists($dirname."/".$SubDir[$count][1].$thumbnaam)){ 
             
        // $Albums .= "<br>".$SubDir[$count][1]."</center></td>\n"; 
        
       //}   
        $coll ++; 
        $count++;    
}
} 


$php_self = explode("/",$_SERVER['PHP_SELF']);

if (is_array($php_self))
{
    $php_self = urlencode($php_self[count($php_self)-1]);

}else{
    $php_self = urlencode($php_self);
}
// toegelaten extensies
$ext = "jpg gif png bmp"; // wbmp pjpeg jpeg";

if (!opendir($dirname) || !opendir($dir_thumbs))
{
    echo "Kan de map met foto's of de map met thumbnails niet openen";
    exit;
}

$time_start = microtime(true);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Fotoalbum</title>

<link rel="stylesheet" type="text/css" href="foto.css">
<script language="javascript" type="text/javascript">

function check_images() {
    for(i=0;i<document.images.length;i++) {
    var maxWidth = 800;
        if(document.images[i].width > maxWidth){
            var origWidth = document.images[i].width;
            var origHeight = document.images[i].height;
            document.images[i].width = maxWidth;
            document.images[i].height = origHeight/(origWidth/maxWidth);
        }
    }
}
setInterval(check_images,1000);
</script>

</head>
<body>
<?php

//=====================================================
//Functie om te controleren of de opgegeven pagina wel bestaat.
//=====================================================
function pageExists($pagenr)
{
    global $aantalpaginas;
    if ($pagenr <= $aantalpaginas && $pagenr > 0)
    {
        return true;
    }else{
        return false;
    }
}
//=====================================================
//Functie die het aantal fotobestanden in een map telt.
//=====================================================

function countPhotos($dirname)
{
    global $ext;
    $ext2 = $ext;
    $open = opendir($dirname);
    $aantalfotos = 0;    

    $ext2 = explode(" ",$ext2);    
    while (false !== ($file = readdir($open)))
    {
        $pathinfo = pathinfo($file);
        if (isset($pathinfo["extension"]) && in_array(strtolower($pathinfo["extension"]), $ext2))          
        {   //print_r (in_array(strtolower($pathinfo["extension"]), $ext2));     
            $aantalfotos++;
        }
    }    
    closedir($open);
    return $aantalfotos;
    //print_r($aantalfotos);    
}

function generateArrDir($dir)
{   
    global $ext;
    $ext2 = $ext;
    $handle = opendir($dir);
    $files = array();
    $ext2 = explode(" ",$ext2);    

    if ($handle)
    {
        while (false !== ($file = readdir($handle)))
        {
            $ext = explode(".",$file);
            $ext = $ext[count($ext)-1];            

            if (in_array(strtolower($ext),$ext2))
            { 
                $files[] = $file;
                
            }
        }
        closedir($handle);
        return $files;
        print_r ($file);
    }else{
        return false;
    }
}

//==================================================================================
//Functie die thumbnails (=kleine foto's) maakt en ze dan in de thumbnailmap opslaat
//==================================================================================
function thumbnail($map,$thumblocatie,$bestandsnaam,$breedte,$hoogte)
{
    $breedte2 = $breedte;
    $hoogte2 = $hoogte;    

    list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($map.$bestandsnaam);

    if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte))
    {
        $breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
    }else{
        $hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
    }
    $afbeelding = imagecreatetruecolor($breedte, $hoogte);
    // eerst controleren of de foto wel verkleind moet worden
    if ($breedte_origineel > $breedte2 || $hoogte_origineel > $hoogte2)
    {
        switch ($type) 
        {
            case 1:
                //gif
                $afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
                imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
                imagegif($afbeelding, $thumblocatie.$bestandsnaam);
                break;
            case 2:
                //jpg
                $afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
                imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
                imagejpeg($afbeelding, $thumblocatie.$bestandsnaam,80);
                break;
            case 3:
                //png
                $afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
                imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
                imagepng($afbeelding, $thumblocatie.$bestandsnaam);
                break;
        }
    }
    // anders kopi?ren we de foto gewoon naar de thumbsmap
    else{
        copy($map.$bestandsnaam,$thumblocatie.$bestandsnaam);
    }
    return true;
}

//=====================================================
//   Hieronder dient niets meer veranderd te worden
//=====================================================
$fotosperpagina = $afbeeldingenperrij * $aantalrijen;
$aantalfotos = countPhotos($dirname);
$aantalpaginas = ceil($aantalfotos / $fotosperpagina);
// fotomap openen
$open = opendir($dirname);

//=====================================================
// als er geen actie is opgegeven 
//=====================================================

if (empty($_GET['action']))
{
    $photos = generateArrDir($dirname);      
    $page = $_GET['page'];
    
//=====================================================
// opgegeven paginanummer controleren
//=====================================================
    if (!is_numeric($page) || !pageExists($page))
    {
        $page = "1";
    }else{
        $page = $page;
    }   

    $photos = array_chunk($photos,$fotosperpagina,true);
    $photos = $photos[$page-1];
    $vorige = $page-1;
    $volgende = $page+1;   

    echo "<table width= 49% border='1' align= center>";        
//=====================================================
// titel bovenaan weergeven indien zo ingesteld
//=====================================================
    echo'<TR>';
    echo'<TD WIDTH=48%  COLSPAN="0" align=center>';  
        if ($showtitle == "yes")
        {
           echo "<h2 class=\"title\">" . $albumnaam . "</h2>\n";
        }
    echo '</table>';
    echo "<table width= 49% border='1' align= center>";        
    echo'<TR>';
    echo "<td width=10% align=center>"; // colspan=\"3\">";
    //$tmp = NULL;
    //foreach(explode('/',$dirname) as $tmp)
    //{    
    //echo '<a href="?pagina=fotoalbum&amp;album='.$tmp.'">'; //.ucfirst($tmp2).'</a><br> ';
        echo "Er zijn " .$AantalSubDir. " albums";
    //}
    echo "</td>";             
    echo'<TD VALIGN="top">';//begin vak dir's 
        if(isset($SubDir)){ 
                 if(!$mappen = glob($dirname.'/*', GLOB_ONLYDIR))
                 {
                    $mappen = array();        
            }        
            foreach($mappen as $album)
            {
            if(basename($album)!= 'thumbs')            
            { 
              echo '<a href="?pagina=fotoalbum&album="'.$album.'">'.ucfirst(basename($album)).'</a><br>';              
            }
           $mappendir[] = $album;
            }
        }
        echo '</td>';        
        
    if (is_array($photos))
    {
        // kijken of er een "vorige" knop nodig is
        echo '<tr BGCOLOR=blue>';
        echo '<td colspan="2"><center>';
        if (pageExists($vorige))
        {            
            echo "<a href=\"" . $php_self . "?page=".$vorige."\">&lt;&lt;&nbsp;Vorige</a>\n";
        }else{
            echo "<span class=\"hidden\">Vorige&nbsp;&gt;&gt;</span>";
        }
        echo "&nbsp;&nbsp;&nbsp;\n";
               
//=====================================================
// kijken of er een "volgende" knop nodig is
//=====================================================
        if (pageExists($volgende))
        {
            echo "<a href=\"" . $php_self . "?page=".$volgende."\">Volgende&gt;&gt;&nbsp;</a>\n";
        }else{
            echo "<span class=\"hidden\">Volgende&nbsp;&gt;&gt;</span>";
        }
        echo "<br>\n";
         echo "</center></td>";
        echo "</tr>";
        echo '<tr BGCOLOR=black>';
        echo '<td colspan="2"><center>';
        $inrij = 0;
        foreach ($photos as $id => $photo)
        {
            if (!file_exists($dir_thumbs . $photo))
            {
                // ... dan maken we die aan
                thumbnail($dirname,$dir_thumbs,$photo,$breedte_thumbnail,$hoogte_thumbnail);
            }
            echo "<img src=\"" . $dir_thumbs . $photo . "\" alt=\"" . $photo . "\"  onclick=\"location.href='" . $php_self . "?action=photo&amp;id=".$id."'\" class=\"image\">\n";
            $inrij++;
            // als de foto de laatste van de rij is, breken we de rij af om terug aan de kant te beginnen
            if ($inrij == $afbeeldingenperrij)
            {
                echo "<br>\n";
                // $inrij op 0 zetten
                $inrij = "0";
            }
        }
        echo "</div>\n";
    }else{
        echo "<td>Geen foto's aanwezig";
    }
    echo "</center></td>";
    echo "</tr>";
    echo "</table>";
}
//=====================================================
//Einde begin scherm Overzicht
//=====================================================

//=====================================================
// als er op een foto geklikt wordt willen we dat deze foto in het groot wordt weergegeven
//=====================================================

elseif ($_GET['action'] == "photo" && isset($_GET['id']) && is_numeric($_GET['id']))
{
    
    echo "<table width= 43% border='1'background-COLOR:#d3d3d3 align= center>";
    $volgende = $_GET['id']+1;
    $vorige = $_GET['id']-1;
    $photoid = $_GET['id'];
    $page1 = $_GET['id'] + 1;
    $page = $page1 / $fotosperpagina;
    $page = ceil($page);  
    $photos = generateArrDir($dirname);

    echo '<tr BGCOLOR=blue>';
    echo '<td colspan="2"><center>';
    //echo "<div id=\"mainlayer\">\n";
    // begin navigatie bovenaan... 
    if ($photoid < 1){
        //doe niets
    }else{        
        if (file_exists($dir_thumbs . $photos[$photoid]) && in_array($photos[$photoid],$photos))
        {
            echo "<a href=\"" . $php_self . "?action=photo&amp;id=".$vorige."\">&lt;&lt;&nbsp;Vorige</a>\n";
        }else{
            echo "<span class=\"hidden\">Vorige&nbsp;&gt;&gt;</span>";
        }
        }
    echo "&nbsp;&nbsp;&nbsp;\n";
        if ($aantalfotos > $photoid + 1){
            if (file_exists($dir_thumbs . $photos[$photoid+1]) && in_array($photos[$photoid+1],$photos))
            {//echo "start grote foto      ";
                echo "<a href=\"" . $php_self . "?action=photo&amp;id=".$volgende."\">Volgende&nbsp;&gt;&gt;</a>\n";
            }else{
                echo "<span class=\"hidden\">Volgende&nbsp;&gt;&gt;</span>";
            }
                echo "<span class=\"hidden\">Volgende&nbsp;&gt;&gt;</span>";
        }
    //echo "<br>\n";
    //echo "<br>\n";
echo "</center></td>";
echo "</tr>";
//echo $pathinfo;
//=================================================
// ... einde navigatie bovenaan
//=================================================  
//begin foto...
//=================================================
        if ($volgende = $aantalfotos) {
        $volgende= $volgende-1;
        }
    if (file_exists($dir_thumbs . $photos[$volgende]) && in_array($photos[$volgende],$photos))    
    {
echo '<tr>';
echo '<td colspan="2"><center>';
        echo "<img src=\"" . $dirname . $photos[$photoid] . "\" alt=\"" . $photos[$photoid] . "\" onclick=\"location.href='" . $php_self . "?action=photo&amp;id=" . $volgende . "'\" class=\"image\">\n";
        //echo $photoid;
        
    }else{
        echo "<img src=\"" . $dirname . $photos[$photoid] . "\" alt=\"" . $photos[$photoid] . "\" class=\"image2\">\n";
    }
    echo "<br>\n";
    echo "<br>\n";
echo "</center></td>";
echo "</tr>";
//}
//==============================================================
// ... einde foto
//===============================================================
// begin thumbnailsbalk....
//==============================================================    
echo '<tr>';
echo '<td colspan="2"><center>';
    if ($photoid >= 2) {
        if (file_exists($dir_thumbs . $photos[$photoid - 2]) && in_array($photos[$photoid - 2],$photos))
        {//echo "start1";
            $location = $photoid - 2;
            echo "<img src=\"" . $dir_thumbs . $photos[$photoid - 2] . "\" class=\"image\" alt=\"" . $photos[$photoid - 2] . "\" onclick=\"location.href='" . $php_self . "?action=photo&amp;id=" . $location . "'\">\n";
        }else{
    
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n";
        }
        if (file_exists($dir_thumbs . $photos[$photoid - 1]) && in_array($photos[$photoid - 1],$photos))
        {//echo "start2";
            $location = $photoid - 1;
            echo "<img src=\"" . $dir_thumbs . $photos[$photoid - 1] . "\" class=\"image\" alt=\"" . $photos[$photoid - 1] . "\" onclick=\"location.href='" . $php_self . "?action=photo&amp;id=" . $location . "'\">\n";
        }else{
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n";
        }
    }
//=====================================================
// dit wordt de middelste foto in balk.
// dan heb je er nog 2 aan de linkerkant
// en 2 aan de rechterkant
//=====================================================
    if (file_exists($dir_thumbs . $photos[$photoid]) && in_array($photos[$photoid],$photos))
    {//echo "start3";
        echo "<img src=\"" . $dir_thumbs . $photos[$photoid] . "\" class=\"this_image\" alt=\"" . $photos[$photoid] . "\">\n";
    }else{
        echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n";
    }
//=====================================================
        if ($photoid +1 < $aantalfotos) {
        // dan stoppen
        if (file_exists($dir_thumbs . $photos[$photoid + 1]) && in_array($photos[$photoid + 1],$photos))
        {//echo "start4";
            $location = $photoid + 1;
            echo "<img src=\"" . $dir_thumbs . $photos[$photoid + 1] . "\" class=\"image\" alt=\"" . $photos[$photoid + 1] . "\" onclick=\"location.href='" . $php_self . "?action=photo&amp;id=" . $location . "'\">\n";
        }else{
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n";
        }
    }
   
   if ($photoid +2 < $aantalfotos) {       
        if (file_exists($dir_thumbs . $photos[$photoid + 2]) && in_array($photos[$photoid + 2],$photos))
        {
            $location = $photoid + 2;
            echo "<img src=\"" . $dir_thumbs . $photos[$photoid + 2] . "\" class=\"image\" alt=\"" . $photos[$photoid + 2] . "\" onclick=\"location.href='" . $php_self . "?action=photo&amp;id=" . $location . "'\">\n";
        }else{
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n";
        }    
    }   
echo "<br>";
echo "<br>";
echo "</center></td>";
echo "</tr>";
//=================================================
// ... einde thumbnailsbalk
//=================================================

//=========================================================
// voor overzicht
//=========================================================
echo '<tr BGCOLOR=blue>';
echo '<td colspan="2"><center>';
    echo "<a href=\"" . $php_self . "?page=".$page."\">Overzicht</a>\n";
    //echo "<br>\n";
    //echo "<br>\n";
echo "</center></td>";
echo "</tr>";
    //echo "[ <a href=\"" . $dirname . $photos[$photoid] . "\">Origineel</a> ]";
//=========================================================
// ... einde navigatie onderaan   
//=========================================================
    
}
echo '</table>';
?>
</body>
</html>
<?php
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "<br />Pagina generatie in $time seconden.\n";
?>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan