Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Проблема с картинками (https://forum.antichat.xyz/showthread.php?t=71010)

brasco2k 21.05.2008 12:47

Проблема с картинками
 
Cитуация такая:
Есть код(генерирует случайные картинки):

PHP код:

<?php
header 
("Content-type: image/gif");
header("Cache-Control: no-cache, must-revalidate");

$img imagecreatetruecolor(800600);
$zzz=imagecolorallocate($imgrand(0,255), rand(0,255), rand(0,255));
imagefilledrectangle($img,0,0,800,600,$zzz);

for(
$i=0;$i<rand(5,40);$i++){
    
$inkline imagecolorallocate($imgrand(0,255), rand(0,255), rand(0,255));
    
imageline($img,rand(20,780),rand(25,580), rand(20,780),rand(25,580),$inkline);
    
        for(
$n=0;$n<rand(100,250);$n++) {
            
imagesetpixel($img,rand(0,800),rand(0,600),$inkline);            
        }
}

imagegif($img);
imagedestroy($img);
?>

Вроде бы все хорошо, но через некоторое время получаются одинаковые картинки.

Собсно вопрос:
В чем проблема?

p.s Я догадываюсь что проблема в кэшировании сервером. Если да то как отключить?

groundhog 21.05.2008 13:12

Попробуй такие хидеры, рандомизируй имя запрашиваемого файла...

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

brasco2k 21.05.2008 13:19

Спасибо, заголовок no-store, Pragma: no-cache помогли.

Тему можно закрыть

d_x 21.05.2008 13:27

Ещё вместо rand() намного лучше использовать функцию mt_rand().

brasco2k 21.05.2008 13:30

Цитата:

Сообщение от d_x
Ещё вместо rand() намного лучше использовать функцию mt_rand().


Действительно! Повторы все убрались!

PHP код:

for($i=0;$i<mt_rand(mt_rand(20,40),mt_rand(40,100));$i++){
    
$line=imagecolorallocate($immt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
    
imageline($im,mt_rand(1,800),mt_rand(1,600),mt_rand(1,800),mt_rand(1,600),$line);
    for(
$p=0;$p<mt_rand(mt_rand(200,350),mt_rand(350,600));$p++){    
    
$pix=imagecolorallocate($immt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
    
imagesetpixel($im,mt_rand(1,800),mt_rand(1,600),$pix);
    }




Время: 20:07