Krijg script niet voor elkaar

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis Messing

Dennis Messing

09/12/2008 10:02:00
Quote Anchor link
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.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?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>';
?>
Gewijzigd op 01/01/1970 01:00:00 door Dennis Messing
 
PHP hulp

PHP hulp

20/04/2024 01:17:28
 
Tamara

Tamara

09/12/2008 10:11:00
Quote Anchor link
ik dnek dat als je even op internet zoekt naar image slideshow je al heel ver komt...

heb je geen zin om te zoeken, dan is dit lekker makkelijk: linkje
 
Dennis Messing

Dennis Messing

09/12/2008 10:24:00
Quote Anchor link
Het gaat er niet om of ik wel of niet op internet wil zoeken, dat is het probleem niet.
Ik heb dit werkende scriptje, wat onderdeel uitmaakt van een ander script.
De imageslideshows welke ik op internet heb gevonden kon ik niet toepassen.
Dit script werkt, ik zou alleen graag willen dat de random functie zou verdwijnen en gewoon de foto's op volgorde weergeven.
 
Tamara

Tamara

09/12/2008 10:26:00
Quote Anchor link
als je gewoon kijkt hoe zo'n scriptje voor een slideshow in elkaar steekt, dan kan je dat gewoon toepassen op jouw scriptje...
 
Arjan Kapteijn

Arjan Kapteijn

09/12/2008 10:35:00
Quote Anchor link
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
$afb = "$afbeelding[$rand]";

Je kan 2 dingen doen, of je zet de laatste afbeelding in een sessie, of je past je javascript aan zodat die iedere keer de volgende afbeelding pakt. Javascript ben ik geen held in, dus dan gebruiken we de eerste oplossing maar.

Je krijgt dan iets als;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if(empty($_SESSION['afbeelding']))
{

 $_SESSION['afbeelding'] = 0;
}
else{
 if($_SESSION['afbeelding'] > (count($afbeelding) -1))
 {

  $_SESSION['afbeelding'] = 0;
 }
}


$afb = $afbeelding[$_SESSION['afbeelding']];
$_SESSION['afbeelding']++;
?>


Ga daar maar eens mee stoeien.
 
Dennis Mertens

Dennis Mertens

09/12/2008 11:21:00
Quote Anchor link
Refreshen met een header is veel mooier en handiger :)

Misschien even kijken naar een leuke jQuery tooltje ofzo?
 
Tamara

Tamara

09/12/2008 11:32:00
Quote Anchor link
hij kan van JQuery ScrollTo heel goed gebruiken... linkje staat hier ergens boven...
 
Dennis Mertens

Dennis Mertens

09/12/2008 11:40:00
Quote Anchor link
De dame schoot al te hulp :)

Demo werkt niet :/
Gewijzigd op 01/01/1970 01:00:00 door Dennis Mertens
 
Tamara

Tamara

09/12/2008 12:25:00
Quote Anchor link
op deze site is een voorbeeldje van de scroll plugin te zien. je moet even wachten voordat er iets gebeurd...

je kan ipv dat ie automatisch scrollt (na zoveel tijd), dat je user input , dus bv een mouse click van een link nodig hebt om naar het volgende plaatje te gaan... hij werkt super goed, ben er een tijd geleden ook mee bezig geweest
 
Dennis Mertens

Dennis Mertens

09/12/2008 13:40:00
Quote Anchor link
Ahh netjes

De 'header' :), mooi ding
 
Dennis Messing

Dennis Messing

10/12/2008 09:16:00
Quote Anchor link
Ik heb het werken, haha. Zo goed als op eigen kracht ( met een tikkie hulp van jullie.
Ik ben benieuwd wat jullie er van vinden.
Graag verbeterpunten aangeven zodat ik hier wederom van kan leren.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
 session_start();

echo'<style type="text/css">
<!--
body {
  background-color: #D3DCE6;
}
-->
</style>'
;

$dir =  $_GET['map'];

 if (empty($_GET['foto'])){


        if (is_dir($dir)) {

           if ($dh = opendir($dir)) {

              while (($file = readdir($dh)) !== false) {

                    if(($file !== ".") && ($file !== "..") && ($file !== "thumbs")&& ($file !== "thumbsgroot"))
                      {
      


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

            }
        }

        closedir($dh);
    }

}



  $aantal = count($afbeeld);

    echo "<center><img src=\"$dir/$afbeeld[0]\" width=\"850\"></br>";
     echo '<a href="javascript:window.close();">Terug naar de website</a></center>';


         ?>
<META http-equiv="Refresh" content="4 URL=randfoto2.php?map=<?="$dir"?>&foto=1">

    <?
    }
    else
    {
          if (is_dir($dir))
          {

             if ($dh = opendir($dir))
                     {

                while (($file = readdir($dh)) !== false)
                              {


                      if(($file !== ".") && ($file !== "..") && ($file !== "thumbs")&& ($file !== "thumbsgroot"))
                                {

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

                                }
                              }

                    closedir($dh);
                    }

                    }


    $aantal = count($afbeeld);
         $foto = ($foto + 1 ) ;
      
                if ($foto == ($aantal -1)) {
            $foto = '0';



                    }

                    echo "<center><img src=\"$dir/$afbeeld[$foto]\" width=\"850\"></br>";
                    echo '<a href="javascript:window.close();">Terug naar de website</a></center>';
              ?>

         <META http-equiv="Refresh" content="4 URL=randfoto2.php?map=<?="$dir"?>&foto=<?="$foto"?>">  <?



      }

?>
Gewijzigd op 01/01/1970 01:00:00 door Dennis Messing
 
Dennis Mertens

Dennis Mertens

10/12/2008 09:47:00
Quote Anchor link
Jammer dat je telkens variabele 'kopieerd'
Paar voorbeelden daarvan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?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).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?="$dir"?>

Kan beter als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$dir;?>


Integers buiten quotes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$foto
= '0';
// Wordt dan
$foto = 0;
?>


Dat waren een aantal punten. Succes :)
Gewijzigd op 01/01/1970 01:00:00 door Dennis Mertens
 
Dennis Messing

Dennis Messing

10/12/2008 09:57:00
Quote Anchor link
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.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$dir
=  $_GET['map']; // line 12
?>


Quote:
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?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.