Ben er nu een tijdje mee bezig, maar krijg de fouten er niet uit.
Trek nu maar ff de stoute schoenen aan.
Deze fotoalbum bestaat uit 6 kolommen en 4 rijen.
Krijg bij opstarten de navolgende fout:
- Notice: Undefined index: extension in C:\wamp\www\foto6\foto.php on line 88
Bij het klikken op de eerste foto krijg ik de foto iets groter te zien
en daaronder moeten dan 6 thumnails komen
maar krijg dan ook de melding:
- Notice: Undefined offset: -1 in C:\wamp\www\foto6\foto.php on line 296
- Notice: Undefined offset: -2 in C:\wamp\www\foto6\foto.php on line 327
- Notice: Undefined offset: -1 in C:\wamp\www\foto6\foto.php on line 335
- Notice: Undefined offset: -1 in C:\wamp\www\foto6\foto.php on line 371
Iemand die mij op weg kan helpen?
Zie bijgevoegde bestanden.
Trek nu maar ff de stoute schoenen aan.
Deze fotoalbum bestaat uit 6 kolommen en 4 rijen.
Krijg bij opstarten de navolgende fout:
- Notice: Undefined index: extension in C:\wamp\www\foto6\foto.php on line 88
Bij het klikken op de eerste foto krijg ik de foto iets groter te zien
en daaronder moeten dan 6 thumnails komen
maar krijg dan ook de melding:
- Notice: Undefined offset: -1 in C:\wamp\www\foto6\foto.php on line 296
- Notice: Undefined offset: -2 in C:\wamp\www\foto6\foto.php on line 327
- Notice: Undefined offset: -1 in C:\wamp\www\foto6\foto.php on line 335
- Notice: Undefined offset: -1 in C:\wamp\www\foto6\foto.php on line 371
Iemand die mij op weg kan helpen?
Zie bijgevoegde bestanden.
Code:
<?php
// 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
$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; //jpg gif png bmp wbmp pjpeg jpeg
$ext2 = $ext;
$open = @opendir($dirname);
$aantalfotos = 0;
$ext2 = explode(" ",$ext2);
while (false !== ($file = @readdir($open)))
{
$pathinfo = pathinfo($file);
if (in_array(strtolower($pathinfo["extension"]), $ext2))
{
$aantalfotos++;
}
}
@closedir($open);
return $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;
}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 style=\"width: 100%;\">";
// titel bovenaan weergeven indien zo ingesteld
if ($showtitle == "yes")
{
echo "<tr>";
echo "<td colspan=\"2\">";
echo "<h2 class=\"title\">" . $albumnaam . "</h2>\n";
echo "</td>";
echo "</tr>";
}
echo "<tr>";
if (is_array($photos))
{
echo "<td style=\"width: 170px; vertical-align: top;\">";
echo "<div class=\"overzicht\">";
// enkele statistieke meegeven
echo "Totaal aantal foto's: ".$aantalfotos;
echo "\n<br>\n";
echo "Aantal pagina's: ".$aantalpaginas;
echo "\n<br>\n";
echo "Aantal foto's per pagina: ".$fotosperpagina;
echo "\n<br>\n";
echo "Ga naar pagina: \n<br>\n<br>\n";
echo "<form method=\"get\" action=\"" . $php_self . "\">\n";
echo "<select name=\"page\" onchange=\"this.form.submit()\" style=\"width: 70px;\">\n";
for ($k = 1; $k <= $aantalpaginas; $k++)
{
if ($k == $page)
{
echo "<option value=\"" . $k . "\" selected=\"selected\">" . $k . "</option>\n";
}else{
echo "<option value=\"" . $k . "\">" . $k . "</option>\n";
}
}
echo "</select>\n";
echo "</form>\n";
echo "</div>";
echo "</td>";
echo "<td style=\"vertical-align: top;\">";
echo "<div id=\"mainlayer\">\n";
// kijken of er een "vorige" knop nodig is
if (pageExists($vorige))
{
echo "<a href=\"" . $php_self . "?page=".$vorige."\"><< Vorige</a>\n";
}else{
echo "<span class=\"hidden\">Vorige >></span>";
}
echo " \n";
// kijken of er een "volgende" knop nodig is
if (pageExists($volgende))
{
echo "<a href=\"" . $php_self . "?page=".$volgende."\">Volgende>> </a>\n";
}else{
echo "<span class=\"hidden\">Volgende >></span>";
}
echo "<br>\n<br>\n";
$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&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 "<td>";
echo "</tr>";
echo "<tr>";
echo "</table>";
}
// 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']))
{
$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 "<div id=\"mainlayer\">\n";
// begin navigatie bovenaan...
if (file_exists($dir_thumbs . $photos[$photoid-1]) && in_array($photos[$photoid-1],$photos))
{
echo ($photos[$photoid-1]);
echo "<a href=\"" . $php_self . "?action=photo&id=".$vorige."\"><< Vorige</a>\n";
}else{
echo "<span class=\"hidden\">Vorige >></span>";
}
echo " \n";
if (file_exists($dir_thumbs . $photos[$photoid+1]) && in_array($photos[$photoid+1],$photos))
{
echo "<a href=\"" . $php_self . "?action=photo&id=".$volgende."\">Volgende >></a>\n";
}else{
echo "<span class=\"hidden\">Volgende >></span>";
}
echo "<br>\n";
echo "<br>\n";
// ... einde navigatie bovenaan
//begin foto...
if (file_exists($dir_thumbs . $photos[$volgende]) && in_array($photos[$volgende],$photos))
{
echo "<img src=\"" . $dirname . $photos[$photoid] . "\" alt=\"" . $photos[$photoid] . "\" onclick=\"location.href='" . $php_self . "?action=photo&id=" . $volgende . "'\" class=\"image\">\n";
}else{
echo "<img src=\"" . $dirname . $photos[$photoid] . "\" alt=\"" . $photos[$photoid] . "\" class=\"image2\">\n";
}
echo "<br>\n";
echo "<br>\n";
// ... einde foto
//============================================================================================
// begin thumbnailsbalk....
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&id=" . $location . "'\">\n";
}else{
echo " \n";
}
if (file_exists($dir_thumbs . $photos[$photoid-1]) && in_array($photos[$photoid-1],$photos))
{
$location = $photoid - 1;
echo "<img src=\"" . $dir_thumbs . $photos[$photoid-1] . "\" class=\"image\" alt=\"" . $photos[$photoid-1] . "\" onclick=\"location.href='" . $php_self . "?action=photo&id=" . $location . "'\">\n";
}else{
echo " \n";
}
if (file_exists($dir_thumbs . $photos[$photoid]) && in_array($photos[$photoid],$photos))
{
echo "<img src=\"" . $dir_thumbs . $photos[$photoid] . "\" class=\"this_image\" alt=\"" . $photos[$photoid] . "\">\n";
}else{
echo " \n";
}
if (file_exists($dir_thumbs . $photos[$photoid+1]) && in_array($photos[$photoid+1],$photos))
{
$location = $photoid + 1;
echo "<img src=\"" . $dir_thumbs . $photos[$photoid+1] . "\" class=\"image\" alt=\"" . $photos[$photoid+1] . "\" onclick=\"location.href='" . $php_self . "?action=photo&id=" . $location . "'\">\n";
}else{
echo " \n";
}
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&id=" . $location . "'\">\n";
}else{
echo " \n";
}
echo "<br>";
echo "<br>";
// ... einde thumbnailsbalk
//===============================================================================================
// begin navigatie onderaan...
if (file_exists($dir_thumbs . $photos[$photoid-1]) && in_array($photos[$photoid-1],$photos))
{
echo "<a href=\"" . $php_self . "?action=photo&id=".$vorige."\"><< Vorige</a>\n";
}else{
echo "<span class=\"hidden\">Vorige >></span>";
}
echo " \n";
if (file_exists($dir_thumbs . $photos[$photoid+1]) && in_array($photos[$photoid+1],$photos))
{
echo "<a href=\"" . $php_self . "?action=photo&id=".$volgende."\">Volgende >></a>\n";
}else{
echo "<span class=\"hidden\">Volgende >></span>";
}
echo "<br>\n";
echo "<br>\n";
echo "<a href=\"" . $php_self . "?page=".$page."\">Overzicht</a>\n";
echo "<br>\n";
echo "<br>\n";
echo "[ <a href=\"" . $dirname . $photos[$photoid] . "\">Origineel</a> ]";
// ... einde navigatie onderaan
//=========================================================================
echo "</div>\n";
}
?>
</body>
</html>
<?php
$time_end = microtime(true);
$time = $time_end - $time_start;
//echo "<br />Pagina generatie in $time seconden.\n";
?>