[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Капча не отображается на хостинге
Страницы: 1, 2
vlad-zh
Здравствуйте товарищи. я пытаюсь написать свой первый сайтик. На своём компе я закончил и вроде как работает. У меня установлена сборка Денвер. Сейчас я зарегистрировался на бесплатном хостинге и перекинул туда все файлики. Ожидал, что всё должно было заработать. Но на странице регистрации в гостевой книге картинка с капчей почему-то не отображается. Сам скрипт капчи - это очень сильно упрощённая версия капчи, которую я нагуглил. Приведу код 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"); ?>

Подскажите пожалуйста, в чём тут может быть проблема? Может надо какие-то дополнительные настройки произвести на хостинге?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.