odln018
08-20-2009, 12:43 AM
I utilize bit of code I found on here that allows for rotating banners on my website.
It works just fine under PHP 5.2.9, unfortunately, when I upgraded to 5.3.0, it broke.
I have absolutely zero experience with PHP coding, but since the snippet is pretty small, I was hoping one of the experts could perchance take a look and resolve it for me.
The code is called via my header template in this manner:
<td class="header" align="$stylevar[left]" nowrap="nowrap"><a href="$vboptions[homeurl]/?$session[sessionurl]"><img src="images/armada/header1.gif" alt="" border="0" /><img src="images/armada/header/header.php?" alt="" border="0" /></a>
HEADER.PHP contains:
<?php
// DEFINE ACTUAL PATH TO IMAGE DATA FOLDER
$folder = ".";
if (substr($folder,-1) != '/') { $folder = $folder.'/'; }
// DEFINE VALID EXTENSIONS AND CONTENT TYPES
$extList = array();
$extList['png'] = 'image/png';
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpg';
// RETRIEVE VARIABLE DATA FROM THE QUERY
if (isset($_GET['fid'])) { $fid = $_GET['fid']; }
if (isset($_GET['pid'])) { $pid = $_GET['pid']; }
// VALIDATE CURRENT IMAGE DATA, CHECK FID, CHECK PID
if (!file_exists($img) && $fid > 0) { $img = $folder . $fid . ".png"; }
if (!file_exists($img) && $pid > 0) { $img = $folder . $pid . ".png"; }
// VALIDATE CURRENT IMAGE DATA, RANDOMIZE
if (!file_exists($img)) {
$fileList = array();
$handle = opendir($folder);
while (false != ($file = readdir($handle))) {
$fileInfo = pathinfo($file);
if (isset($extList[strtolower($fileInfo['extension'])])) {
$fileList[] = $file;
}
}
closedir($handle);
if (count($fileList) > 0) {
$imageNumber = time() % count($fileList);
$img = $folder.$fileList[$imageNumber];
}
}
// POST CURRENT IMAGE DATA TO QUERY FETCH
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[$imageInfo['extension']];
header ($contentType);
readfile($img);
?>
I truly hope someone out there can point out where the problem lies.
Thank you very much for your time.
It works just fine under PHP 5.2.9, unfortunately, when I upgraded to 5.3.0, it broke.
I have absolutely zero experience with PHP coding, but since the snippet is pretty small, I was hoping one of the experts could perchance take a look and resolve it for me.
The code is called via my header template in this manner:
<td class="header" align="$stylevar[left]" nowrap="nowrap"><a href="$vboptions[homeurl]/?$session[sessionurl]"><img src="images/armada/header1.gif" alt="" border="0" /><img src="images/armada/header/header.php?" alt="" border="0" /></a>
HEADER.PHP contains:
<?php
// DEFINE ACTUAL PATH TO IMAGE DATA FOLDER
$folder = ".";
if (substr($folder,-1) != '/') { $folder = $folder.'/'; }
// DEFINE VALID EXTENSIONS AND CONTENT TYPES
$extList = array();
$extList['png'] = 'image/png';
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpg';
// RETRIEVE VARIABLE DATA FROM THE QUERY
if (isset($_GET['fid'])) { $fid = $_GET['fid']; }
if (isset($_GET['pid'])) { $pid = $_GET['pid']; }
// VALIDATE CURRENT IMAGE DATA, CHECK FID, CHECK PID
if (!file_exists($img) && $fid > 0) { $img = $folder . $fid . ".png"; }
if (!file_exists($img) && $pid > 0) { $img = $folder . $pid . ".png"; }
// VALIDATE CURRENT IMAGE DATA, RANDOMIZE
if (!file_exists($img)) {
$fileList = array();
$handle = opendir($folder);
while (false != ($file = readdir($handle))) {
$fileInfo = pathinfo($file);
if (isset($extList[strtolower($fileInfo['extension'])])) {
$fileList[] = $file;
}
}
closedir($handle);
if (count($fileList) > 0) {
$imageNumber = time() % count($fileList);
$img = $folder.$fileList[$imageNumber];
}
}
// POST CURRENT IMAGE DATA TO QUERY FETCH
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[$imageInfo['extension']];
header ($contentType);
readfile($img);
?>
I truly hope someone out there can point out where the problem lies.
Thank you very much for your time.