PDA

View Full Version : php with rotating images help?



superficialgirl
02 Oct 2010, 12:41 AM
Can any of you coders out there help me with my little php random image rotator problem?
Kay so, I'm trying to design a website which would have a "randomizer" button so that when the user clicked it, photos from and archive-type-thing would come up upon each click, in random order. From everything I've heard, the easiest way to do this is to put all my images into a php file and then link the php file to the "random photo" button on my html page. (can you tell I'm not at all aware of what php is?)
I've tried several free codes, and each boast that they are insanely easy, but all I get it the little broken picture image, and nothing clickable at all. Please help? I'm not even sure what I'm doing wrong, but here my code:

<?php

$folder = '.';

$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';


$img = null;

if (substr($folder,-1) != '/') {
$folder = $folder.'/';
}

if (isset($_GET['img'])) {
$imageInfo = pathinfo($_GET['img']);
if (
isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
file_exists( $folder.$imageInfo['basename'] )
) {
$img = $folder.$imageInfo['basename'];
}
} else {
$fileList = array();
$handle = opendir($folder);
while ( false !== ( $file = readdir($handle) ) ) {
$file_info = pathinfo($file);
if (
isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
$fileList[] = $file;
}
}
closedir($handle);

if (count($fileList) > 0) {
$imageNumber = time() % count($fileList);
$img = $folder.$fileList[$imageNumber];
}
}

if ($img!=null) {
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
header ($contentType);
readfile($img);
} else {
if ( function_exists('imagecreate') ) {
header ("Content-type: image/png");
$im = @imagecreate (100, 100)
or die ("Cannot initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 0,0,0);
imagestring ($im, 2, 5, 5, "IMAGE ERROR", $text_color);
imagepng ($im);
imagedestroy($im);
}
}

?>



-----my images are all in the same folder as the php file. The thing that's supposedly linking the php to my html is this,:

<p><img src="images/random/rotate2.php" alt="rotating image"/></p>

ANY help would be so appreciated, thanks:)