This is a discussion on Help - Random images within the alt.comp.lang.php forums, part of the PHP Programming Forums category; Hi, I have a web page which is a simple html table whish contains a picture in one of the ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Hi,
I have a web page which is a simple html table whish contains a picture in one of the cells. I want this to be one of 13 random pictures (1.jpg, 2.jpg....13.jpg) At the moment i have this line in my table.php file: <td colspan="2" rowspan="2" valign="top" bgcolor="#999999"><img src=" <? $random = mt_rand(1, 13); print"images/random/$random.jpg"; ?> " width="231" height="284" border="0" alt=""></td> .....everything works fine if I click refresh, but I want it to work everytime I go to this page. ie. first time on page i get say 4.jpg displayed, click refresh and say 8.jpg is displayed (working) - if i click a link to say the homepage, then click a link from there back to 'table.php' then the same image is displayed. It is as if it is now cached. How do I force it to show a new pic every time? Thanks Tim |
|
|||
|
Use two scripts.
In the first refer to the picture with a link like this <td colspan="2" rowspan="2" valign="top" bgcolor="#999999"> <img src="randompic.php" width="231" height="284" border="0" alt=""> </td> then create a script named randompic.php <?php $dir = "./images/random"; $possible = array(); if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) if (stristr($file,".jpg")!= false) $possible[] = $file; closedir($dh); } } $x = rand(0, count($possible)-1); $file = $possible[$x]; header("Content-Type: image/jpeg"); readfile($dir . $file); ?> this will return a random image without causing the browser to cache it see www.offa.org for this in action Regards Jeff P. "Tim Dixon" <ng@keymt.com> wrote in message news:400e77f2$0$243$fa0fcedb@lovejoy.zen.co.uk... > Hi, > > I have a web page which is a simple html table whish contains a picture in > one of the cells. I want this to be one of 13 random pictures (1.jpg, > 2.jpg....13.jpg) > > At the moment i have this line in my table.php file: > > <td colspan="2" rowspan="2" valign="top" bgcolor="#999999"><img src=" > <? > $random = mt_rand(1, 13); > print"images/random/$random.jpg"; > ?> > " width="231" height="284" border="0" alt=""></td> > > > ....everything works fine if I click refresh, but I want it to work > everytime I go to this page. ie. first time on page i get say 4.jpg > displayed, click refresh and say 8.jpg is displayed (working) - if i click a > link to say the homepage, then click a link from there back to 'table.php' > then the same image is displayed. It is as if it is now cached. > > How do I force it to show a new pic every time? > > > Thanks > > Tim > > |
|
|||
|
On 21-Jan-2004, "Tim Dixon" <ng@keymt.com> wrote: > I have a web page which is a simple html table whish contains a picture in > one of the cells. I want this to be one of 13 random pictures (1.jpg, > 2.jpg....13.jpg) > > At the moment i have this line in my table.php file: > > <td colspan="2" rowspan="2" valign="top" bgcolor="#999999"><img src=" > <? > $random = mt_rand(1, 13); > print"images/random/$random.jpg"; > ?> > " width="231" height="284" border="0" alt=""></td> > > > ....everything works fine if I click refresh, but I want it to work > everytime I go to this page. ie. first time on page i get say 4.jpg > displayed, click refresh and say 8.jpg is displayed (working) - if i click > a > link to say the homepage, then click a link from there back to 'table.php' > then the same image is displayed. It is as if it is now cached. > > How do I force it to show a new pic every time? If you are using PHP prior to version 4.2.0 you need to seed the mt_rand so that it doesn't generate the same sequence each time. Add function make_seed() { list($usec, $sec) = explode(' ', microtime()); return (float) $sec + ((float) $usec * 100000); } mt_srand(make_seed()); before the line that sets $random -- Tom Thackrey www.creative-light.com tom (at) creative (dash) light (dot) com do NOT send email to jamesbutler@willglen.net (it's reserved for spammers) |
![]() |
| Thread Tools | |
| Display Modes | |
|
|