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

Форум PHP

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

 

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

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

тема: Почему не работает скрипт генерации случайных символов ???
 
 автор: sibmail   (21.07.2007 в 07:19)   письмо автору
 
 

Почему не работает скрипт генерации случайных символов ???

графика включена и другие рисунки выводит

причем на хостинге скрипт пашет, а у меня не хочет выводить рисунок.

   
 
 автор: Valick   (21.07.2007 в 07:52)   письмо автору
 
   для: sibmail   (21.07.2007 в 07:19)
 

Тут два варианиа...
1) Дайте код.
2) Продублируйте вопрос в шоу "Битва экстрасенсов"

   
 
 автор: sibmail   (21.07.2007 в 08:25)   письмо автору
 
   для: Valick   (21.07.2007 в 07:52)
 

скрипт с этого сайта. Автор по аське сказал ХЗ на 99% платных хостингах работает.


<?PHP
/****************************************************************************************************
*****************************************************************************************************
** **
** Скрипт генерации случайных изображений **
** Версия: 1.1 **
** **
** Автор: Афанасьев Артём **
** E-mail:triall2002@mail.ru **
** ICQ:1522817 **
** Дата: 06.07.2006 **
** **
*****************************************************************************************************
****************************************************************************************************/

#####################################################################################################
# Настройки
#####################################################################################################

$C_IMAGE_TYPE = 'PNG'; //Возможные форматы: GIF, JPEG, PNG
$C_WIDTH = 130; //Ширина изображения
$C_HEIGHT = 60; //Высота изображения
$C_NUM_GENSIGN = 4; //Количество символов, которые нужно набрать
$path_fonts = './fonts/'; //Путь к шрифтам

#####################################################################################################
# Принемаем переменные
#####################################################################################################

$EXT = strtoupper($HTTP_GET_VARS['ext']);
if($EXT=='GIF' || $EXT=='JPEG' || $EXT=='PNG') $C_IMAGE_TYPE = $EXT;
if(is_numeric($HTTP_GET_VARS['width']) && $HTTP_GET_VARS['width']>100 && $HTTP_GET_VARS['width']<500) $C_WIDTH = $HTTP_GET_VARS['width'];
if(is_numeric($HTTP_GET_VARS['height']) && $HTTP_GET_VARS['height']>100 && $HTTP_GET_VARS['height']<500) $C_HEIGHT = $HTTP_GET_VARS['height'];
if(is_numeric($HTTP_GET_VARS['qty']) && $HTTP_GET_VARS['qty']>2 && $HTTP_GET_VARS['qty']<10) $C_NUM_GENSIGN = $HTTP_GET_VARS['qty'];

#####################################################################################################
# Ядро
#####################################################################################################

session_start();
session_register('securityCode');

$C_FONT_SIZE = intval($C_HEIGHT/(($C_HEIGHT/$C_WIDTH)*5));
$C_NUM_SIGN = intval(($C_WIDTH*$C_HEIGHT)/150);

$CODE = array();
$LETTERS = array('a','b','c','d','e','f','g','h','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z','2','3','4','5','6','7','8','9');
$FIGURES = array('50','70','90','110','130','150','170','190','210');

//Создаем полотно
$src = imagecreatetruecolor($C_WIDTH,$C_HEIGHT);

//Заливаем фон
$fon = imagecolorallocate($src,255,255,255);
imagefill($src,0,0,$fon);

//Загрузка шрифтов
$FONTS = array();
$dir=opendir($path_fonts);
while($fontName = readdir($dir)){
if($fontName != "." && $fontName != ".."){
if(strtolower(strrchr($fontName,'.'))=='.ttf') $FONTS[] = $path_fonts.$fontName;
}
}
closedir($dir);

//Если есть шрифты
if(sizeof($FONTS)>0){
//Заливаем полотно буковками
for($i=0;$i<$C_NUM_SIGN;$i++){
$h = 1;
$color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100);
$font = $FONTS[rand(0,sizeof($FONTS)-1)];
$letter = $LETTERS[rand(0,sizeof($LETTERS)-1)];
$size = rand($C_FONT_SIZE-2,$C_FONT_SIZE+2);
$angle = rand(0,60);
if($h == rand(1,2)) $angle = rand(360,300);
//Пишем
imagettftext($src,$size,$angle,rand($C_WIDTH*0.1,$C_WIDTH-$C_WIDTH*0.1),rand($C_HEIGHT*0.2,$C_HEIGHT),$color,$font,$letter);
}

//Заливаем основными буковками
for($i=0;$i<$C_NUM_GENSIGN;$i++){
//Ориентир
$h = 1;
//Рисуем
$color = imagecolorallocatealpha($src,$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],rand(10,30));
$font = $FONTS[rand(0,sizeof($FONTS)-1)];
$letter = $LETTERS[rand(0,sizeof($LETTERS)-1)];
$size = rand($C_FONT_SIZE*2.1-1,$C_FONT_SIZE*2.1+1);
$x = (empty($x)) ? $C_WIDTH*0.08 : $x + ($C_WIDTH*0.8)/$C_NUM_GENSIGN+rand(0,$C_WIDTH*0.01);
$y = ($h == rand(1,2)) ? (($C_HEIGHT*1.15*3)/4) + rand(0,$C_HEIGHT*0.02) : (($C_HEIGHT*1.15*3)/4) - rand(0,$C_HEIGHT*0.02);
$angle = rand(5,20);
//Запоминаем
$CODE[] = $letter;
if($h == rand(0,10)) $letter = strtoupper($letter);
if($h == rand(1,2)) $angle = rand(355,340);
//Пишем
imagettftext($src,$size,$angle,$x,$y,$color,$font,$letter);
}

//Если нет шрифтов
}else{
//Заливаем точками
for($x=0;$x<$C_WIDTH;$x++){
for($i=0;$i<($C_HEIGHT*$C_WIDTH)/1000;$i++){
$color = imagecolorallocatealpha($src,$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],rand(10,30));
imagesetpixel($src,rand(0,$C_WIDTH),rand(0,$C_HEIGHT),$color);
}
}
unset($x,$y);
//Заливаем основными буковками
for($i=0;$i<$C_NUM_GENSIGN;$i++){
//Ориентир
$h = 1;
//Рисуем
$color = imagecolorallocatealpha($src,$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],rand(10,30));
$letter = $LETTERS[rand(0,sizeof($LETTERS)-1)];
$x = (empty($x)) ? $C_WIDTH*0.08 : $x + ($C_WIDTH*0.8)/$C_NUM_GENSIGN+rand(0,$C_WIDTH*0.01);
$y = ($h == rand(1,2)) ? (($C_HEIGHT*1)/4) + rand(0,$C_HEIGHT*0.1) : (($C_HEIGHT*1)/4) - rand(0,$C_HEIGHT*0.1);
//Запоминаем
$CODE[] = $letter;
if($h == rand(0,10)) $letter = strtoupper($letter);
//Пишем
imagestring($src,5,$x,$y,$letter,$color);
}
}

//Получаем код
$HTTP_SESSION_VARS['securityCode'] = implode('',$CODE);
$_SESSION['securityCode'] = implode('',$CODE);

//Печать
if($C_IMAGE_TYPE=='PNG'){
header ("Content-type: image/png");
imagepng($src);
}elseif($C_IMAGE_TYPE=='JPEG'){
header ("Content-type: image/jpeg");
imagejpeg($src);
}else{
header ("Content-type: image/gif");
imagegif($src);
}
imagedestroy($src);
?>

   
 
 автор: bronenos   (21.07.2007 в 08:45)   письмо автору
 
   для: sibmail   (21.07.2007 в 08:25)
 

GD установлена?

   
 
 автор: sibmail   (21.07.2007 в 09:06)   письмо автору
 
   для: bronenos   (21.07.2007 в 08:45)
 

рисунки выводит, в частности скрипт рисующий график с этого сайта

графика включена
gd
GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.1.9
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

   
 
 автор: sibmail   (21.07.2007 в 11:24)   письмо автору
 
   для: sibmail   (21.07.2007 в 09:06)
 

кто-нить ответит??

   
 
 автор: testdriver   (21.07.2007 в 12:21)   письмо автору
 
   для: sibmail   (21.07.2007 в 11:24)
 

А ошибка у тебя какая возникает?
Путь к шрифтам правильно задаешь?

$path_fonts = './fonts/'; //Путь к шрифтам

   
 
 автор: sibmail   (21.07.2007 в 13:13)   письмо автору
 
   для: testdriver   (21.07.2007 в 12:21)
 

то что у меня на локальной тачке не пашет работает на хостинге (на серваке unix) и там прописаны те же пути

может какие-то настройки апача или пхп надо изменить??

   
 
 автор: Trianon   (21.07.2007 в 13:28)   письмо автору
 
   для: sibmail   (21.07.2007 в 13:13)
 

>Путь к шрифтам правильно задаешь?
$path_fonts = './fonts/'; //Путь к шрифтам

   
 
 автор: sibmail   (21.07.2007 в 13:52)   письмо автору
 
   для: Trianon   (21.07.2007 в 13:28)
 

и так $path_fonts = 'fonts';
и так $path_fonts = './fonts/';
и уже рассувал эту папку

мож у кого еще не работает ???

   
Rambler's Top100
вверх

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