Wisselende plaatjes in PHP na refresh
7 november 2006 - 13:49   
geplaatst door: Franky2002
Hallo,

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]

De php code heb ik maar even tussen brackets gezet i.p.v. groter/kleiner -dan tags, anders laat ie de code in dit forum niet zien.

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)

Wisselende plaatjes in PHP na refresh
7 november 2006 - 13:56    reactie #1
geplaatst door: Didjee
De url van je plaatjes klopt niet.
Is nu bijvoorbeeld: http://www.logo-shop.nl/random/img/greena.jpg
Moet zijn: http://www.logo-shop.nl/random/images/greena.jpg
'img' moet dus 'images' zijn...
Wisselende plaatjes in PHP na refresh
7 november 2006 - 14:44    reactie #2
geplaatst door: Franky2002
Dat was het dus.Ik heb het mapje maar img genoemd. Is toch sneller. :tounge:
Dank je wel Didjee.
Wisselende plaatjes in PHP na refresh
1 maart 2007 - 14:33    reactie #3
geplaatst door: Franky2002
Nog even weer inhakend. Het begint nu z'n beslag te krijgen en de plaatjes wisselen na elke refresh dat het een lieve lust is.
De site is hier te zien.
Maar nu doet het volgende zich voor:
Uit de plusminus 90 plaatjes waaruit ie kan kiezen plaatst het php script soms meerder tegelijk op de voorpagina.
Hij hoeft er maar 25 te laten zien op ieder moment. Maar wel graag ieder uniek. Niet dubbel dus.
hoe kan je dit voorkomen?

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.

Wisselende plaatjes in PHP na refresh
1 maart 2007 - 14:47    reactie #4
geplaatst door: mvdg
Hoi,
Zonder meteen alle details uit te zoeken:

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.

Mitch Design : websites en interactieve toepassingen : http://www.mitchdesign.nl