Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Меняющаяся картинка в шапке сайта
 
 автор: VikaRI   (02.10.2009 в 11:04)   письмо автору
 
 

Доброго времени суток всем!
Нашла на просторах сети следующий скрипт который позволяет при каждой загрузке сайта в шапке автоматом менять картинку.
Поставила его - все браузеры при переходе на другую страницу меняют картинку, а опера - нет. В ней необходимо страницу обновлять. Спрашивала у админа сайта с которого взяла скрипт, но он не знает.
Подскажите, пожалуйста, что необходимо сделать, чтобы картинка и в опере менялась просто ри переходе на другую страницу.

<?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( 
$extListstrtolower$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( 
$extListstrtolower$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 (100100)
or die (
"Cannot initialize new GD image stream");
$background_color imagecolorallocate ($im255255255);
$text_color imagecolorallocate ($im0,0,0);
imagestring ($im255"IMAGE ERROR"$text_color);
imagepng ($im);
imagedestroy($im);
}
}
?>

  Ответить  
 
 автор: ride   (02.10.2009 в 11:09)   письмо автору
 
   для: VikaRI   (02.10.2009 в 11:04)
 

скорее всего дело в кешировании.
как вы задаете путь к изображению?
если что-то типа <img src="img.php?img=path" />
то попробуйте добавить доп параметр, что-то типа<img src="img.php?img=path&s=<?php echo md5(microtime())?>" />

  Ответить  
 
 автор: VikaRI   (02.10.2009 в 12:26)   письмо автору
 
   для: ride   (02.10.2009 в 11:09)
 

путь задается вот таким образом в стилях:
#header {
background: url(images/header/random.php) no-repeat;
width: 800px;
height: 150px;

}
А на самой странице выводится вот так:
<div id="header"></div>

  Ответить  
 
 автор: cheops   (02.10.2009 в 12:30)   письмо автору
 
   для: VikaRI   (02.10.2009 в 12:26)
 

Хм... тогда элегантно (без преназначения через .htaccess файлам .css PHP-обработчика) вряд ли что-то можно сделать. Да и с обработчиком дело может не выгореть - так как CSS-файл обычно очень жестко кэшируются.

  Ответить  
 
 автор: cheops   (02.10.2009 в 12:32)   письмо автору
 
   для: VikaRI   (02.10.2009 в 12:26)
 

Можно отказаться от запси в CSS-файле и формировать стили в тэге style - там можно будет попробовать передать GET-параметр, если CSS это переварит. Однако, высока вероятность, что такой URL CSS не оценит.

  Ответить  
 
 автор: VikaRI   (02.10.2009 в 13:11)   письмо автору
 
   для: cheops   (02.10.2009 в 12:32)
 

Пожалуйста, напишите как это сделать.

  Ответить  
 
 автор: cheops   (02.10.2009 в 13:14)   письмо автору
 
   для: VikaRI   (02.10.2009 в 13:11)
 

Имеется в виду что-то в этом духе
<?php
  
echo "<div id='header' 
style='background: url(images/header/random.php?p="
.rand().") no-repeat; width: 800px; height: 150px;'></div>";
?>

  Ответить  
 
 автор: VikaRI   (02.10.2009 в 13:52)   письмо автору
 
   для: cheops   (02.10.2009 в 13:14)
 

Спасибо большое! все получилось! Здорово! Здорово!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования