Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Капча не отображается на хостинге, (а на локальном компе работает)
vlad-zh  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 28
Пользователь №: 43003
На форуме: 1 год, 1 день
Карма:




Здравствуйте товарищи. я пытаюсь написать свой первый сайтик. На своём компе я закончил и вроде как работает. У меня установлена сборка Денвер. Сейчас я зарегистрировался на бесплатном хостинге и перекинул туда все файлики. Ожидал, что всё должно было заработать. Но на странице регистрации в гостевой книге картинка с капчей почему-то не отображается. Сам скрипт капчи - это очень сильно упрощённая версия капчи, которую я нагуглил. Приведу код mycaptcha.php:
<?  
session_start(); // чтобы использовать сессионную переменную
$width = 276; // ширина капчи
$height = 150; // высота капчи
$im = imagecreatetruecolor($width, $height); // делаем прямоугольник
$bgcolor = imagecolorallocate($im, 255, 193, 193); // цвет фона
imagefilledrectangle($im, 0, 0, $width, $height, $bgcolor); // заливаем цветом
$letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; // символы, из которых формируем капчу
$caplen = 6; // количество символов в капче
$captcha = ''; // инициализируем переменную капчи
$fontfile = "fonts/JOKERMAN.ttf"; // используем данный шрифт

// Далее организовывается цикл с количеством итераций равным длине капчи:

for($i = 0; $i < $caplen; $i++)
{
$captcha = $captcha.$letters[ rand(0, strlen($letters)-1) ]; // добавляем в капчу случайный символ
$x = ( ($width - 20) / $caplen ) * $i + 10; // положение символа по оси х
$y = $height - ( ($height - $fontsize) / 2 ); // положение символа по оси y

// Далее добавляем немного "случайности" в координаты символа:

$x = rand($x-5, $x+5);
$y = rand($y-10, $y+10);

$angle = rand(-40, 40); // случайным образом генерируем угол наклона для текущего символа
$fontsize = rand(20, 40); // размер текущего символа
$textcolor = imagecolorallocate($im, rand(0,100), rand(0,100), rand(0,100)); // случайный цвет для символа

// Рисуем символ со всеми выше полученными характеристиками на изображении:

imagefttext($im, $fontsize, $angle, $x, $y, $textcolor, $fontfile, $captcha[$i]);
}
// Когда цикл отработает, в переменной captcha будет содержаться текстовое значение капчи,
// а изображение im будет представлять из себя отрисованную капчу


$_SESSION['phrase'] = $captcha; // сохраняем значение капчи в сессионной переменной
header("Content-type: image/png"); // указываем, что контент представляет из себя не текст, а изображение
imagepng($im); // выводим сформированное изображение капча на экран
imagedestroy($im); // освобождаем память, выведенную под изображение
?>

Файлик регистрации:
<?php  	include("header.php");  ?>  

<div
id="content">
<br />

ГОСТЕВАЯ КНИГА

<div id="guest_forma">
<form
action="sign_handler.php" method="post" enctype="multipart/form-data">
<p>
Имя <br /> <input name="fio" value="<?=$_COOKIE["fio"]?>" type="text" /> </p>
<p>
Логин <br /> <input name="login" value="<?=$_COOKIE["login"]?>" type="text" /> </p>
<p>
Пароль <br /> <input name="pass" type="password" /> </p>
<p>
Почта <br /> <input name="email" value="<?=$_COOKIE["email"]?>" type="text" /> </p>
<p>
Фото <br /> <input id="foto" name="pic" type="file" /> </p>
<p>
Введите текст с картинки <br /> <input name="phrase" /> </p>
<div
id="captcha"> <img src="mycaptcha.php"> </div>
<br />
<input
id="submit_button" type="submit" value="Зарегистрироваться" />
</form>
</div>

<div
id="guest_message">
<?php

echo $_SESSION['mess'];
$_SESSION['mess']="";
?>
</div>

</div>

<?php
include("bottom.php"); ?>

Подскажите пожалуйста, в чём тут может быть проблема? Может надо какие-то дополнительные настройки произвести на хостинге?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
vlad-zh  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 28
Пользователь №: 43003
На форуме: 1 год, 1 день
Карма:




скриншот с хостинга:

Это сообщение отредактировал vlad-zh - 27.05.2016 - 18:30

Присоединённое изображение
Присоединённое изображение
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VeRTak  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местная прописка
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 845
Пользователь №: 41530
На форуме: 1 год, 10 месяцев, 28 дней
Карма: 11






--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 940
Пользователь №: 37872
На форуме: 3 года, 10 месяцев, 3 дня
Карма: 34




Возможны 2 варианта - либо путь до php скрипта генерирующего картинку - не правильный, либо не правильный путь до файла со шрифтом fonts/JOKERMAN.ttf Также может быть что на хостинге отключена поддержка GD -php но это бывает редко!
При прямой ссылке в адресной строке на файл php должна появляться капча!
Можешь попробовать вот этот код.

<?php
session_start();
header("Content-type: image/gif");
$code = rand(100, 999);///Случайное число
$color1 = rand (10, 200);
$color2 = rand (10, 200);
$color3 = rand (10, 200);

$_SESSION['code'] = $code;

$rgb=0xffffff;//цвет заливки
$txt_box=imagettfbbox(18,0,"shtift.ttf",$code);
if($txt_box[0]<0){$txt_box[0]=$txt_box[0]*(-1);}
if($txt_box[1]<0){$txt_box[1]=$txt_box[1]*(-1);}
if($txt_box[2]<0){$txt_box[2]=$txt_box[2]*(-1);}
if($txt_box[3]<0){$txt_box[3]=$txt_box[3]*(-1);}
if($txt_box[4]<0){$txt_box[4]=$txt_box[4]*(-1);}
if($txt_box[5]<0){$txt_box[5]=$txt_box[5]*(-1);}
if($txt_box[6]<0){$txt_box[6]=$txt_box[6]*(-1);}
if($txt_box[7]<0){$txt_box[7]=$txt_box[7]*(-1);}
$box_width=($txt_box[0]+$txt_box[2]+$txt_box[4]+$txt_box[6])/2;
$box_height=($txt_box[1]+$txt_box[3]+$txt_box[5]+$txt_box[7])/2;
$img = imagecreatetruecolor($box_width+1,$box_height+1);//вспомагательное изображение
imagefill($img, 0, 0, $rgb);//заливаем его ...
imagettftext($img,18,0,1,$box_height-2,imageColorAllocate($img,$color1,$color2,$color3),"shtift.ttf",$code);
imagegif($img);//готово к употреблению
//убираем после себя

imagedestroy($img);
?>


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 940
Пользователь №: 37872
На форуме: 3 года, 10 месяцев, 3 дня
Карма: 34




Цитата (Wind @ 27.05.2016 - 18:37)
vlad-zh


http://php.net/manual/ru/image.installation.php

Я так понял у него именно на хостинге не работает!


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8925
Пользователь №: 26630
На форуме: 6 лет, 2 месяца, 27 дней
Карма: 603




vlad-zh
открой mycaptcha.php в отдельной вкладке, увидишь что за ошибки. Может быть short tag на хостинге выключен или ещё что.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
vlad-zh  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 28
Пользователь №: 43003
На форуме: 1 год, 1 день
Карма:




Цитата (arbuzmaster @ 27.05.2016 - 18:47)
Возможны 2 варианта - либо путь до php скрипта генерирующего картинку - не правильный, либо не правильный путь до файла со шрифтом fonts/JOKERMAN.ttf Также может быть что на хостинге отключена поддержка GD -php но это бывает редко!

спасибо за ответ! ))

а как включить на хостинге GD ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8925
Пользователь №: 26630
На форуме: 6 лет, 2 месяца, 27 дней
Карма: 603




Цитата (vlad-zh @ 27.05.2016 - 18:50)
а как включить на хостинге GD ?

для начала разберись в чем причина
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VeRTak  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местная прописка
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 845
Пользователь №: 41530
На форуме: 1 год, 10 месяцев, 28 дней
Карма: 11




Цитата (arbuzmaster @ 27.05.2016 - 18:48)
Я так понял у него именно на хостинге не работает!


Молодец laugh.gif


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
vlad-zh  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 28
Пользователь №: 43003
На форуме: 1 год, 1 день
Карма:




Цитата (killer8080 @ 27.05.2016 - 18:49)
vlad-zh
открой mycaptcha.php в отдельной вкладке, увидишь что за ошибки. Может быть short tag на хостинге выключен или ещё что.

открыл. просто пустота и какой то квадратик ((

Это сообщение отредактировал vlad-zh - 27.05.2016 - 18:55

Присоединённое изображение
Присоединённое изображение
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
vlad-zh  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 28
Пользователь №: 43003
На форуме: 1 год, 1 день
Карма:




а это на ноуте открыл файоик mycaptcha.php

Присоединённое изображение
Присоединённое изображение
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8925
Пользователь №: 26630
На форуме: 6 лет, 2 месяца, 27 дней
Карма: 603




vlad-zh
закоменть строчку
Цитата (vlad-zh @ 27.05.2016 - 18:26)
header("Content-type: image/png"); // указываем, что контент представляет из себя не текст, а изображение     

тогда браузер отобразит как текст
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VeRTak  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местная прописка
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 845
Пользователь №: 41530
На форуме: 1 год, 10 месяцев, 28 дней
Карма: 11




Если показывается квадратик значит само изображение формируется, а это значит библиотека работает. Открой исходный код посмотри путь изображения на всякий случай


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
VeRTak  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местная прописка
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 845
Пользователь №: 41530
На форуме: 1 год, 10 месяцев, 28 дней
Карма: 11




У тебя вот так $fontfile = "fonts/JOKERMAN.ttf" старайся писать пути начиная со слеша

вот так $fontfile = "/fonts/JOKERMAN.ttf"


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8925
Пользователь №: 26630
На форуме: 6 лет, 2 месяца, 27 дней
Карма: 603




Цитата (Wind @ 27.05.2016 - 19:04)
У тебя вот так $fontfile = "fonts/JOKERMAN.ttf" старайся писать пути начиная со слеша

вот так $fontfile = "/fonts/JOKERMAN.ttf"

вот именно в таком виде он точно работать не будет wink.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса