Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

21.05.2008, 12:47
|
|
Постоянный
Регистрация: 23.11.2007
Сообщений: 342
Провел на форуме: 1215706
Репутация:
310
|
|
Проблема с картинками
Cитуация такая:
Есть код(генерирует случайные картинки):
PHP код:
<?php
header ("Content-type: image/gif");
header("Cache-Control: no-cache, must-revalidate");
$img = imagecreatetruecolor(800, 600);
$zzz=imagecolorallocate($img, rand(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($img, rand(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 Я догадываюсь что проблема в кэшировании сервером. Если да то как отключить?
|
|
|

21.05.2008, 13:12
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Попробуй такие хидеры, рандомизируй имя запрашиваемого файла...
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
|
|
|

21.05.2008, 13:19
|
|
Постоянный
Регистрация: 23.11.2007
Сообщений: 342
Провел на форуме: 1215706
Репутация:
310
|
|
Спасибо, заголовок no-store, Pragma: no-cache помогли.
Тему можно закрыть
|
|
|

21.05.2008, 13:27
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме: 4137635
Репутация:
2407
|
|
Ещё вместо rand() намного лучше использовать функцию mt_rand().
|
|
|

21.05.2008, 13:30
|
|
Постоянный
Регистрация: 23.11.2007
Сообщений: 342
Провел на форуме: 1215706
Репутация:
310
|
|
Сообщение от d_x
Ещё вместо rand() намного лучше использовать функцию mt_rand().
Действительно! Повторы все убрались!
PHP код:
for($i=0;$i<mt_rand(mt_rand(20,40),mt_rand(40,100));$i++){
$line=imagecolorallocate($im, mt_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($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
imagesetpixel($im,mt_rand(1,800),mt_rand(1,600),$pix);
}
}
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|