Проблема. Библиотека GD на h2m
1.
Владимир 20.08.2010 / 12:49
Ребята, кто знает, что с графической библиотекой GD на h2m? Работает ли она? Я разрабатываю скрип WAP-ENGINE. И допустим в загрузках у меня для вывода скриншота используется эта библиотека, и она не работает. Может кто что знает по этому поводу?
Либо у меня руки кривые.
2.
Владимир 20.08.2010 / 12:57
Показ ошибок включен. При этом никаких ошибок h2m не выдает
Кто из кодеров имеет акк на h2m и может проверить? Блин пол дня уже мучаюсь.
3.
Владимир 20.08.2010 / 13:06
Да всё гуд. Давно тестирую скрипт. И другие тестят. Говорят везде всё нормально пашет. А вот там нет. Но говорят что в DCMS там всё пашет на хомяке. Странно вообще.
4.
Андрюха 20.08.2010 / 13:08
Тебе бы полюбому выдало ошибку если бы гд небыло или версия была бы не подходящая. Ищи в коде ошибку
5.
Владимир 20.08.2010 / 13:10
Ну странно. Везде же пашет

может реально чтото в коде, я не отрицаю. Кто сможет глянуть, у кого есть время?
6.
Neformat 20.08.2010 / 13:29
gd_info(); или phpinfo(); придумали как раз для получения информации о установленных расширениях
7.
Андрюха 20.08.2010 / 13:33
Ну давай в асю код-гляну. 5876336
Еще посоветую сделать что-то типо этого
$file = 'file.gif';
$img_size = getimagesize($file) or die('Ошибка');
Понаставь везде после функций для работы с ГД ор дие
8.
Neformat 20.08.2010 / 13:53
Еще возможно если изображение большое, лимит оперативки превышается
9.
Владимир 20.08.2010 / 13:59
То на котором провожу тесты - очень даже маленькое.
10.
Владимир 20.08.2010 / 15:38
Уффф. Нашел причину. Там были пару переменных, которые в некоторых случаях были не определены. Как бы и не страшно. Но хомяк выдавал нотисы. Вот в этом и была причина.
Хотя нотисы я заметил только тогда, когда поубирал все заголовки headers.

Всё. Работает

Кстати, хомяк картинку не кэширует
11.
ктулху 20.08.2010 / 16:02
13, а с чего ты взял что хомяк должен картинку кэшировать? это ты, как кодер, должен кэшировать
12.
Владимир 20.08.2010 / 16:09
Ну мне писалы что он кэширует её. И с этим проблемы случались. Вот я и ответил.
13.
Azzido 20.08.2010 / 17:26
я писал что кэширует, можете сами протестировать вот этот код
<?php
session_start();
if(empty($_SESSION['captcha'])){
exit();
}
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Pragma: no-cache');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
$image=imagecreate(46,18);
imagefill($image,0,0,imagecolorallocate($image,255,255,255));
$code=(string)$_SESSION['captcha'];
imagestring($image,5,mt_rand(4,5),mt_rand(0,3),$code[0],imagecolorallocate($image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200)));
imagestring($image,5,mt_rand(14,15),mt_rand(0,3),$code[1],imagecolorallocate($image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200)));
imagestring($image,5,mt_rand(24,25),mt_rand(0,3),$code[2],imagecolorallocate($image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200)));
imagestring($image,5,mt_rand(34,35),mt_rand(0,3),$code[3],imagecolorallocate($image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200)));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
imageline($image,mt_rand(0,46),mt_rand(0,18),mt_rand(0,46),mt_rand(0,18),imagecolorallocate($image,200,200,200));
header('Content-Type: image/gif');
imagegif($image);
imagedestroy($image);
?>
на h2m при неправильном вводе проверочного числа, и обновлении страницы, изображение не меняется, ну или по крайней мере не менялось, не смотря на то, что $_SESSION['captcha'] совершенно другое значение было, этот же самый код на другом хостинге, конкретно на джахост, работает без проблем
14.
Андрюха 20.08.2010 / 17:36
И в связи с чем там такое?
15.
ктулху 20.08.2010 / 18:48
Решение же есть... передавайте к каптче в GET рандомную переменную и всё
15, это не совсем хомяк кэширует... разве что nginx может кэшировать, но я почему-то более чем уверен что дело в браузере. т.к. мало кто умеет правильно убирать кэширование (а это реально так, у большинства какое-то череззаднепроходное решение которое они суют везде подряд)
16.
Azzido 20.08.2010 / 18:58
18.
ShiftBHT_есть_чо7, в GET передавал, вариации с header, но увы ничего
17.
ктулху 21.08.2010 / 04:08
19, не может кэшироваться элемент при обращении по другому адресу (путём добавления рандомной переменной). Ну просто не поверю... Можно конечно сделать чтоб кэшировалось на уровне nginx, но вменяемый админ не будет игнорировать ключи кэширования (х
рен с ним куки, но не строку запроса же)
URL:
https://visavi.net/topics/12788