Ayola.net
Новости: В связи с обилием спама, постинг на форуме временно закрыт.

Для связи с поддержкой используйте тикеты в панели управления.
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь. Август 17, 2017, 18:35:50


Войти


Страниц: [1]
  Печать  
Автор Тема: PHP не "рисует" цыфры  (Прочитано 6008 раз)
0 Пользователей и 1 Гость смотрят эту тему.
positiveman
Новичёк
*

Карма: 0
Сообщений: 20


Просмотр профиля
« : Сентябрь 13, 2008, 21:09:22 »

Привет всем! Такая проблема: на моём сайте(сайт который я сделал для школы) есть гостевая книга, комментарии, в которых стоит защитный код от роботов. Типо "введите код с картинки". Дома на локальном всё работает ок! Но сдесь не отображеются цыфры...Грустный ПХП рисует линии, а цифр, которые и надо вводить нету...Посмотрите сами:

http://www.lesschool.zx6.ru/view_guest.php

файлы шрифтов присутствуют на сервере. В чём может быть проблема? Если нужен код - я могу написать.
PEOPLE!!! HELP ME PLEASE!!!

 Непонимающий Плачущий Злой
Записан
atimur
Просветлённый
****

Карма: 59
Сообщений: 990


Живу в SanCity


Просмотр профиля WWW
« Ответ #1 : Сентябрь 13, 2008, 21:45:58 »

Нужно в скрипте указывать полный путь для шрифтов.
Записан

- Правда, она всегда глаза режет...
- Капча - Идите лесом...
positiveman
Новичёк
*

Карма: 0
Сообщений: 20


Просмотр профиля
« Ответ #2 : Сентябрь 15, 2008, 13:56:36 »

Указал...ничего не изменилось. Шрифты пробовал мениять, не помогает. Но бэкграунды на фон картинки с кодом он ставит нормально, даже без полного пути.
Записан
atimur
Просветлённый
****

Карма: 59
Сообщений: 990


Живу в SanCity


Просмотр профиля WWW
« Ответ #3 : Сентябрь 15, 2008, 19:17:58 »

Покажите содержимое файла http://www.lesschool.zx6.ru/code/my_codegen.php
Записан

- Правда, она всегда глаза режет...
- Капча - Идите лесом...
ГлюкМен
Вникающий
***

Карма: -10
Сообщений: 122


Просмотр профиля WWW
« Ответ #4 : Сентябрь 15, 2008, 19:28:19 »

Код:
//Генерируем циферки)
$num = rand('000000','999999');
//Создаем новое изображение
$img = imagecreate('60', '25');

//Цвета фона, и текста (RGB)
$back = imagecolorallocate($img, 0, 0, 0);
$black = imagecolorallocate($img, 255, 255, 255);

//Рисуем
imagestring($img, 5, 5, 4, $number, $black);

//Выводим изображение
imagepng($img);

Записан

Тольятти - этаж АвТоваЗ ПриОра ГоРдОсТь ПаЗиТиФф
positiveman
Новичёк
*

Карма: 0
Сообщений: 20


Просмотр профиля
« Ответ #5 : Сентябрь 16, 2008, 22:23:23 »

Покажите содержимое файла http://www.lesschool.zx6.ru/code/my_codegen.php

Вот код, только я его, на всякий случай, естественно изменил, малоа ли. Но смысл остался.

<?php

define("code_dir", "my_codegen/");


function generate_code()
{
    $week_day = date("w");             
    $day = date("d");                   
    $hours = date("H");                 
    $minuts = substr(date("H"), 0 , 1);
    $mouns = date("m");                 
    $year_day = date("z");             

    $str = $week_day . $day . $hours . $minuts . $mouns . $year_day;

    $array_mix = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
    srand ((float)microtime()*1000000000);
    shuffle ($array_mix);
    return implode("", $array_mix);
}

function img_code()
{

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");                   
header("Last-Modified: " . gmdate("D, d M Y H:i:s", 10000) . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");         
header("Cache-Control: post-check=0, pre-check=0", false);           
header("Pragma: no-cache");                                           
header("Content-Type:image/png");

$linenum = 1;
$img_arr = array(
                 "codegen.png",
                 "codegen0.png"
                );

$font_arr = array();
$font_arr[0]["fname"] = "verdana.ttf"; /* здесь пробовал вписывать полный путь - не помогает Грустный */
$font_arr[0]["size"] = 18;
$font_arr[1]["fname"] = "times.ttf"; /* здесь пробовал вписывать полный путь - не помогает Грустный */
$font_arr[1]["size"] = 18;

$n = rand(0,sizeof($font_arr)-1);
$img_fn = $img_arr[rand(0, sizeof($img_arr)-1)];

$im = imagecreatefrompng (code_dir . $img_fn);

for ($i=0; $i<$linenum; $i++)
{
    $color = imagecolorallocate($im, rand(0, 255), rand(0, 150), rand(0, 255));
    imageline($im, rand(0, 20), rand(1, 50), rand(150, 180), rand(1, 50), $color);
}

$color = imagecolorallocate($im, rand(0, 200), 0, rand(0, 200));
imagettftext ($im, $font_arr[$n]["size"], rand(-4, 4), rand(10, 45), rand(20, 35), $color, code_dir.$font_arr[$n]["fname"], generate_code());

for ($i=0; $i<$linenum; $i++)
{
    $color = imagecolorallocate($im, rand(0, 255), rand(0, 200), rand(0, 255));
    imageline($im, rand(0, 20), rand(1, 50), rand(150, 180), rand(1, 50), $color);
}

ImagePNG ($im);
ImageDestroy ($im);
}

img_code();
?>
Записан
atimur
Просветлённый
****

Карма: 59
Сообщений: 990


Живу в SanCity


Просмотр профиля WWW
« Ответ #6 : Сентябрь 16, 2008, 23:03:09 »

Рабочий код ->
Код:
<?php
//  error_reporting(E_ALL);
  
$DOCUMENT_ROOT $_SERVER["DOCUMENT_ROOT"];

define("code_dir"$DOCUMENT_ROOT."/my_codegen/");


function 
generate_code()
{
    
$week_day date("w");             
    
$day date("d");                   
    
$hours date("H");                 
    
$minuts substr(date("H"), 1);
    
$mouns date("m");                 
    
$year_day date("z");             

    
$str $week_day $day $hours $minuts $mouns $year_day;

    
$array_mix preg_split('//'$str, -1PREG_SPLIT_NO_EMPTY);
    
srand ((float)microtime()*1000000000);
    
shuffle ($array_mix);
    return 
implode(""$array_mix);
}

function 
img_code()
{

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");                   
header("Last-Modified: " gmdate("D, d M Y H:i:s"10000) . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");         
header("Cache-Control: post-check=0, pre-check=0"false);           
header("Pragma: no-cache");                                           
header("Content-Type:image/png");

$linenum 1;
$img_arr = array(
                 
"codegen.png",
                 
"codegen0.png"
                
);

$font_arr = array();
$font_arr[0]["fname"] = "verdana.ttf"/* здесь пробовал вписывать полный путь - не помогает Грустный */
$font_arr[0]["size"] = 18;
$font_arr[1]["fname"] = "times.ttf"/* здесь пробовал вписывать полный путь - не помогает Грустный */
$font_arr[1]["size"] = 18;

$n rand(0,sizeof($font_arr)-1);
$img_fn $img_arr[rand(0sizeof($img_arr)-1)];

$im imagecreatefrompng (code_dir $img_fn);

for (
$i=0$i<$linenum$i++)
{
    
$color imagecolorallocate($imrand(0255), rand(0150), rand(0255));
    
imageline($imrand(020), rand(150), rand(150180), rand(150), $color);
}

$color imagecolorallocate($imrand(0200), 0rand(0200));
imagettftext ($im$font_arr[$n]["size"], rand(-44), rand(1045), rand(2035), $colorcode_dir.$font_arr[$n]["fname"], generate_code());

for (
$i=0$i<$linenum$i++)
{
    
$color imagecolorallocate($imrand(0255), rand(0200), rand(0255));
    
imageline($imrand(020), rand(150), rand(150180), rand(150), $color);
}

ImagePNG ($im);
ImageDestroy ($im);
}

img_code();
?>

Записан

- Правда, она всегда глаза режет...
- Капча - Идите лесом...
positiveman
Новичёк
*

Карма: 0
Сообщений: 20


Просмотр профиля
« Ответ #7 : Сентябрь 18, 2008, 14:05:41 »

Рабочий код ->

Всё скопировал, не минял ни одного символа. Картинка вообще перестала отображаться. Грустный
Нифига не пойму...............
Записан
kolian
Гость
« Ответ #8 : Сентябрь 18, 2008, 14:45:35 »

Всё скопировал, не минял ни одного символа. Картинка вообще перестала отображаться. Грустный
Нифига не пойму...............
Таки к тому коду что привёл atimur прропиите полные пути до шррифтов. мб поможет.
Записан
atimur
Просветлённый
****

Карма: 59
Сообщений: 990


Живу в SanCity


Просмотр профиля WWW
« Ответ #9 : Сентябрь 18, 2008, 16:06:51 »

Я этот код тестировал из корня сайта, а у вас он находится в папке /code/ думаю что нужно изменить
Код:
define("code_dir", $DOCUMENT_ROOT."/my_codegen/");
на
Код:
define("code_dir", $DOCUMENT_ROOT."/code/my_codegen/");
т.е. подправить пути рабочие как правильно заметил kolian.)))
Записан

- Правда, она всегда глаза режет...
- Капча - Идите лесом...
positiveman
Новичёк
*

Карма: 0
Сообщений: 20


Просмотр профиля
« Ответ #10 : Сентябрь 19, 2008, 12:10:21 »

Я этот код тестировал из корня сайта, а у вас он находится в папке /code/ думаю что нужно изменить
Код:
define("code_dir", $DOCUMENT_ROOT."/my_codegen/");
на
Код:
define("code_dir", $DOCUMENT_ROOT."/code/my_codegen/");
т.е. подправить пути рабочие как правильно заметил kolian.)))

Точнооо! Во затупил, бывает! Заработало! Ура!!! Ну спасиб всем, кто ответил на мою тему!!! Огромное!
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.13 | SMF © 2006, Simple Machines LLC

2003-2008 © ООО "Инфотур" - Бесплатный хостинг Ayola.net
Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Страница сгенерирована за 0.08 секунд. Запросов: 17.