ik wil in een website graag wisselende plaatjes op een pagina hebben. Ze moeten bovendien ieder hun eigen URL hebben, verwijzend naar een externe site. Nu heb ik op het web een PHP script gevonden dat hier aan voldoet.Ik heb hem geïnstalleerd, ge-upload naar een test gedeelte op m'n site.Probleem is nu dat je de jpeg-plaatjes niet ziet (alleen maar een ?), maar wel dat ie wisselt met bijbehorend URL.Je kan dat hier zien.
De plaatjes zitten in een map 'images' en een 'images.ini' file verwijst er naar.
In de index.php pagina staat het volgende:
[html][head]<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"><meta name="generator" content="Adobe GoLive 6"><title>test</title>[/head][?php include('rotator.php'); ?][!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"][body]Reload to see a random image.</p>[?php showImage(); ?][/body][/html]
[html]
[head]<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"><meta name="generator" content="Adobe GoLive 6"><title>test</title>[/head][?php include('rotator.php'); ?][!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"][body]
Reload to see a random image.</p>
[?php showImage(); ?][/body]
[/html]
In de 'rotator.php' file staat het volgende:
<?php<p>/*<p> Author: Dan Benjamin - http://hivelogic.com/<p> Copyright (c) 2004 Automatic, Ltd. All Rights Reserved.<p> THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF <br> ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY <br> IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR <br> PURPOSE OR NONINFRINGEMENT. <p> IN NO EVENT SHALL DAN BENJAMIN, A LIST APART, OR AUTOMATIC, LTD. BE LIABLE<br> FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR<br> LOST PROFITS ARISING OUT OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER<br> ARISING, INCLUDING NEGLIGENCE), EVEN IF DAN BENJAMIN, A LIST APART, OR<br> AUTOMATIC, LTD. IS AWARE OF THE POSSIBILITY OF SUCH DAMAGES.<p>*/<p><p> # file containg your image descriptions<p> $IMG_CONFIG_FILE = 'images.ini';<p><p> # You shouldn't need to change anything below this point<p> function showImage( $ini=null ) {<br> global $IMG_CONFIG_FILE;<br> # if no custom ini file has been specified, use the default<br> $ini_file = $ini ? $ini : $IMG_CONFIG_FILE;<br> # read the config file into an array or die trying<br> $images = @parse_ini_file($ini_file,true);<br> if (! $images) {<br> die('Unable to read ini file.');<br> }<br> # pick a random image from the parsed config file<br> $img = array_rand($images);<br> # get the selected image's css id if one exists<br> $id = $images[$img]['id'] ?<br> sprintf( ' id="%s" ', $images[$img]['id'] ) :<br> '';<br> # get the selected image's css class if one exists<br> $class = $images[$img]['class'] ?<br> sprintf( ' class="%s" ', $images[$img]['class'] ) :<br> '';<br> # get selected image's dimensions<br> $size = @getimagesize( $images[$img]['src'] );<br> # if an url was specified, output the opening A HREF tag<br> if ( $images[$img]['url'] ) {<br> printf(<br> '<a href="%s" title="%s">',<br> $images[$img]['url'],<br> $images[$img]['title']<br> );<br> }<br> # output the IMG tag<br> printf(<br> '<img src="%s" alt="%s" %s %s%s/>',<br> $images[$img]['src'],<br> $images[$img]['alt'],<br> $size[3],<br> $id,<br> $class<br> );<br> # if an url was specified, output the closing A HREF tag<br> if ( $images[$img]['url'] ) {<br> echo('</a>');<br> }<br> }<p><br>?>
Kan iemand zien wat ik fout doe?
(Bewerkt door Franky2002 om 14:24, 1-03-2007)
En nog iets: ik bemerk dat hij uit maar zo'n 50-60 plaatjes kiest, de laatste 30-40 stuks komen nooit aan bod. En uit de code kan ik niks destilleren wat het zou kunnen zijn.
Als je meerdere keren in 1 pagina de functie 'showImage' aanroept, wordt elke keer de ini-file ingeladen met de info over de plaatjes. En dan wordt elke keer er 1 uit gekozen die wordt getoond.
Wat je moet veranderen, is dat 1x de ini-file wordt geladen.Daarna bij elke aanroep van de functie moet er 1 gekozen worden, waarna deze uit de lijst wordt gegooid zodat die bij een volgende aanroep niet meer gekozen kan worden.
Wat betreft het aantal plaatjes: heb je ze allemaal netjes in je ini-file gezet? Want als je plaatjes toevoegt aan de map, dan moet je ze ook in het ini-bestand zetten.