6 сентября 2026, воскресенье  

PHPworld.ru - все о программировании на PHP, основы языка PHP, особенности PHP5
PHPworld.ru php php 5 SQLite Статьи Книги Форум PHP Гостевая книга Ссылки по PHP

Правила форума


Если вы впервые на нашем форуме - ознакомьтесь с правилами


 

Форум

  Леонид Лукин :: Пример php сценария защитного графического кода
Вот сценарий картинки, которая показывает сгенерированный случайным образом номер - код.
Кроме этого в сессии появляется переменная $_SESSION["code"], которая содержит этот номер.
Просите пользователя ввести его в поле формы, а потом сверяете со значением переменной сессии.
И все!
<?php
// Размеры картинки
$sizeX = 100;
$sizeY = 40;

// Создание изображения
$img = imagecreatetruecolor($sizeX, $sizeY);

// Получение кода
session_start();
$code = $_SESSION["code"];

// Количество пикселей на 1 символ кода
$space = $sizeX / strlen($code);

// Назначение цветов
$background = imagecolorallocate($img, 255, 255, 255);
$border = imagecolorallocate($img, 127, 127, 127);
$colors[] = imagecolorallocate($img, 127, 64, 192);
$colors[] = imagecolorallocate($img, 192, 64, 127);
$colors[] = imagecolorallocate($img, 107, 192, 64);

// Закраска фона
imagefilledrectangle($img, 0, 0, $sizeX, $sizeY, $background);

// Рисуем рамку
imagerectangle($img, 0, 0, $sizeX-1, $sizeY-1, $border);

// Пишем цифры кода
for ($i = 0; $i < strlen($code); $i++) {
$color = $colors[$i % count($colors)];
imagestring($img, 5, ($i + 0.3) * $space,5 + rand(0, 15), substr($code, $i, 1), $color);
//imagettftext($img, 14 + rand(0, 4), -20 + rand(0, 40), ($i + 0.3) * $space, 20 + rand(0, 15), $color, 'arial.ttf', substr($code, $i, 1));
}

// Рисуем шум
for ($i = 0; $i < 250; $i++) {
$x1 = rand(0, $sizeX);
$y1 = rand(0, $sizeY);
$x2 = $x1;
$y2 = $y1;
imageline($img, $x1, $y1, $x2, $y2, $colors[rand(0, count($colors) - 1)]);
}

// Отправка заголовков
header("Content-type: image/png");

// Вывод изображения
imagepng($img);
?>
  2 февраля 2006, 17:52

Это сообщение было просмотрено: 5178 раз(а)

Ответить на сообщение

Вернуться к списку сообщений форума

Сообщение и ответы Просм. Автор