Hallo,
Ik heb het volgende script op mijn website staan in het fotoalbum.
Het is een script waarbij in plaats van het bladeren door de foto's een diavoorstelling opent in volledig scherm middels JS.
Het werkt allemaal prima, alleen ik heb geen idee hoe ik het script moet ombouwen.
Dit script laat random de foto's uit een map zien waarbij ik gebruik maak van een meta refresh.
Ik zou graag willen dat de foto's in volgorde worden getoont en niet meer random.
Ik denk niet dat het mogelijk is omdat ik de pagina refresh..
Maar misschien heeft een van jullie een idee?

voorbeeld op http://www.wesleymessing.nl
( dan naar foto's, jaar selecteren dan verschijnt >>Diavoorstelling<< )
Hieronder het script wat ik gebruik.


<?php
$Map = $_GET['map'];
$dir = opendir($Map);

// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);




// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
$afb = "$afbeelding[$rand]";

echo "<center><img src=\"$Map/$afb\" width=\"850\"></br>";
echo "$afb</br>";
echo '<a href="javascript:window.close();">Terug naar de website</a></center>';
?>
Jammer dat je telkens variabele 'kopieerd'
Paar voorbeelden daarvan:

<?php
$dir =  $_GET['map']; // line 12
$aantal = count($afbeeld); // line 38
$aantal = count($afbeeld); // line 69
?>


Je controleer of $_GET['foto'] leeg is, dit doe je niet voor $_GET['map']...

Ook ben ik het niet eens met dit stukje:


<?php
list($filename, $ext) = explode(".", $file);
$afbeeld[] = $file;
?>

Wat nou als ik een bestandsnaam heb die er als volgt uit ziet: dennis.messing.txt ?

Ook een meta tag midden op de pagina is niet netjes.

Ook heb de de ene echo met een dubbele quote (") en de andere met een single quote (').
Gebruik gewoon altijd single, en dan heb je voor html geen blackslash nodig.

Ook is het mooier om een variabele buiten quotes te houden (vooral als je werkt met single quotes, dan is het verplicht).


<?php
$foto = ($foto + 1 );
// Kan korter als
$foto++;
?>


En html tag center is ook een beetje ouderwets. Dit kun je dmv CSS oplossen, text-align...

En de code

<?="$dir"?>

Kan beter als

<?=$dir;?>


Integers buiten quotes:

<?php
$foto = '0';
// Wordt dan
$foto = 0;
?>


Dat waren een aantal punten. Succes :)
Bedankt voor je reactie.

volgens mij kan dit niet anders, ik kom namelijk uit een ander script, mijn fotoalbum en daar selecteer ik dus al op de map waarvan ik een diavoorstelling wil zien.
<?
$dir = $_GET['map']; // line 12
?>


Wat nou als ik een bestandsnaam heb die er als volgt uit ziet: dennis.messing.txt ?


bij het maken van het fotoalbum gebruik ik een uploadscript waarbij al op extensies wordt gecontroleerd, vandaar dat ik er niet aan heb gedacht. met andere woorden, in deze map kunnen alleen maar foto's staan.

Hoe ontkom ik aan die metatag midden op de pagina dan?

Nogmaals bedankt voor je uitleg! Ik zal het script eens aanpassen en misschien zou je dan nogmaals willen kijken?

Reageren